XML 架构 element 元素
❮ 完整的 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))
any attributes
>
annotation?,(simpleType|complexType)?,(unique|key|keyref)*
</element>
(?号声明该元素可以出现0次或1次,*号声明该元素可以在元素内出现0次或多次)
属性 | 描述 |
---|---|
id | 可选。指定元素的唯一 ID |
name | 可选。 指定元素的名称。 如果父元素是架构元素,则此属性是必需的 |
ref | 可选。指另一个元素的名称。 ref 属性可以包含命名空间前缀。 如果父元素是架构元素,则不能使用该属性 |
type | 可选。指定内置数据类型的名称,或者 simpleType 或 complexType 元素的名称 |
substitutionGroup | 可选。指定可以用此元素替换的元素的名称。 如果父元素不是架构元素,则不能使用此属性 |
default | 可选。指定元素的默认值(仅当元素的内容是简单类型或纯文本时才可以使用) |
fixed | 可选。为元素指定一个固定值(只能在元素的内容是简单类型或纯文本时使用) |
form | 可选。指定元素的形式。 "unqualified" 表示此元素不需要使用命名空间前缀进行限定。 "qualified" 表示该元素必须使用命名空间前缀进行限定。 默认值是架构元素的 elementFormDefault 属性的值。 如果父元素是架构元素,则不能使用该属性 |
maxOccurs | 可选。指定此元素可以在父元素中出现的最大次数。 该值可以是任何 >= 0 数字,或者如果您想对最大数字不设限制,请使用值"unbounded"。 默认值为 1。如果父元素是架构元素,则不能使用此属性 |
minOccurs | 可选。指定此元素可以在父元素中出现的最小次数。 该值可以是任意 >= 0 数字。 默认值为 1。如果父元素是架构元素,则不能使用此属性 |
nillable | 可选。指定是否可以将显式空值分配给元素。 True 使元素的实例能够将 null 属性设置为 true。 null 属性被定义为实例的 XML 模式命名空间的一部分。 默认为假 |
abstract | 可选。指定元素是否可以在实例文档中使用。 True 表示该元素不能出现在实例文档中。 相反,其替代组属性包含此元素的限定名称 (QName) 的另一个元素必须出现在此元素的位置。 默认为假 |
block | 可选。防止使用具有指定派生类型的元素代替此元素。 此值可以包含 #all 或作为扩展、限制或 equivClass 子集的列表:
|
final | 可选。设置元素元素的最终属性的默认值。如果父元素不是架构元素,则不能使用此属性。 此值可以包含#all 或作为扩展或限制子集的列表:
|
any attributes | 可选。 指定具有非模式命名空间的任何其他属性 |
实例 1
以下示例是具有四个简单元素的架构,分别名为"fname"、"lname"、"age"和"dateborn",它们的类型分别为字符串、非负整数和日期:
<?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 架构参考