ASP.NET を使用して作成した XML Web サービスでサポートされるデータ型
すべてのプログラミング言語は、異なる種類のデータを格納するさまざまなデータ型を指定します。単純型 (プリミティブ型) は、多くのプログラミング言語で非常に似通っています。ただし、プログラミング言語間で直接対応しないように、若干異なっています。こうした違いは、任意のクライアント アプリケーションからアクセスできる Web サービスを作成する場合に問題になります。
できるだけ多くのアプリケーションからアクセスできるようにするため、Web サービスでは XML を使ってエンコードおよびシリアル化できるさまざまなプリミティブ データ型をサポートしています。
次の表に、Web サービスでサポートされるプリミティブ データ型と、C++ や共通言語ランタイムで対応するデータ型を示します。Web サービスでサポートされるデータ型とは、XML スキーマ定義 (XSD: XML Schema Definition) 言語の 2 番目の部分で説明されているデータ型です。
XML スキーマ定義言語 | C++ | 共通言語ランタイム |
---|---|---|
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 |
プリミティブ型と列挙型の配列 |
上記の型の配列 |
共通言語ランタイム データ型から 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。 |
列挙型 |
クライアント側から見ると、列挙型は値ごとに静的定数文字列フィールドを持つクラスになります。 |
プリミティブ型と列挙型の配列 |
上記の型の配列。 |
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 サービス
Copyright © 2007 by Microsoft Corporation.All rights reserved.