Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編
(1) 利用するXMLスキーマの形式
- XMLスキーマは次の条件を満たしている必要があります。
- スキーマのXSD名前空間が「http://www.w3.org/2001/XMLSchema」であること。
- 選択したXMLスキーマに,必ずルート要素が記述されていること。
- XMLスキーマをファイル指定する場合,ファイル名の長さが128バイト以下であること。
- XMLスキーマの属性(attribute)の先頭と末尾にWhite space文字(半角スペース(#x20),タブ(#x9),および改行文字(#xAまたは#xD))を使用していないこと。
- maxOccurs属性に大きな値を指定するとメモリを大量に消費します。maxOccurs属性には,できる限りunboundedを指定することをお勧めします。
- xsd:element要素の型の定義には,type属性,ref属性または内部定義(complexTypeまたはsimpleType)が使用できます。
- ビジネスプロセスの受付として標準受付を使用する場合,xsd:schema要素のelementFormDefault属性には,qualifiedを指定することをお勧めします。
- 注意
- SOAPヘッダやSOAPボディの子要素にSOAP固有の属性(mustUnderstand属性,role属性,encodingStyle属性,actor属性,およびrelay属性)が出現した場合,XMLスキーマにこの属性を定義しないでデータ変換アクティビティで変換すると,変換後の変数にSOAP固有の属性が反映されません。また,検証処理実行時に検証エラーが発生します。このため,SOAP固有の属性が出現する場合は,XMLスキーマにxsd:anyAttributeを記述してください。
- XMLスキーマファイル中の値にパーセントエンコーディングした値を設定する場合,16進数値を大文字で設定してください。例を次に示します。
正:schemaLocation="%E3%81%82.xsd"
誤:schemaLocation="%e3%81%82.xsd"
(2) 外部のXMLスキーマを参照する場合の注意事項
XMLスキーマから外部のXMLスキーマを参照して利用する場合の注意事項を,次に示します。
- WSDLのwsdl:types要素以下に定義したXMLスキーマのxsd:import要素のschemaLocation属性が指定されていない場合,wsdl:types要素以下のXMLスキーマを使用して名前空間を解決している必要があります。
- XMLスキーマのxsd:import要素のschemaLocation属性は必ず指定してください。
- xsd:import要素には,必ずnamespace属性を指定してください。
- xsd:import要素およびxsd:include要素では,参照の呼び出し階層を20階層以内にしてください。
- schemaLocation属性にredefine要素があるスキーマ(2段階以上のredefine)は指定しないでください。
- xsd:schema要素のtargetNamespace属性指定されているスキーマからは,targetNamespace属性が指定されていないスキーマをincludeしないでください。
- SOAP1.1モードを使用する場合,xsd:import要素のschemaLocation属性,およびxsd:include要素のschemaLocation属性には,UTF-8でパーセントエンコーディングした値でも,パーセントエンコーディングしていない値でも設定できます。ただし,パーセントエンコーディングし,かつファイルパスにディレクトリを含む場合,ディレクトリデリミタ(/)をエンコードしないでください。
- SOAP1.1/1.2併用モードを使用する場合,xsd:import要素のschemaLocation属性,およびxsd:include要素のschemaLocation属性には,UTF-8でパーセントエンコーディングした値を指定してください。ただし,パーセントエンコーディングし,かつファイルパスにディレクトリを含む場合,ディレクトリデリミタ(/)をエンコードしないでください。
- schemaLocation属性のディレクトリデリミタには「/」を使用してください(「\」は使用できません)。
- XMLスキーマのファイルパスには,次の文字を使用しないでください。
「;」,「?」,「:」,「@」,「&」,「=」,「+」,「$」,「,」,「<」,「>」,「#」,「%」,「"」,「{」,「}」,「|」,「^」,「[」,「]」,「`」
- schemaLocation属性を指定する場合の注意を次に示します。
- RFC2396で規定されている文字およびxsd:anyURIを満たす文字を使用してください。ただし,RFC2732(IPv6)は使用できません。
- schemaLocation属性を絶対URIで指定する場合は,http,https,およびfileのプロトコルのどれかを使用してください。
schemaLocation属性の指定例を次に示します。
- (例1)ローカルにあるXMLスキーマを相対パスで指定
- ./example/sample.xsd
- (例2)ローカルにあるXMLスキーマをURL形式の絶対パスで指定
- file:///C:/example/sample.xsd
- (例3)リモートにあるXMLスキーマをURLで指定
- http://example.com/sample.xsd
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.