XML 模式 属性 元素
❮ XML 模式完整参考
定义和用法
属性元素定义一个属性。
元素信息
- 父元素: attributeGroup、schema、complexType、restriction(simpleContent 和 complexContent)、extension(simpleContent 和 complexContent)
语法
<attribute
default=string
fixed=string
form=qualified|unqualified
id=ID
name=NCName
ref=QName
type=QName
use=optional|prohibited|required
任何属性
>
(annotation?,(simpleType?))
</attribute>
(? 符号表示该元素在属性元素中可以出现零次或一次)
属性 | 描述 |
---|---|
default | 可选。指定属性的默认值。default 和 fixed 属性不能同时存在 |
fixed | 可选。指定属性的固定值。default 和 fixed 属性不能同时存在 |
form | 可选。指定属性的形式。默认值为包含该属性的元素的 attributeFormDefault 属性的值。可以设置为以下值之一
|
id | 可选。指定元素的唯一 ID |
name | 可选。指定属性的名称。name 和 ref 属性不能同时存在 |
ref | 可选。指定对命名属性的引用。name 和 ref 属性不能同时存在。如果存在 ref,则 simpleType 元素、form 和 type 不能存在 |
type | 可选。指定内置数据类型或简单类型。type 属性仅当内容不包含 simpleType 元素时才能存在 |
use | 可选。指定属性的使用方式。可以是以下值之一
|
任何属性 | 可选。指定任何其他具有非模式命名空间的属性 |
示例 1
<xs:attribute name="code">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][A-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
上面的示例表示 "code" 属性有约束。唯一可接受的值是两个大写字母 a 到 z。
示例 2
要使用复杂类型中现有的属性定义来声明属性,请使用 ref 属性
<xs:attribute name="code">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][A-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:complexType name="someComplexType">
<xs:attribute ref="code"/>
</xs:complexType>
示例 3
属性可以有默认值或固定值。默认值在没有指定其他值时自动分配给属性。在下面的示例中,默认值为 "EN"
<xs:attribute name="lang" type="xs:string" default="EN"/>
固定值在没有指定其他值时也会自动分配给属性。但与默认值不同;如果您指定了与固定值不同的值,则文档被视为无效。在下面的示例中,固定值为 "EN"
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
示例 4
默认情况下,所有属性都是可选的。要明确指定属性是可选的,请使用 "use" 属性
<xs:attribute name="lang" type="xs:string" use="optional"/>
要使属性成为必需的
<xs:attribute name="lang" type="xs:string" use="required"/>
❮ XML 模式完整参考