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


所有的属性均作为简易类型来声明。


什么是属性?

简易元素无法拥有属性。假如某个元素拥有属性,它就会被当作某种复合类型。但是属性本身总是作为简易类型被声明的。


如何声明属性?

定义属性的语法是

<xs:attribute name="xxx" type="yyy"/>

在此处,xxx 指属性名称,yyy 则规定属性的数据类型。XML Schema 拥有很多内建的数据类型。

最常用的类型是:

  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time

实例

这是带有属性的 XML 元素:

<lastname lang="EN">Smith</lastname>

这是对应的属性定义:

<xs:attribute name="lang" type="xs:string"/>


属性的默认值和固定值

属性可拥有指定的默认值或固定值。

当没有其他的值被规定时,默认值就会自动分配给元素。

在下面的例子中,默认值是 "EN":

<xs:attribute name="lang" type="xs:string" default="EN"/>

固定值同样会自动分配给元素,并且您无法规定另外的值。

在下面的例子中,固定值是 "EN":

<xs:attribute name="lang" type="xs:string" fixed="EN"/>


可选的和必需的属性

在默认的情况下,属性是可选的。如需规定属性为必选,请使用 "use" 属性:

<xs:attribute name="lang" type="xs:string" use="required"/>


对内容的限定

当 XML 元素或属性拥有被定义的数据类型时,就会向元素或属性的内容添加限定。

假如 XML 元素的类型是 "xs:date",而其包含的内容是类似 "Hello World" 的字符串,元素将不会(通过)验证。

通过 XML schema,您也可向您的 XML 元素及属性添加自己的限定。这些限定被称为 facet(编者注:意为(多面体的)面,可译为限定面)。您会在下一节了解到更多有关 facet 的知识。