Latest web development tutorials

XML Schema 複合類型– 混合內容

混合的複合類型可包含屬性、元素以及文本。


帶有混合內容的複合類型

XML 元素,"letter",含有文本以及其他元素:

<letter>
Dear Mr.<name>John Smith</name>.
Your order <orderid>1032</orderid>
will be shipped on <shipdate>2001-07-13</shipdate>.
</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:complexType>
</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:sequence>
</xs:complexType>