混合内容的复杂类型
XML元素 "letter",包含文本和其他元素:
<letter>
Dear Mr.<name>John Smith</name>
您的订单 <orderid>1032</orderid>
将于 <shipdate>2020-09-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" 的子元素之间,必须将 "mixed" 属性设置为 "true"。 <xs:sequence> 标记意味着定义的元素(名称,订单ID和发货日期)必须以该顺序出现在 "letter" 元素内。
我们还可以给 complexType 元素命名,并让 "letter" 元素具有类型属性,该属性引用 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>