12.2.8 XML Schema記述時の注意事項

XML Schemaの要素を記述するときの注意事項について説明します。また,非サポート要素の代替記述についても説明します。

<この項の構成>
(1) maxOccurs属性を記述する場合の注意事項
(2) restriction要素を記述する場合の注意事項
(3) list要素を記述する場合の注意事項
(4) 単純型を基準型として拡張して,複合型を定義する場合の代替記述
(5) 単純型を使用した派生によって,制限された複合型を定義する場合の代替記述
(6) use属性の代替記述
(7) default属性の代替記述
(8) fixed属性の代替記述
(9) substitutionGroup属性の代替記述
(10) mixed属性の代替記述
(11) XML Schemaのビルトインデータ型使用時の注意事項
(12) soapenc:Array型の制限に関する注意事項
(13) wsdl:arrayType属性を記述する場合の注意事項
(14) ref属性,minOccurs属性,およびminOccurs属性を使用する場合の代替記述

(1) maxOccurs属性を記述する場合の注意事項

(2) restriction要素を記述する場合の注意事項

(3) list要素を記述する場合の注意事項

list要素を記述する場合の注意事項を示します。

記述できない要素および属性を記述した場合,不正なソースが生成されます。

(4) 単純型を基準型として拡張して,複合型を定義する場合の代替記述

simpleContent要素は非サポート要素です。単純型を拡張した複合型を定義するには,complexType要素を使用して記述してください。

単純型を基準型として拡張して,複合型を定義する場合の修正例を示します。

<修正前(非サポート)>

<修正後(代替記述)>

(5) 単純型を使用した派生によって,制限された複合型を定義する場合の代替記述

simpleContent要素は非サポートです。complexType要素を使用して,別の型として定義してください。

単純型を使用した派生によって,制限された複合型を定義する場合の修正例を示します。

<修正前(非サポート)>

<修正後(代替記述)>

(6) use属性の代替記述

attribute要素に指定するuse属性は非サポートです。attribute要素の出現可能性を型定義によって記述する場合には,その用途によってcomplexType要素を使用して,別の型として定義してください。

use属性を使用した記述の修正例を示します。

<修正前(非サポート)>

<修正後(代替記述)>

(7) default属性の代替記述

element要素またはattribute要素にdefault属性を指定する場合で,SOAPメッセージの送信側のアプリケーションで値を設定しないとき,default属性の属性値はSOAPメッセージに設定されません。

SOAPメッセージの受信側のアプリケーションで,該当する属性値がSOAPメッセージに設定されていない場合は,default属性の属性値に指定されている値を設定してください。

(8) fixed属性の代替記述

element要素またはattribute要素にfixed属性を指定する場合,SOAPメッセージの送信側のアプリケーションでどのような値を設定しても,fixed属性の属性値がSOAPメッセージに設定されません。

SOAPメッセージの受信側のアプリケーションで,fixed属性に指定されている値を設定してください。

(9) substitutionGroup属性の代替記述

substitutionGroup属性は非サポートです。グローバルのelement要素に非サポートであるsubstitutionGroup属性を指定することはできません。

次に示す修正例を基に,代替記述について説明します。

このスキーマのインスタンスでは,トップレベルの要素”SSG”は,子要素として,data要素を内容とする構造です。このdata要素は,dataPattern1要素,dataPattern2要素の代わりに使用することができます。したがって,インスタンス2,インスタンス3も正しいXMLインスタンスとなります。Cosminexusでは,substitutionGroup属性をサポートしないため,代替要素となる型(ここでは,dataPattern1要素,dataPattern2要素)を使用する場合は,別のWSDLで記述し,別のアプリケーションとする必要があります。

<修正前(非サポート)>

<修正後(代替記述)>

(10) mixed属性の代替記述

mixed属性は非サポートです。complexType要素,complexContent要素にmixed属性で実現する,内容の中に要素が入る構造は実現できません。SOAPメッセージで送信しなければならないデータを,それぞれ独立した要素となる型を作成してください。

mixed属性を使用した記述の修正例を示します。

<修正前(非サポート)>

<修正後(代替記述)>

(11) XML Schemaのビルトインデータ型使用時の注意事項

ENTITY型を指定してアプリケーションでデータを送受信できますが,ENTITY型としての機能は有効になりません。

(12) soapenc:Array型の制限に関する注意事項

WSDLのuse属性がliteralの場合,soapenc:Array型を制限した複合型を使用することはできません。配列を定義するには,代わりにmaxOccurs属性を指定した要素を子要素に持つ複合型を定義してください。

(13) wsdl:arrayType属性を記述する場合の注意事項

wsdl:arrayType属性を記述した場合の配列は,OUT属性およびINOUT属性で使用できません。

(14) ref属性,minOccurs属性,およびminOccurs属性を使用する場合の代替記述

ref属性,minOccurs属性,およびmaxOccurs属性を同じelement要素で使用した場合,不正なソースが生成されます。ref属性,minOccurs属性,およびmaxOccurs属性を同じelement要素で使用しないでください。

ref属性,minOccurs属性,およびmaxOccurs属性を使用する場合の修正例を示します。

<修正前(非サポート)>

<修正後(代替記述)>