XML 架构 attribute 元素
❮ 完整的 XML 架构参考
定义和用法
attribute 元素定义了一个属性。
元素信息
- 父元素: attributeGroup、schema、complexType、限制(simpleContent 和 complexContent)、扩展(simpleContent 和 complexContent)
语法
<attribute
default=string
fixed=string
form=qualified|unqualified
id=ID
name=NCName
ref=QName
type=QName
use=optional|prohibited|required
any attributes
>
(annotation?,(simpleType?))
</attribute>
(? 符号声明该元素在属性元素内可以出现零次或一次)
属性 | 描述 |
---|---|
default | 可选。指定属性的默认值。 默认属性和固定属性不能同时存在 |
fixed | 可选。指定属性的固定值。 默认属性和固定属性不能同时存在 |
form | 可选。 指定属性的形式。 默认值是包含该属性的元素的attributeFormDefault 属性的值。 可以设置为以下之一:
|
id | 可选。指定元素的唯一 ID |
name | 可选。指定属性的名称。 name 和 ref 属性不能同时存在 |
ref | 可选。指定对命名属性的引用。 Name 和 ref 属性不能同时存在。 如果 ref 存在,则 simpleType 元素、表单和类型不能存在 |
type | 可选。指定内置数据类型或简单类型。 type 属性只能在内容不包含 simpleType 元素时出现 |
use | 可选。指定如何使用属性。 可以是以下值之一:
|
any attributes | 可选。 指定具有非模式命名空间的任何其他属性 |
实例 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 架构参考