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 元素和属性添加自己的限制。这些限制称为“约束”(facets)。您可以在下一章中阅读有关约束的更多信息。