XML Schema 教程
1. XML Schema 教程 2. XML Schemas 简介 3. 为什么使用 XML Schema? 4. 如何使用 XML Schema 5. XML schema 元素 6. XSD 简易元素 7. XML Schema 属性 8. XML Schema 限定 / Facets 9. XML Schema 复合元素 10. XML Schema 复合空元素 11. XML Schema 复合类型 – 仅含元素 12. XML Schema 复合元素 – 仅含文本 13. XML Schema 复合类型 – 混合内容 14. XML Schema 指示器 15. XML Schema any 元素 16. XML Schema anyAttribute 元素 17. XML Schema 元素替换 18. XML Schema 实例 19. XML Schema 字符串数据类型 20. XML Schema 日期/时间 数据类型 21. XML Schema 数值数据类型 22. XML Schema 杂项数据类型 23. XML Schema 总结 24. XML Schema 参考手册

XML Schema 复合类型 – 混合内容

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>

下面这个 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>