Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Connector for .NET Framework 使用の手引


4.3.3 XMLスキーマの定義方法

入力データ用XMLスキーマおよび出力データ用XMLスキーマの定義形式を次に示します。

[図データ]

注※

すべて同じ値が指定されます。

  1. XML宣言ノードのversion属性には1.0,encoding属性にはutf-8が指定されます。

  2. schema要素のelementFormDefault属性にはqualified,xmlns属性には名前空間URIとして「http://www.w3.org/2001/XMLSchema」が指定されます。

  3. ルート要素となるelement要素のname属性には,入力データ用XMLスキーマの場合,「入力データ型定義名称」または「出力データ型定義名称」が指定されます。type属性には,name属性と同じ値が指定されます。

  4. 3.のtype属性がcomplexType要素で定義されます。complexType要素のname属性には,3.のtype属性と同じ値が指定されます。

  5. sequence要素の子要素としてelement要素が定義されます。element要素は,入力データ型定義または出力データ型定義のメンバ,および構造体のメンバによって定義されます。データ型定義のメンバおよび構造体のメンバから定義されるelement要素を表4-10に示します。

  6. 5.のelement要素のtype属性がcomplexType要素で定義されます。element要素のtype属性が配列型,および構造体の場合に定義されるcomplexType要素を表4-11に示します。

表4‒10 データ型定義から定義されるelement要素

データ型定義のメンバおよび構造体のメンバのデータ型

入力データ用XMLスキーマおよび出力データ用XMLスキーマのelement要素

char

<xs:element minOccurs="0" maxOccurs="1"

  name="memberName※1" type="xs:string"/>

int

<xs:element minOccurs="1" maxOccurs="1"

  name="memberName※1" type="xs:int"/>

short

<xs:element minOccurs="1" maxOccurs="1"

  name="memberName※1" type="xs:short"/>

long

<xs:element minOccurs="1" maxOccurs="1"

  name="memberName※1" type="xs:int"/>

struct

<xs:element minOccurs="0" maxOccurs="1"

  name="memberName※1" type="(構造体名称)"/>

char[]

<xs:element minOccurs="0" maxOccurs="1"

  name="memberName※1" type="xs:string"/>

int[]

<xs:element minOccurs="0" maxOccurs="1"

  name="memberName※1" type="ArrayOfInt※2"/>

short[]

<xs:element minOccurs="0" maxOccurs="1"

  name="memberName※1" type="ArrayOfShort※2"/>

long[]

<xs:element minOccurs="0" maxOccurs="1"

  name="memberName※1" type="ArrayOfInt※2"/>

struct[]

<xs:element minOccurs="0" maxOccurs="1"

  name="memberName※1" type="ArrayOf(構造体名称)※2"/>

char[][]

<xs:element minOccurs="0" maxOccurs="1"

  name="memberName※1" type="ArrayOfString※2"/>

byte[]

<xs:element minOccurs="0" maxOccurs="1"

  name="memberName※1" type="xs:base64Binary"/>

注※1

クライアントスタブ生成コマンド(spp2cstub)で-Xオプションにnormalを指定した場合,データ型定義のメンバの名称が指定されます。このXMLスキーマ例を「4.3.4(11) XMLスキーマ例(クライアントスタブ生成コマンド(spp2cstub)の-Xオプションにnormalを指定した場合1)」に示します。

また,-Xオプションにdatasetを指定した場合,〈complexType要素のname属性の値〉_〈データ型定義のメンバの名称〉が指定されます。このXMLスキーマ例を「4.3.4(12) XMLスキーマ例(クライアントスタブ生成コマンド(spp2cstub)の-Xオプションにdatasetを指定した場合1)」に示します。

注※2

クライアントスタブ生成コマンド(spp2cstub)で,-Xオプションにnormalを指定した場合のXMLスキーマ例を「4.3.4(13) XMLスキーマ例(クライアントスタブ生成コマンド(spp2cstub)の-Xオプションにnormalを指定した場合2)」に示します。

また,クライアントスタブ生成コマンド(spp2cstub)の-Xオプションにdatasetを指定した場合で,二つ以上のelement要素のtype属性が同一のcomplexType要素で定義されたとき,Connector .NETによってelement要素の数だけcomplexType要素が定義されます。element要素のtype属性の値は,「〈complexType要素のname属性の値〉〈同一のcomplexType要素を定義したtype属性が定義されているelement要素の個数の連番〉」となります。element要素の個数の連番は,0から始まり,1,2…と割り当てられます。このXMLスキーマ例を「4.3.4(14) XMLスキーマ例(クライアントスタブ生成コマンド(spp2cstub)の-Xオプションにdatasetを指定した場合2)」に示します。

表4‒11 element要素のtype属性が配列型,および構造体の場合に定義されるcomplexType要素

element要素のtype属性

入力データ用XMLスキーマおよび出力データ用XMLスキーマのcomplexType要素

ArrayOfInt

(+連番(1,2,…))

<xs:complexType name="ArrayOfInt">

 <xs:sequence>

  <xs:element minOccurs="0" maxOccurs="unbounded"

   name="int※1" type="xs:int"/>

 </xs:sequence>

</xs:complexType>

ArrayOfShort

(+連番(1,2,…))

<xs:complexType name="ArrayOfShort">

 <xs:sequence>

  <xs:element minOccurs="0" maxOccurs="unbounded"

   name="short※1" type="xs:short"/>

 </xs:sequence>

</xs:complexType>

ArrayOfString

(+連番(1,2,…))

<xs:complexType name="ArrayOfString">

 <xs:sequence>

  <xs:element minOccurs="0" maxOccurs="unbounded"

   name="string※1" nillable="true" type="xs:string"/>

 </xs:sequence>

</xs:complexType>

構造体名

(+連番(1,2,…))

<xs:complexType name="(構造体名)">

 <xs:sequence>

  <xs:element … 省略 … /> (構造体のメンバの要素※2)

       :

 </xs:sequence>

</xs:complexType>

ArrayOf(構造体名)

(+連番(1,2,…))

<xs:complexType name="ArrayOf(構造体名)">

 <xs:sequence>

  <xs:element minOccurs="0" maxOccurs="unbounded"

   name="(構造体名)" nillable="true"type="(構造体名)"/>

 </xs:sequence>

</xs:complexType>

注※1

クライアントスタブ生成コマンド(spp2cstub)の-Xオプションにdatasetを指定した場合,「〈complexType要素のname属性の値〉_〈「xs:」を除いたtype属性の値〉」が指定されます。このXMLスキーマ例を「4.3.4(15) XMLスキーマ例(クライアントスタブ生成コマンド(spp2cstub)の-Xオプションにdatasetを指定した場合3)」に示します。

注※2

データ型定義の構造体のメンバに指定される要素については,表4-10を参照してください。