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

[目次][用語][索引][前へ][次へ]

3.2.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スキーマの場合,「〈.NETインタフェース定義のインタフェース名称〉_〈.NETインタフェース定義のサービスメソッド名称〉_InData」,出力データ用XMLスキーマの場合,「〈.NETインタフェース定義のインタフェース名称〉_〈.NETインタフェース定義のサービスメソッド名称〉_OutData」が指定されます。type属性には,name属性と同じ値が指定されます。
  4. 3.のtype属性がcomplexType要素で定義されます。complexType要素のname属性には,3.のtype属性と同じ値が指定されます。
  5. sequence要素の子要素としてelement要素が定義されます。element要素は,.NETインタフェース定義のサービスメソッドの引数,TP1ユーザ構造体のメンバ,および戻り値によって定義されます。.NETインタフェース定義のサービスメソッドの引数,TP1ユーザ構造体のメンバ,および戻り値から定義されるelement要素を表3-7に示します。
  6. 5.のelement要素のtype属性がcomplexType要素で定義されます。element要素のtype属性が配列型,およびTP1ユーザ構造体の場合に定義されるcomplexType要素を表3-8に示します。
 

表3-7 .NETインタフェース定義から定義されるelement要素

.NETインタフェース定義のサービスメソッドの引数,TP1ユーザ構造体のメンバ,および戻り値 入力データ用XMLスキーマおよび出力データ用XMLスキーマのelement要素
System.Byte
<xs:element minOccurs="1" maxOccurs="1"
    name="paramName※1" type="xs:unsignedByte"/>
System.Int16
<xs:element minOccurs="1" maxOccurs="1"
    name="paramName※1" type="xs:short"/>
System.Int32
<xs:element minOccurs="1" maxOccurs="1"
    name="paramName※1" type="xs:int"/>
System.Int64
<xs:element minOccurs="1" maxOccurs="1"
    name="paramName※1" type="xs:long"/>
System.String
<xs:element minOccurs="0" maxOccurs="1"
    name="paramName※1" type="xs:string"/>
System.Byte[]
<xs:element minOccurs="0" maxOccurs="1"
    name="paramName※1" type="xs:base64Binary"/>
System.Int16[]
<xs:element minOccurs="0" maxOccurs="1"
    name="paramName※1" type="ArrayOfShort※2"/>
System.Int32[]
<xs:element minOccurs="0" maxOccurs="1"
    name="paramName※1" type="ArrayOfInt※2"/>
System.Int64[]
<xs:element minOccurs="0" maxOccurs="1"
    name="paramName※1" type="ArrayOfLong※2"/>
System.String[]
<xs:element minOccurs="0" maxOccurs="1"
    name="paramName※1" type="ArrayOfString※2"/>
TP1ユーザ構造体
xs:element minOccurs="0" maxOccurs="1"
    name="paramName※1" type="〈TP1ユーザ構造体名〉※2"/>
TP1ユーザ構造体配列
<xs:element minOccurs="0" maxOccurs="1"
    name="paramName※1" type="ArrayOf〈TP1ユーザ構造体名〉※2"/>
注※1
クライアントスタブ生成コマンド(if2cstub)の-Xオプションにnormalを指定した場合,次の値が指定されます。
  • 引数の場合:.NETインタフェース定義のサービスメソッドの引数の名称
  • TP1ユーザ構造体のメンバの場合:TP1ユーザ構造体のメンバの名称
  • 戻り値の場合:returnValue
このXMLスキーマ例を「3.2.4(10) XMLスキーマ例(クライアントスタブ生成コマンド(if2cstub)の-Xオプションにnormalを指定した場合1)」に示します。
また,-Xオプションにdatasetを指定した場合,次の値が指定されます。
  • 引数の場合:〈complexType要素のname属性の値〉_〈.NETインタフェース定義のサービスメソッドの引数の名称〉
  • TP1ユーザ構造体のメンバの場合:〈complexType要素のname属性の値〉_〈TP1ユーザ構造体のメンバの名称〉
  • 戻り値の場合:returnValue
このXMLスキーマ例を「3.2.4(11) XMLスキーマ例(クライアントスタブ生成コマンド(if2cstub)の-Xオプションにdatasetを指定した場合1)」に示します。
注※2
クライアントスタブ生成コマンド(if2cstub)で,-Xオプションにnormalを指定した場合のXMLスキーマ例を「3.2.4(12) XMLスキーマ例(クライアントスタブ生成コマンド(if2cstub)の-Xオプションにnormalを指定した場合2)」に示します。
また,クライアントスタブ生成コマンド(if2cstub)の-Xオプションにdatasetを指定した場合で,二つ以上のelement要素のtype属性が同一のcomplexType要素で定義されたとき,Connector .NETによってelement要素の数だけcomplexType要素が定義されます。element要素のtype属性の値は,「〈complexType要素のname属性の値〉〈同一のcomplexType要素を定義したtype属性が定義されているelement要素の個数の連番〉」となります。element要素の個数の連番は,0から始まり,1,2…と割り当てられます。このXMLスキーマ例を「3.2.4(13) XMLスキーマ例(クライアントスタブ生成コマンド(if2cstub)の-Xオプションにdatasetを指定した場合2)」に示します。
 

表3-8 element要素のtype属性が配列型,およびTP1ユーザ構造体の場合に定義されるcomplexType要素

element要素のtype属性 入力データ用XMLスキーマおよび出力データ用XMLスキーマの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>
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>
ArrayOfLong
(+連番(1,2,…))
<xs:complexType name="ArrayOfLong">
  <xs:sequence>
    <xs:element minOccurs="0" maxOccurs="unbounded"
      name="long※1" type="xs:long"/>
  </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>
TP1ユーザ構造体名
(+連番(1,2,…))
<xs:complexType name="(TP1ユーザ構造体名)">
  <xs:sequence>
    <xs:element … 省略 … />(TP1ユーザ構造体のメンバの要素※2)
              :
  </xs:sequence>
</xs:complexType>
ArrayOf(TP1ユーザ構造体名)
(+連番(1,2,…))
<xs:complexType name="ArrayOf(TP1ユーザ構造体名)">
  <xs:sequence>
    <xs:element minOccurs="0" maxOccurs="unbounded"
        name="(TP1ユーザ構造体名)※1" nillable="true"
        type="(TP1ユーザ構造体名)"/>
  </xs:sequence>
</xs:complexType>
注※1
クライアントスタブ生成コマンド(if2cstub)の-Xオプションにdatasetを指定した場合,「〈complexType要素のname属性の値〉_〈「xs:」を除いたtype属性の値〉」が指定されます。このXMLスキーマ例を「3.2.4(14) XMLスキーマ例(クライアントスタブ生成コマンド(if2cstub)の-Xオプションにdatasetを指定した場合3)」に示します。
注※2
.NETインタフェース定義のTP1ユーザ構造体のメンバに指定される値については,表3-7を参照してください。