目录

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" 的子元素之间,mixed 属性必须设置为"true"。 <xs:sequence> 标记意味着定义的元素(名称、订单 ID 和发货日期)必须按该顺序出现在 "letter" 元素内。

我们还可以给complexType元素一个名称,并让"letter"元素有一个引用complexType名称的type属性(如果使用此方法,多个元素可以引用相同的复杂类型):

<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>