<XML Schema參考手冊
定義和用法
該complexType元素定義複雜類型。 複雜類型元素是包含其它元素和/或屬性的XML元素。
元素信息
- Parent elements:元素,重新定義,模式
句法
<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>
(?符號聲明元素可出現零次或一次,*符號聲明元素可出現複雜類型元素中零次或多次)
屬性 | 描述 |
---|---|
id | 可選的。 指定一個唯一的ID為元素 |
name | 可選的。 指定名稱為元素 |
abstract | 可選的。 指定是否複雜類型可以在實例文檔中使用。 True表示一個元素不能直接使用這個複雜的類型,但必須使用從該複雜類型派生的複雜類型。 默認為false |
mixed | 可選的。 指定字符數據是否允許此complexType元素的子元素之間出現。 默認為false。 如果simpleContent的元素是子元素,在mixed屬性是不允許的! |
block | 可選的。 防止複雜類型具有替代該複雜類型被用來指定類型派生的。 這個值可以包含#all或者是擴展或限制的一個子集的列表:
|
final | 可選的。 防止特定類型的這種複雜類型元素的派生。 可以包含#all或者是延長或限制的一個子集的列表。
|
any attributes | 可選的。 規定帶有non-schema命名空間的任何其他屬性。 |
例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 and 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 Schema參考手冊