XML Schema element 元素
-
定义和使用
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>
(?符号声明该元素可以出现零次或一次,而 * 符号声明该元素可以出现零次或多次。)
-
参数
属性 描述 id 可选的。 指定元素的唯一ID name 可选的。 指定元素的名称。 如果父元素是架构元素,则此属性为必需 ref 可选的。 引用另一个元素的名称。 ref 属性可以包含名称空间前缀。 如果父元素是架构元素,则不能使用此属性 type 可选的。 指定内置数据类型的名称,或者 simpleType 或 complexType 元素的名称 substitutionGroup 可选的。 指定可以用该元素替换的元素的名称。 如果父元素不是架构元素,则不能使用此属性 default 可选的。 指定元素的默认值(仅当元素的内容是简单类型或仅文本时才可以使用) fixed 可选的。 为元素指定一个固定值(仅当元素的内容是简单类型或仅文本时才可以使用) form 可选的。 指定元素的形式。 “unqualified” 表示此元素不需要使用名称空间前缀进行限定。 “qualified” 表示此元素必须使用名称空间前缀进行限定。 默认值为架构元素的elementFormDefault 属性的值。 如果父元素是架构元素,则不能使用此属性 maxOccurs 可选的。 指定此元素可以在父元素中出现的最大次数。 该值可以是 >= 0 的任何数字,或者如果您不希望限制最大数目,请使用值 “unbounded”。 默认值为 1。如果父元素是架构元素,则不能使用此属性。 minOccurs 可选的。 指定此元素可以在父元素中出现的最小次数。 该值可以是 >= 0 的任何数字。默认值为 1。如果父元素是架构元素,则不能使用此属性。 nillable 可选的。 指定是否可以为元素分配一个明确的 null 值。 True 可使元素的实例将 null 属性设置为 true。 null 属性定义为实例的 XML Schema 名称空间的一部分。 默认为 false。 abstract 可选的。 指定是否可以在实例文档中使用该元素。 True表示该元素不能出现在实例文档中。 取而代之的是,其替换组属性包含此元素的限定名称(QName)的另一个元素必须出现在该元素的位置。 默认为 false。 block 可选的。 防止使用具有指定派生类型的元素代替该元素。 此值可以包含#all或作为扩展,限制或 equivClass 的子集的列表: - extension -防止由扩展派生的元素
- restriction -防止限制产生的元素
- substitution -防止替换产生的元素
- #all-阻止所有派生元素
final 可选的。 在 element 元素上设置 final 属性的默认值。 如果父元素不是架构元素,则不能使用此属性。 该值可以包含 #all 或作为扩展或限制的子集的列表: - extension -防止由扩展派生的元素
- restriction -防止限制产生的元素
- #all-阻止所有派生元素
any attributes 可选的。 用非模式命名空间指定任何其他属性。 -
示例
以下示例是一个架构,其中包含四个简单元素,分别为字符串,nonNegativeInteger 和日期,分别名为 “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>
下面的示例是一个架构,该架构具有一个名为 “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>
此示例与上面的相同,但是在这里我们选择使用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>