XSD標准架構----- 元素詳解


聲明一個元素。

 
 
<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>
屬性
 
 
abstract

一個指示符,指示元素是否可以在實例文檔中使用。如果該值為 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"/>

可選項。

元素信息
 
 

出現次數

在架構中定義的元素的數目。

父元素

schemachoiceallsequence

內容

simpleTypecomplexTypekeykeyrefunique

備注
 
元素聲明將名稱與類型定義關聯,類型定義可以是內置數據類型、簡單類型或復雜類型。

元素聲明可以作為 schema 元素(具有全局范圍)的子元素存在或在復雜類型定義內存在。在復雜類型內,元素聲明可以作為本地聲明或對具有全局范圍的元素的引用存在。

全局元素聲明必須直接定義復雜類型。

只有在 ref 和 type 屬性均不存在時,simpleType 或 complexType 元素才可以作為子元素存在。

此外,元素可以通過在 choice、all、sequence 和 complexType 元素內的引用出現。

示例
 
以下示例包含兩個元素,這兩個元素可以彼此替代。
XML
 
<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> 
其他資源
 
有關更多信息,請參見  www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-all 上的“W3C XML Schema Part 1: Structures Recommendation”(英文)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM