6.Complex Content
前章では、既存の型のSimple Typeを拡張して、Simple ContentのComplex Typeを作成できることを見ていきました。本章では、既存の型を元にComplex ContentのComplex Typeを作成する方法について、説明します。
XML Schema 6章 Complex Content
- 6.1 Complex Content
- 6.2 拡張
- 6.3 制限
- 6.4 まとめ
6.1 Complex Content
Complex Contentとは、内容に子供要素を含むような要素の型を言います。以下に例を示します。
<items>
<item partNum="872-AA">
<productName>Lawnmower</productName>
<quantity>1</quantity>
<internationalPrice currency="EUR">423.46</internationalPrice>
<comment>Confirm this is electric</comment>
</item>
<item partNum="926-AA">
<productName>Baby Monitor</productName>
<quantity>1</quantity>
<internationalPrice currency="USD">39.98</internationalPrice>
<shipDate>1999-05-21</shipDate>
</item>
</items>
上のXML文書の中では、items要素、item要素、internationalPrice要素はComplex Typeの要素です。その中で、items、itemは子供要素をもちます。よって、items、itemはComplex ContentのComplex Typeといえます。また、internationalPrice要素は属性を持ちますが、子供要素を含みません。よって、internationalPriceは、Simple ContentのComplex Typeとなります。
既存の型を基に、Complex ContentのComplex Typeを作成する場合は、以下のように記述します。
<complexType name="Complex Typeの名前"> <complexContent> Complex Typeの内容 </complexContent> </complexType>
以下に例を示します。
<complexType name=USAddress>
<complexContent>
<extension base="ipo:Address>
<sequence>
<element name="state" type="ipo:USState"/>
<element name="zip" type="positiveInteger"/>
</sequence>
</extension>
</complexContent>
</complexType>
上の例では、USAddressという型を新たに定義しています。直下の子供要素で、complexContentを指定しているところから、既存の型を基に、新たなComplex ContentのComplex Typeを作成しようとしていることがわかります。
それでは、既存の型を基に、新たな型を作成する方法について、説明していきます。

