XML Schema 複合型別 – 混合內容
XSD 混合內容
混合的複合型別可包含屬性、元素以及文字。
帶有混合內容的複合型別
XML 元素,"letter",含有文字以及其他元素:
<letter>
Dear Mr.<name>John Smith</name>.
Your order <orderid>1032</orderid>
will be shipped on <shipdate>2001-07-13</shipdate>.
</letter>
Dear Mr.<name>John Smith</name>.
Your order <orderid>1032</orderid>
will be shipped on <shipdate>2001-07-13</shipdate>.
</letter>
下面這個schema 宣告了這個"letter" 元素:
##下面這個schema 宣告了這個"letter" 元素:
<xs:element name="letter">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="orderid" type="xs:positiveInteger"/>
<xs:element name="shipdate" type="xs:date"/>
</xs:sequence><xs:element name="letter">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="orderid" type="xs:positiveInteger"/>
<xs:element name="shipdate" type="xs:date"/>
</xs:element>
#注意:
為了讓字元資料可以出現在"letter" 的子元素之間, mixed 屬性必須設定為"true"。 <xs:sequence> 標籤 (name、orderid 以及 shipdate ) 意味著被定義的元素必須依序出現在 "letter" 元素內部。我們也可以為complexType 元素取一個名字,讓"letter" 元素的type 屬性引用complexType 的這個名稱(透過這個方法,若干元素皆可引用同一個複合型別):
<xs:element name="letter" type="lettertype"/>
<xs:complexType name="lettertype" mixed="true">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="orderid" type="xs:positiveInteger"/>
<xs:element name="shipdate" type="xs:date"/><xs:element name="letter" type="lettertype"/>
<xs:complexType name="lettertype" mixed="true">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="orderid" type="xs:positiveInteger"/>