XML Schema 複合空元素
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>
<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 元素給出的訊號是,我們打算限定或拓展某個複合類型的內容模型,而 integer 限定則聲明了一個屬性但不會引入任何的元素內容。
但是,也可以更緊湊地宣告此 "product" 元素:
#<xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
或您可以為complexType 元素取一個名字,然後為"product" 元素設定一個type 屬性並引用這個complexType 名稱(透過使用此方法,若干個元素皆可引用相同的複合型別):
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>