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>
以下架构声明"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"的子元素之间,混合属性必须设置为"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>