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模式,还可以向XML元素和属性添加自己的限制。这些限制称为面。你可以在下一章阅读更多关于方面的内容。