ASP.NET を使用して作成した XML Web サービスによってサポートされるデータ型
すべてのプログラミング言語では、さまざまなデータを格納するための各種データ型を指定します。単純型、つまりプリミティブ型は、プログラミング言語間で非常によく似ています。ただし、言語間で直接割り当てられることがないように、微妙に異なっています。これは、任意のクライアント アプリケーションからアクセスできる XML Web サービスを作成するには問題となります。
幅広く対応できるように、XML Web サービスでは XML を使用してエンコードおよびシリアル化できるさまざまなプリミティブ データ型をサポートしています。
XML Web サービスでサポートされるプリミティブ データ型、およびそれに対応する C++ と共通言語ランタイムのデータ型を次の表に示します。XML Web サービスでサポートされるデータ型は、XML スキーマ定義 (XSD: XML Schema Definition) 言語の 2 番目のセクションで説明されているデータ型です。
XML スキーマ定義言語 | C++ | 共通言語ランタイム |
---|---|---|
Boolean | bool | Boolean |
Byte | char、__int8 | |
Double | double | Double |
Datatype | struct | |
Decimal | Decimal | |
Enumeration | enum | Enum |
Float | float | Single |
Int | int、long、__int32 | Int32 |
Long | __int64 | Int64 |
Qname | XmlQualifiedName | |
Short | short、__int16 | Int16 |
String | BSTR | String |
TimeInstant | DateTime | |
UnsignedByte | unsigned __int8 | |
UnsignedInt | unsigned __int32 | UInt32 |
UnsignedLong | unsigned __int64 | UInt64 |
UnsignedShort | unsigned __int16 | UInt16 |
プリミティブ型および列挙型の配列 | 上記の型の配列 |
共通言語ランタイムのデータ型から C#、Visual Basic .NET などの他の言語のデータ型への変換については、「.NET Framework クラス ライブラリの概要」を参照してください。
使用できるデータ型は、XML 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 プロトコルを使用する場合、XML Web サービスでサポートされるデータ型は、シリアル化して XML を生成できるデータ型に直接関連付けられます。ASP.NET では、XmlSerializer クラスを使用して XML をシリアル化および逆シリアル化します。XmlSerializer でサポートされる型の詳細については、「XML シリアル化の概要」を参照してください。
前の表に示されているプリミティブ型の他に、SOAP プロトコルを使用する XML Web サービスでは次のデータ型もサポートされます。
型 | 説明 |
---|---|
クラスと構造体、 クラスと構造体の配列 |
パブリック フィールドまたはパブリック プロパティを持つクラスおよび構造体型。パブリック プロパティとパブリック フィールドがシリアル化されます。クラスには、パラメータを使用しない既定のコンストラクタが必要です。 |
DataSet、 DataSet の配列 |
ADO.NET DataSet 型。Dataset 型は、クラスや構造体のフィールドとして表示される場合もあります。 |
XmlNode、 XmlNode の配列 |
XmlNode は、XML フラグメントのメモリ内の表現です。XmlNodes 型はパラメータや戻り値として渡すことができ、SOAP 準拠の方式で XML Web サービスに渡される XML の残りの部分に追加されます。これによって、呼び出しごとに XML の構造が変化する場合や、渡されるすべての型がわからない場合でも、XML を渡したり、返したりできます。XmlNode 型は、クラスや構造体のフィールドとして表示される場合もあります。 |
参照
XML シリアル化の概要 | .NET Framework クラス ライブラリの概要ASP.NET を使用した XML Web サービスの作成 | XML Web サービス クライアントの作成