目次へ

6.Complex Content

前章では、既存の型のSimple Typeを拡張して、Simple ContentのComplex Typeを作成できることを見ていきました。本章では、既存の型を元にComplex ContentのComplex Typeを作成する方法について、説明します。

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を作成しようとしていることがわかります。

それでは、既存の型を基に、新たな型を作成する方法について、説明していきます。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp