XSD 空要素
空の複合型要素は、属性だけを持ち内容を持つことができません。
複合型空要素
空のXML要素:
<product prodid="1345" /> |
上の "product" 要素には、内容がありません。
内容のない型を定義するためには、その内容の要素を許容する型を定義しなければなりませんが、
次のように、実際には何の要素も宣言しません:
<xs:element name="product">
<xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:integer">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element> |
上記例では、complexContent によって複合型を定義しています。 complexContent 要素は、複合型の内容モデルを制約するのか、
または拡張するのかを示すシグナルです。整数による制約は、1つの属性を宣言しますが、如何なる要素内容も導入しません。
しかし、次のように "product" 要素をコンパクトに宣言することもできます:
<xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element> |
または、complexType 要素に名前を付けて、"product" 要素に
complexType の名前を参照する type 属性を持たせることができます
(この方法を使用する場合、いくつかの要素が同じ複合型を参照できるようになります):
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType> |
|