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を作成しようとしていることがわかります。
それでは、既存の型を基に、新たな型を作成する方法について、説明していきます。