複雑型の要素を宣言する
複雑型を定義したら、それを使って要素を宣言し、XML文書内でその型の要素を使うことができます。
1. <xsd:element と入力して要素宣言を開始します。
2. type="label" と入力します。
label の部分には、複雑型を定義したときに指定した名前を入力します(「要素のみを含む要素を定義する」の2.)。
3. /> と入力して要素宣言を終えます。
XSDコード <xsd:complexType name="characteristicType">
<xsd:sequence>
<xsd:element name="weight" type="string" />
<xsd:element name="length" type="xsd:string" / >
</xsd:sequence>
<xsd:attribute name="kind" type="xsd:string" / >
</xsd:complexType>これは典型的な複雑型定義です(前ページと同じ)。
XSDコード <xsd:element name="characteristics" type="characteristicType" / >
<xsd:complexType type="familyType" >
<xsd:sequence>
<xsd:element name="weight" type="nameType" minOccurs="2"/>
<xsd:element ref="characteristics"minOccurs="1"/>
・・・・・・・・・・・・・・・・・・・・・・・・・・・
スキーマ文書のトップレベルで要素をグローバルに宣言することができます。その場合は、スキーマ内のほかのコンポーネント内で要素を参照する必要があります。
XSDコード <xsd:complexTypet name="familyType">
<xsd:sequence>
<xsd:element name="weight" type="nameType" minOccurs="2"/>
<xsd:element name="characteristics" type="characteristicType" minOccurs="1"/>
・・・・・・・・・・・・・・・・・・・・・・・・・・・または、要素をほかのコンポーネント(複雑型定義や名前付きグループなど)内でローカルに宣言することもできます。その場合は要素が自動的に参照されます。
・要素はxsd:schema要素のすぐ下でグローバルに宣言する子tも、複雑型定義、シーケンス、選択肢セット、順序なしグループ、名前付きグループ定義内でローカルに宣言することもできます。
・要素をローカルに宣言する場合は、minOccurs属性とmaxOccurs属性を使って、要素を使用できる回数を指定できます。