XSD 混合内容

  • 定义和使用

    混合复杂类型元素可以包含属性,元素和文本。
  • 混合内容的复杂类型

    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>