使用 ASP.NET 建立之 XML Web Service 所支援的資料型別
所有程式語言都會指定各種用來儲存不同資料類型的資料型別。簡單 (或說基本) 資料型別在各種程式語言之間都相當類似。但還是有細微的差異,使得不同語言之間無法直接對應。這些差異會在建立可供任何用戶端應用程式存取的 Web 服務時形成挑戰。
為了確保最廣闊的適用範圍,Web 服務會支援各種可使用 XML 加以編碼和序列化的基本 (Primitive) 資料型別。
下表顯示 Web 服務支援的基本資料型別 (這些是 XML 結構描述定義 (XSD) 語言的第二個部分中述及的資料型別),以及 C++ 和 Common Language Runtime 中的對等資料型別。
XML 結構描述定義語言 | C++ | Common Language Runtime |
---|---|---|
base64Binary |
Byte[] |
|
boolean |
bool |
Boolean |
byte |
char, __int8 |
SByte |
double |
double |
Double |
dateTime |
DateTime |
|
decimal |
|
Decimal |
float |
float |
Single |
int |
int, long, __int32 |
Int32 |
long |
__int64 |
Int64 |
QName |
|
XmlQualifiedName |
short |
short, __int16 |
Int16 |
string |
BSTR |
String |
time |
|
DateTime |
unsignedByte |
unsigned __int8 |
Byte |
unsignedInt |
unsigned __int32 |
UInt32 |
unsignedLong |
unsigned __int64 |
UInt64 |
unsignedShort |
unsigned __int16 |
UInt16 |
基本和列舉型別的陣列 |
上述型別的陣列 |
如需從 Common Language Runtime 資料型別轉換為其他語言 (例如 C# 和 Visual Basic .NET) 資料型別的詳細資訊,請參閱 .NET Framework 類別庫。
可用的資料型別將視 Web 服務使用的通訊協定而定。例如,HTTP-GET 和 HTTP-POST 通訊協定都只能使用名稱/值組。不過,SOAP 允許更多樣化地使用 XML 來編碼和序列化複雜的資料結構 (例如,類別)。
下表顯示 HTTP-GET 和 HTTP-POST 支援的型別。
型別 | 描述 |
---|---|
基本型別 (有限) |
下列基本型別會轉換成表示為字串的名稱/值組:Boolean、Currency、DateTime、Decimal、Double、Int16、Int32、Int64、Single、String、UInt16、Uint32 和 UInt64。 |
列舉型別 |
從用戶端的觀點來看,列舉型別 (Enumeration) 會變成一個類別,其中每個值各有一個靜態常數字串欄位。 |
基本和列舉型別的陣列 |
上述型別的陣列。 |
在使用 SOAP 通訊協定時,Web 服務所支援的資料型別會直接與可以序列化為 XML 的資料型別相互關聯。ASP.NET 會使用 XmlSerializer 類別來序列化和還原序列化 XML。如需 XmlSerializer 所支援型別的詳細資訊,請參閱 XML 序列化簡介。
除了前面表格列出的基本型別之外,使用 SOAP 通訊協定的 Web 服務還會支援下列其他的資料型別。
型別 | 描述 |
---|---|
類別、結構以及類別和結構的陣列 |
具有公用欄位或屬性的類別和結構型別。公用屬性和欄位會經過序列化。類別必須具有不接受任何參數的預設建構函式。 |
DataSet、DataSet 的陣列 |
ADO.NET DataSet 型別。Dataset 型別也可以在類別或結構中以欄位的形式出現。 |
XmlNode、XmlNode 的陣列 |
XmlNode 是 XML 片段在記憶體中的表示法。XmlNodes 型別可以當做參數或傳回值傳遞,而且會透過符合 SOAP 標準的方式新增至其他已傳遞給 Web 服務的 XML。如此一來,即使 XML 的結構在各次呼叫之間有所變更,或者您對正在傳遞的型別不甚清楚,您還是能夠加以傳遞或傳回。XmlNode 型別也可以在類別或結構中以欄位的形式出現。 |
請參閱
概念
其他資源
Introducing XML Serialization
.NET Framework Class Library
使用 ASP.NET 的 XML Web Service
Copyright © 2007 by Microsoft Corporation. All rights reserved.