1. 程式人生 > >schema中simpleType元素和complexType元素的區別

schema中simpleType元素和complexType元素的區別

1、simpleType型別的元素中不能包含子元素和屬性

<xs:simpleType name="roadbikeSize">
<xs:restriction base="xs:integer">
<xs:enumeration value="55"/>
<xs:enumeration value="20"/>
<xs:enumeration value="80"/>
</xs:restriction>
</xs:simpleType>

2、當需要宣告一個元素的子元素或者元素的屬性時要用complexType

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
<xs:attribute ref="interest" use="required"/>
</xs:complexType>
</xs:element>


3、當需要基於內建的基本資料型別定義一個新的資料型別時要用simpleType

4、當要宣告一個只有屬性沒有子元素而有內容的元素時需要用到simpleContent

<xs:element name="shoeSize">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="sizing" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="small"/>
<xs:enumeration value="medium"/>
<xs:enumeration value="large"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>


simpleContent用於限定元素的內容,有simpleContent一定要定義一個attribute,因為有simpleContent說明沒有子元素,則必須要有attribute,否則就成為了simpleType