聲明一個元素。
<element abstract = Boolean : false block = (#all | List of (extension | restriction | substitution)) default = string final = (#all | List of (extension | restriction)) fixed = string form = (qualified | unqualified) id = ID maxOccurs = (nonNegativeInteger | unbounded) : 1 minOccurs = nonNegativeInteger : 1 name = NCName nillable = Boolean : false ref = QName substitutionGroup = QName type = QName {any attributes with non-schema Namespace}...> Content: (annotation?, ((simpleType | complexType)?, (unique | key | keyref)*)) </element>
-
一個指示符,指示元素是否可以在實例文檔中使用。如果該值為 true,則元素不能出現在實例文檔中。而 substitutionGroup 屬性包含該元素的限定名 (QName) 的其他元素必須出現在該元素的位置。多個元素可以在其 substitutionGroup 屬性中引用該元素。
默認值為 false。
可選項。
- block
-
派生的類型。block 屬性防止具有指定派生類型的元素被用於替代該元素。該值可以包含 #all 或者一個列表,該列表是 extension、restriction 或 substitution 的子集。
extension
防止通過擴展派生的元素被用來替代該元素。
restriction
防止通過限制派生的元素被用來替代該元素。
substitution
防止通過替換派生的元素被用來替代該元素。
#all
防止所有派生的元素被用來替代該元素。
可選項。
- default
-
如果元素內容是簡單類型或者元素內容是 textOnly,則為元素的默認值。
fixed 和 default 屬性相互排斥。
如果元素包含簡單類型,則該值必須是該類型的有效值。
可選項。
- substitutionGroup
-
可用來替代該元素的元素的名稱。該元素必須具有相同的類型或從指定元素類型派生的類型。
如果引用的元素是在全局級別聲明的(父元素是 schema 元素),則可以在任何元素上使用該屬性。
該值必須是 QName。
可選項。
- final
-
派生的類型。final 屬性在 element 元素上設置 final 屬性的默認值。該值可以包含 #all 或者一個列表,該列表是 extension 或 restriction 的子集。
extension
防止通過擴展派生的元素被用來替代該元素。
restriction
防止通過限制派生的元素被用來替代該元素。
#all
防止所有派生的元素被用來替代該元素。
如果包含元素不是 schema 元素,則會被禁止。
可選項。
- fixed
-
如果元素的內容是簡單類型或其內容是 textOnly,則為該元素的預確定的、不可更改的值。
fixed 和 default 屬性相互排斥。
可選項。
- form
-
該元素的形式。默認值是包含該屬性的 schema 元素的 elementFormDefault 屬性的值。該值必須是下列字符串之一:“qualified”或“unqualified”。
如果該值是非限定的,則無須通過命名空間前綴限定該元素。
如果該值是限定的,則必須通過命名空間前綴限定該元素。
可選項。
- id
-
該元素的 ID。id 值必須屬於類型 ID 並且在包含該元素的文檔中是唯一的。
可選項。
- maxOccurs
-
該元素可以在包含元素中出現的最大次數。該值可以是大於或等於零的整數。若不想對最大次數設置任何限制,請使用字符串“unbounded”。
如果包含元素為 schema 元素,則會被禁止。
可選項。
- minOccurs
-
該元素可以在包含元素中出現的最小次數。該值可以是大於或等於零的整數。若要指定該元素是可選的,請將此屬性設置為零。
如果包含元素為 schema 元素,則會被禁止。
可選項。
- name
-
元素的名稱。該名稱必須是在 XML 命名空間規范中定義的無冒號名稱 (NCName)。Name 和 ref 屬性不能同時出現。
如果包含元素是 schema 元素,則是必選項。
可選項。
- nillable
-
一個指示符,指示是否可以將顯式的零值分配給該元素。此項應用於元素內容並且不是該元素的屬性。默認值為 false。
如果 nillable 為 true,將使該元素的實例可以將 nil 屬性設置為 true。nil 屬性被定義為實例的 XML 架構命名空間的一部分。
例如,下段定義了單個元素,同時將 nillable 設置為 true。
<xs:element name="myDate" type="xs:date" nillable="true"/>
下段使用該元素並具有顯式零值(nil 屬性設置為 true)。
<myDate xsi:nil="true"></myDate>
可選項。
- ref
-
在此架構(或者由指定命名空間指示的其他架構)中聲明的元素的名稱。ref 值必須是 QName。ref 可以包含命名空間前綴。
如果包含元素為 schema 元素,則會被禁止。
如果 ref 屬性出現,則 complexType、simpleType、key、keyref 和 unique 元素以及 nillable、default、fixed、form、block 和 type 屬性不能出現。
<xs:element ref="comment"/>
可選項。
- type
-
或者是內置數據類型的名稱,或者是在此架構(或者由指定命名空間指示的其他架構)中定義的 simpleType 或 complexType 元素的名稱。提供的值必須與引用的 simpleType 或 complexType 元素上的 name 屬性相對應。
type 和 ref 屬性是互相排斥的。
若要使用現有簡單類型或復雜類型定義聲明一個元素,請使用 type 屬性指定現有類型。
<xs:element name="name" type="xs:string"/>
可選項。
出現次數 |
在架構中定義的元素的數目。 |
父元素 |
|
內容 |
元素聲明可以作為 schema 元素(具有全局范圍)的子元素存在或在復雜類型定義內存在。在復雜類型內,元素聲明可以作為本地聲明或對具有全局范圍的元素的引用存在。
全局元素聲明必須直接定義復雜類型。
只有在 ref 和 type 屬性均不存在時,simpleType 或 complexType 元素才可以作為子元素存在。
此外,元素可以通過在 choice、all、sequence 和 complexType 元素內的引用出現。
<xs:element name="cat" type="xs:string"/> <xs:element name="dog" type="xs:string"/> <xs:element name="redDog" type="xs:string" substitutionGroup="dog" /> <xs:element name="brownDog" type="xs:string" substitutionGroup ="dog" /> <xs:element name="pets"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="cat"/> <xs:element ref="dog"/> </xs:choice> </xs:complexType> </xs:element>