<XML Schema參考手冊
定義和用法
屬性元素定義的屬性。
元素信息
- Parent elements: attributeGroup,架構複雜類型,限制(both simpleContent and 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 | 可選的。 指定屬性的名稱。 名稱和ref屬性不能同時出現。 |
ref | 可選的。 規定對指定的屬性的引用。 名稱和ref屬性不能同時出現。 如果裁判出現,simpleType元素,形式和類型可以不存在 |
type | 可選的。 指定一個內置的數據類型或簡單類型。 該type屬性只能存在時的內容不包含simpleType元素 |
use | 可選的。 指定屬性的使用方式。 可以是以下值之一:
|
any attributes | 可選的。 規定帶有non-schema命名空間的任何其他屬性。 |
例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 Schema參考手冊