4.schema的数据类型
1.基本类型
2.扩展数据类型
3.数据类型的特性
二:schema的元素类型
1.schema元素:
作用:包含已经定义的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元素
作用:把一组元素声明组合在一起,以便它们能够一起被复合类型应用
·属性: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元素
作用:把一组属性声明组合在一起,以便可以被复合类型应用
.属性:name/ref
.示例:
xs:attributeGroup name='myAttributeGroup'>
xs:attribute name='someattribute1' type='xs:integer'/>
xs:attribute name='someattribute2' type='xs:string'/>
xs:attributeGroup>
6.simpleType元素
作用:定义一个简单类型,它决定了元素和属性值的约束和相关信息
.属性:name
.内容:应用已经存在的简单类型,三种方式:
–restrict→限定一个范围
–list→从列表中选择
–union→包含一个值的结合
1.子元素为:
2.子元素为:
3.子元素为:
示例:
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类型
作用:定义一个复合类型,它决定了一组元素和属性值的约束和相关信息
·属性: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类型的区别(重要)
simpleType类型的元素中不能包含元素或者属性。
·当需要声明一个元素的子元素和/或属性时,用complexType;
·当需要基于内置的基本数据类型定义一个新的数据类型时,用simpleType。
8.simplecontent元素
作用:应用于complexType,对它的内容进行约束和扩展
9.choice元素
作用:允许唯一的一个元素从一个组中被选择
.属性:minOccurs/maxOccurs
10.sequence元素
作用:给一组元素一个特定的序列
一个完整的schema样例:
xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema
targetNamespace='http://tempuri.org/po.xsd'
xmlns='http://tempuri.org/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总结:
Schema是另一种文档类型定义,它遵循XML的语言规范。
.Schema是可扩展的,支持命名空间;
.Schema支持更多的数据类型与元素类型;
.Schema用element声明元素,用attribute声明元素的属性;
.Schema用simpleType定义简单类型,用complexType定义复杂类型。
联系客服