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))
any attributes
>
annotation?,(simpleType|complexType)?,(unique|key|keyref)*
</element>
(? 符號聲明在 element 元素中,該元素可出現零次或一次,* 符號聲明元素可出現零次或多次。)
屬性 | 描述 |
id | 可選。規(guī)定該元素的唯一的 ID。 |
name | 可選。規(guī)定元素的名稱。如果父元素是 schema 元素,則此屬性是必需的。 |
ref | 可選。對另一個元素的引用。ref 屬性可包含一個命名空間前綴。如果父元素是 schema 元素,則不是使用該屬性。 |
type | 可選。規(guī)定內建數據類型的名稱,或者規(guī)定 simpleType 或 complexType 元素的名稱。 |
substitutionGroup | 可選。規(guī)定可用來替代該元素的元素的名稱。 該元素必須具有相同的類型或從指定元素類型派生的類型。 如果父元素不是 schema 元素,則不可以使用該屬性。 |
default | 可選。為元素規(guī)定默認值(僅當元素內容是簡單類型或 textOnly 時使用)。 |
fixed | 可選。為元素規(guī)定固定值(僅當元素內容是簡單類型或 textOnly 時使用)。 |
form | 可選。該元素的形式。 默認值是包含該屬性的 schema 元素的 elementFormDefault 屬性的值。 該值必須是下列字符串之一: "qualified" 或 "unqualified"。 如果父元素是 schema 元素,則不能使用該屬性。 - 如果該值是 "unqualified",則無須通過命名空間前綴限定該元素。
- 如果該值是 "qualified",則必須通過命名空間前綴限定該元素。
|
maxOccurs | 可選。規(guī)定 element 元素在父元素中可出現的最大次數。該值可以是大于或等于零的整數。若不想對最大次數設置任何限制,請使用字符串 "unbounded"。 默認值為 1。 如果父元素是 schema 元素,則不能使用該屬性。 |
minOccurs | 可選。規(guī)定 element 元素在父元素中可出現的最小次數。該值可以是大于或等于零的整數。默認值為 1。 如果父元素是 schema 元素,則不能使用該屬性。 |
nillable | 可選。指示是否可以將顯式的零值分配給該元素。此項應用于元素內容并且不是該元素的屬性。 默認值為 false。 如果 nillable 為 true,將使該元素的實例可以將 nil 屬性設置為 true。 nil 屬性被定義為實例的 XML 架構命名空間的一部分。 |
abstract | 可選。指示元素是否可以在實例文檔中使用。如果該值為 true,則元素不能出現在實例文檔中。 相反,substitutionGroup 屬性包含該元素的限定名 (QName) 的其他元素必須出現在該元素的位置。多個元素可以在其 substitutionGroup 屬性中引用該元素。默認值是 false。 |
block | 可選。派生的類型。 block 屬性防止具有指定派生類型的元素被用于替代該元素。該值可以包含 #all 或者一個列表,該列表是 extension、restriction 或 substitution 的子集: - extension - 防止通過擴展派生的元素被用來替代該元素。
- restriction - 防止通過限制派生的元素被用來替代該元素。
- substitution - 防止通過替換派生的元素被用來替代該元素。
- #all - 防止所有派生的元素被用來替代該元素。
|
final | 可選。設置 element 元素上 final 屬性的默認值。如果父元素不是 schema 元素,則不能使用該屬性。該值可以包含 #all 或者一個列表,該列表是 extension 或 restriction 的子集: - extension - 防止通過擴展派生的元素被用來替代該元素
- restriction - 防止通過限制派生的元素被用來替代該元素
- #all - 防止所有派生的元素被用來替代該元素
|
any attributes | 可選。規(guī)定帶有 non-schema 命名空間的任何其他屬性。 |
實例 1
下面的例子是一個schema,其中帶有四個簡單元素:"fname", "lname", "age" 以及 "dateborn",類型是 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 參考手冊
更多建議: