XML Schema element 元素
❮ 完整的 XML Schema 參考
定義和用法
element 元素定義了一個元素。
元素資訊
- 父元素: schema, choice, all, sequence, group
語法
<element
id=ID
name=NCName
ref=QName
type=QName
substitutionGroup=QName
default=string
fixed=string
form=qualified|unqualified
maxOccurs=nonNegativeInteger|unbounded
minOccurs=nonNegativeInteger
nillable=true|false
abstract=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
任何屬性
>
annotation?,(simpleType|complexType)?,(unique|key|keyref)*
</element>
(? 符號表示該元素在 element 元素內可以出現零次或一次,* 符號表示該元素可以出現零次或多次)
Attribute | 描述 |
---|---|
id | 可選。指定元素的唯一 ID |
name | 可選。指定元素的名稱。如果父元素是 schema 元素,則此屬性是必需的 |
ref | 可選。引用另一個元素的名稱。ref 屬性可以包含名稱空間字首。如果父元素是 schema 元素,則無法使用此屬性 |
type | 可選。指定內建資料型別的名稱,或 simpleType 或 complexType 元素的名稱 |
substitutionGroup | 可選。指定可以被此元素替換的元素的名稱。如果父元素不是 schema 元素,則無法使用此屬性 |
default | 可選。指定元素的預設值(僅當元素的內容是簡單型別或純文字時才可使用) |
fixed | 可選。指定元素的固定值(僅當元素的內容是簡單型別或純文字時才可使用) |
form | 可選。指定元素的表單。“unqualified”表示此元素不要求帶有名稱空間字首。“qualified”表示此元素必須帶有名稱空間字首。預設值是 schema 元素上 form 屬性的值。如果父元素是 schema 元素,則無法使用此屬性 |
maxOccurs | 可選。指定該元素在父元素中可以出現的最大次數。值可以是任何大於或等於 0 的數字,或者如果想不限制最大次數,可以使用值“unbounded”。預設值為 1。如果父元素是 schema 元素,則無法使用此屬性 |
minOccurs | 可選。指定該元素在父元素中可以出現的最小次數。值可以是任何大於或等於 0 的數字。預設值為 1。如果父元素是 schema 元素,則無法使用此屬性 |
nillable | 可選。指定是否可以為該元素分配顯式的 null 值。True 允許元素例項將 null 屬性設定為 true。null 屬性是在 XML Schema 名稱空間中為例項定義的。預設值為 false |
abstract | 可選。指定該元素是否可以在例項文件中使用。True 表示該元素不能出現在例項文件中。相反,應在此元素的位置出現一個 substitutionGroup 屬性包含此元素限定名稱 (QName) 的元素。預設值為 false |
block | 可選。阻止使用指定型別的派生元素來代替此元素。此值可以包含 #all 或 extension、restriction 或 equivClass 的子集列表
|
final | 可選。設定 element 元素的 final 屬性的預設值。此屬性不能用於父元素不是 schema 元素的情況。此值可以包含 #all 或 extension 或 restriction 的子集列表
|
任何屬性 | 可選。指定任何其他非 schema 名稱空間的屬性 |
示例 1
以下示例是一個包含四個簡單元素“fname”、“lname”、“age”和“dateborn”的 schema,它們的資料型別分別為 string、nonNegativeInteger 和 date
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="fname" type="xs:string"/>
<xs:element name="lname" type="xs:string"/>
<xs:element name="age" type="xs:nonNegativeInteger"/>
<xs:element name="dateborn" type="xs:date"/>
</xs:schema>
示例 2
以下示例是一個名為“note”的元素 schema,其資料型別為複雜型別。“note”元素包含另外四個簡單元素:“to”、“from”、“heading”和“body”
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
示例 3
此示例與示例 2 非常相似,但這裡我們選擇使用 ref 屬性來引用元素名稱
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element ref="to"/>
<xs:element ref="from"/>
<xs:element ref="heading"/>
<xs:element ref="body"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:schema>
❮ 完整的 XML Schema 參考