XML 模式 元素 元素
❮ XML 模式完整参考
定义和用法
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 元素中出现零次或多次)
属性 | 描述 |
---|---|
id | 可选。指定元素的唯一 ID |
name | 可选。指定元素的名称。如果父元素是 schema 元素,则此属性是必需的 |
ref | 可选。引用另一个元素的名称。ref 属性可以包含命名空间前缀。如果父元素是 schema 元素,则此属性不能使用 |
type | 可选。指定内置数据类型名称,或 simpleType 或 complexType 元素的名称 |
substitutionGroup | 可选。指定可以替换此元素的元素名称。如果父元素不是 schema 元素,则此属性不能使用 |
default | 可选。指定元素的默认值(只能用于元素内容是简单类型或仅文本的情况) |
fixed | 可选。指定元素的固定值(只能用于元素内容是简单类型或仅文本的情况) |
form | 可选。指定元素的形式。“unqualified” 指示此元素不需要用命名空间前缀限定。“qualified” 指示此元素必须用命名空间前缀限定。默认值为 schema 元素的 elementFormDefault 属性的值。如果父元素是 schema 元素,则此属性不能使用 |
maxOccurs | 可选。指定此元素在父元素中可以出现的最大次数。该值可以是任何大于等于 0 的数字,或者如果您希望对最大次数没有限制,请使用值“unbounded”。默认值为 1。如果父元素是 schema 元素,则此属性不能使用 |
minOccurs | 可选。指定此元素在父元素中可以出现的最小次数。该值可以是任何大于等于 0 的数字。默认值为 1。如果父元素是 schema 元素,则此属性不能使用 |
nillable | 可选。指定是否可以将显式 null 值分配给元素。True 允许元素实例的 null 属性设置为 true。null 属性被定义为 XML 模式实例命名空间的一部分。默认值为 false |
abstract | 可选。指定元素是否可以在实例文档中使用。True 表示元素不能出现在实例文档中。相反,必须出现另一个元素,其 substitutionGroup 属性包含此元素的限定名称 (QName)。默认值为 false |
block | 可选。防止使用指定类型的派生元素来代替此元素。此值可以包含 #all 或一个列表,该列表是 extension、restriction 或 equivClass 的子集
|
final | 可选。设置 element 元素的 final 属性的默认值。如果父元素不是 schema 元素,则此属性不能使用。此值可以包含 #all 或一个列表,该列表是 extension 或 restriction 的子集
|
任何属性 | 可选。指定任何其他具有非模式命名空间的属性 |
示例 1
以下示例是一个模式,它具有四个名为“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”的元素,该元素是一个复杂类型。“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 模式完整参考