Share via


使用 ASP.NET 建立之 XML Web Service 所支援的資料型別

本主題專門說明舊有技術。 應該使用下列建立 XML Web Service 及 XML Web Service 用戶端: Windows Communication Foundation.

所有程式語言都會指定各種用來儲存不同資料類型的資料型別。簡單 (或說基本) 資料型別在各種程式語言之間都相當類似。但還是有細微的差異,使得不同語言之間無法直接對應。這些差異會在建立可供任何用戶端應用程式存取的 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 支援的型別。

型別 描述

基本型別 (有限)

下列基本型別會轉換成表示為字串的名稱/值組:BooleanCurrencyDateTimeDecimalDoubleInt16Int32Int64SingleStringUInt16Uint32UInt64

列舉型別

從用戶端的觀點來看,列舉型別 (Enumeration) 會變成一個類別,其中每個值各有一個靜態常數字串欄位。

基本和列舉型別的陣列

上述型別的陣列。

在使用 SOAP 通訊協定時,Web 服務所支援的資料型別會直接與可以序列化為 XML 的資料型別相互關聯。ASP.NET 會使用 XmlSerializer 類別來序列化和還原序列化 XML。如需 XmlSerializer 所支援型別的詳細資訊,請參閱 XML 序列化簡介

除了前面表格列出的基本型別之外,使用 SOAP 通訊協定的 Web 服務還會支援下列其他的資料型別。

型別 描述

類別、結構以及類別和結構的陣列

具有公用欄位或屬性的類別和結構型別。公用屬性和欄位會經過序列化。類別必須具有不接受任何參數的預設建構函式。

DataSetDataSet 的陣列

ADO.NET DataSet 型別。Dataset 型別也可以在類別或結構中以欄位的形式出現。

XmlNodeXmlNode 的陣列

XmlNode 是 XML 片段在記憶體中的表示法。XmlNodes 型別可以當做參數或傳回值傳遞,而且會透過符合 SOAP 標準的方式新增至其他已傳遞給 Web 服務的 XML。如此一來,即使 XML 的結構在各次呼叫之間有所變更,或者您對正在傳遞的型別不甚清楚,您還是能夠加以傳遞或傳回。XmlNode 型別也可以在類別或結構中以欄位的形式出現。

另請參閱

概念

建置 XML Web Service 用戶端

其他資源

Introducing XML Serialization
.NET Framework Class Library
使用 ASP.NET 的 XML Web Service