4.schema的數(shù)據(jù)類型 1.基本類型
2.擴展數(shù)據(jù)類型
3.數(shù)據(jù)類型的特性
二:schema的元素類型 1.schema元素: 作用:包含已經(jīng)定義的schema 用法: ·屬性 –xmlns –targetNamespace
2.element元素作用:聲明一個元素 屬性: –name –type –ref –minOccurs –maxOccurs –substitutionGroup –fixed –default 示例:
源碼打印? xs:element name='cat' type='xs:string'/> xs:element name='dog' type='xs:string'/> xs:element name='pets'>
3.group元素
作用:把一組元素聲明組合在一起,以便它們能夠一起被復(fù)合類型應(yīng)用 ·屬性:name/ref 示例:
源碼打印? xs:group name='myGroupOfThings'> xs:sequence> xs:element ref='thing1'/> xs:element ref='thing2'/> xs:sequence> xs:group>
4.attribute元素
作用:聲明一個屬性 ·屬性:name/type/ref/use ·示例:
源碼打印? xs:complexType name='myComplexType'> xs:attribute name='mybaseattribute' type='xs:string' use='required'/> xs:complexType>
5.attributeGroup元素
作用:把一組屬性聲明組合在一起,以便可以被復(fù)合類型應(yīng)用 .屬性:name/ref .示例:
源碼打印? xs:attributeGroup name='myAttributeGroup'> xs:attribute name='someattribute1' type='xs:integer'/> xs:attribute name='someattribute2' type='xs:string'/> xs:attributeGroup>
6.simpleType元素
作用:定義一個簡單類型,它決定了元素和屬性值的約束和相關(guān)信息 .屬性:name .內(nèi)容:應(yīng)用已經(jīng)存在的簡單類型,三種方式: –restrict→限定一個范圍 –list→從列表中選擇 –union→包含一個值的結(jié)合 1.子元素為: 定義一個約束條件 2.子元素為:從一個特定數(shù)據(jù)類型的集合中選擇定義一個簡單類型元素 3.子元素為:從一個特定簡單數(shù)據(jù)類型的集合中選擇定義一個簡單類型元素 示例: 源碼打印? xs:restriction base='xs:positiveInteger'> xs:enumeration value='46'/> xs:enumeration value='52'/> xs:enumeration value='55'/> xs:restriction> xs:simpleType> xs:simpleType name='mountainbikesize'> xs:restriction base='xs:string'> xs:enumeration value='small'/> xs:enumeration value='medium'/> xs:enumeration value='large'/> xs:restriction> xs:simpleType> xs:schema>
7.complexTyep類型
作用:定義一個復(fù)合類型,它決定了一組元素和屬性值的約束和相關(guān)信息 ·屬性:name ·示例: 源碼打印? xs:complexType name='internationalShoeSize'> xs:simpleContent> xs:extension base='xs:decimal'> xs:attribute name='sizing' type='xs:string'/> xs:extension> xs:simpleContent> xs:complexType> xs:element name='myShoeSize' type='internationalShoeSize'/>
simpleType元素和complexTyep類型的區(qū)別(重要)
simpleType類型的元素中不能包含元素或者屬性。 ·當(dāng)需要聲明一個元素的子元素和/或?qū)傩詴r,用complexType; ·當(dāng)需要基于內(nèi)置的基本數(shù)據(jù)類型定義一個新的數(shù)據(jù)類型時,用simpleType。 8.simplecontent元素 作用:應(yīng)用于complexType,對它的內(nèi)容進行約束和擴展 9.choice元素 作用:允許唯一的一個元素從一個組中被選擇 .屬性:minOccurs/maxOccurs 10.sequence元素 作用:給一組元素一個特定的序列 一個完整的schema樣例: 源碼打印? xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema targetNamespace='http:///po.xsd' xmlns='http:///po.xsd' > xs:element name='purchaseOrder' type='PurchaseOrderType'/> xs:element name='comment' type='xs:string'/> xs:complexType name='PurchaseOrderType'> xs:sequence> xs:element name='shipTo' type='USAddress'/> xs:element name='billTo' type='USAddress'/> xs:element ref='comment' minOccurs='0'/> xs:element name='items' type='Items'/> xs:sequence> xs:attribute name='orderDate' type='xs:date'/> xs:complexType> xs:complexType name='USAddress'> xs:sequence> xs:element name='name' type='xs:string'/> xs:element name='street' type='xs:string'/> xs:element name='city' type='xs:string'/> xs:element name='state' type='xs:string'/> xs:element name='zip' type='xs:decimal'/> xs:sequence> xs:attribute name='country' type='xs:NMTOKEN' fixed='US'/> xs:complexType> xs:complexType name='Items'> xs:sequence> xs:element name='item' minOccurs='0' maxOccurs='unbounded'> xs:complexType> xs:sequence> xs:element name='productName' type='xs:string'/> xs:element name='quantity'> xs:simpleType> xs:restriction base='xs:positiveInteger'> xs:maxExclusive value='100'/> xs:restriction> xs:simpleType> xs:element> xs:element name='USPrice' type='xs:decimal'/> xs:element ref='comment' minOccurs='0'/> xs:element name='shipDate' type='xs:date' minOccurs='0'/> xs:sequence> xs:attribute name='partNum' type='SKU' use='required'/> xs:complexType> xs:element> xs:sequence> xs:complexType> xs:simpleType name='SKU'> xs:restriction base='xs:integer'> xs: minInclusive=“2”/> xs:maxInclusivexs:maxInclusive=“10”> xs:restriction> xs:simpleType> xs:schema>
Schema總結(jié): Schema是另一種文檔類型定義,它遵循XML的語言規(guī)范。 .Schema是可擴展的,支持命名空間; .Schema支持更多的數(shù)據(jù)類型與元素類型; .Schema用element聲明元素,用attribute聲明元素的屬性; .Schema用simpleType定義簡單類型,用complexType定義復(fù)雜類型。
|