Hitachi

Cosminexus V11 アプリケーションサーバ SOAPアプリケーション開発の手引


3.3.7 XML Schemaのインクルード

xsd:include要素を定義することで,同じ名前空間に属するXML Schemaをインクルードできます。

XML Schemaのインクルードの概念を次の図に示します。

図3‒13 XML Schemaのインクルード

[図データ]

〈この項の構成〉

(1) xsd:include要素の有効範囲

XML Schemaをインクルードすることで,インクルード対象のXML Schemaの要素および属性を参照できます。XML Schemaの型定義を参照する場合,同じファイル内に参照する型定義がなくても,型定義を記述したXML Schemaのファイルをインクルードすれば参照できます。

XML Schemaの要素および属性を参照できる場合の例を示します。

図3‒14 XML Schemaの要素および属性を参照できる場合(インクルード)

[図データ]

対象となるXML Schemaをインクルードしない場合は,別のファイルに記述されたXML Schemaの要素および属性を参照できません。また,別のファイルを介して,間接的にXML Schemaの要素および属性を参照することはできません。

XML Schemaの要素および属性を参照できない場合の例を示します。

図3‒15 XML Schemaの要素および属性を参照できない場合(インクルード)

[図データ]

(2) xsd:include要素の書式

xsd:include要素の書式と属性を示します。

書式
<xsd:include schemaLocation="インクルード対象のXML Schemaのファイル名"/>
属性
  • schemaLocation

    インクルード対象のXML Schemaのファイル名を定義します。この属性の定義は必須です。

    schemaLocation属性に定義できるのは相対パスだけです。したがって,絶対パスや,http://やftp://などのプロトコルで始まるURIは定義できません。また,相対パスにショートカットを含めることはできません。

    相対パスを記述するときは,「3.3.6(2) xsd:import要素の書式」に記載された「相対パスに指定する文字に関する注意」の内容に注意してください。

(3) xsd:include要素の構文

xsd:include要素の構文,および定義時の注意事項を示します。

(a) xsd:include要素の記述位置

xsd:include要素は,次に示す規則に従って記述してください。

  • xsd:schema要素の子要素として記述してください。

  • xsd:annotation要素よりもあとに記述してください。

  • xsd:annotation要素およびxsd:import要素を除く,ほかのすべての要素よりも前に記述してください。

(b) インクルード対象のXML Schemaの定義

インクルード対象のXML Schemaでは,ルート要素をxsd:schema要素にしてください。また,インクルード対象のxsd:schema要素のtargetNamespace属性には,インクルード元のtargetNamespace属性と同じ値を定義してください。

(c) 複数のXML Schemaのインクルード

xsd:schemaの子要素にxsd:include要素を複数行記述することで,複数のXML Schemaをインクルードできます。ただし,ファイル名(schemaLocation属性の値)が重複した場合はインクルードできません。

(4) xsd:include要素の定義例

XML Schemaをインクルードする場合の定義例を示します。