XML 架构 complexType 元素
❮ 完整的 XML 架构参考
定义和用法
complexType 元素定义了一个复杂类型。 复杂类型元素是包含其他元素和/或属性的 XML 元素。
元素信息
- 父元素: element, redefine, schema
语法
<complexType
id=ID
name=NCName
abstract=true|false
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>
(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>
(? 符号声明该元素可以出现0 次或1 次,* 符号声明该元素可以在complexType 元素内出现0 次或多次)
属性 | 描述 |
---|---|
id | 可选。指定元素的唯一 ID |
name | 可选。指定元素的名称 |
abstract | 可选。指定是否可以在实例文档中使用复杂类型。 True 表示元素不能直接使用这种复杂类型,而必须使用从这种复杂类型派生的复杂类型。 默认为假 |
mixed | 可选。指定是否允许字符数据出现在此 complexType 元素的子元素之间。 默认为假。 如果 simpleContent 元素是子元素,则不允许使用混合属性! |
block | 可选。防止使用具有指定派生类型的复杂类型代替此复杂类型。 此值可以包含#all 或作为扩展或限制子集的列表:
|
final | 可选。防止此复杂类型元素的指定类型派生。 可以包含#all 或作为扩展或限制子集的列表。
|
any attributes | 可选。 指定具有非模式命名空间的任何其他属性 |
实例 1
以下示例有一个名为 "note" 的元素,它属于复杂类型:
<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>
实例 2
以下示例具有一个复杂类型 "fullpersoninfo",它从另一个复杂类型 "personinfo" 派生,通过使用三个附加元素(address, city 和 country)扩展继承的类型:
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
<xs:complexContent>
<xs:extension base="personinfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
在上面的示例中,"employee" 元素必须按顺序包含以下元素: "firstname", "lastname", "address", "city", 和 "country"。
❮ 完整的 XML 架构参考