Xml Schema的用途
1. 定义一个Xml文档中都有什么元素
2. 定义一个Xml文档中都会有什么属性
3. 定义某个节点的都有什么样的子节点,可以有多少个子节点,子节点出现的顺序
4. 定义元素或者属性的数据类型
5. 定义元素或者属性的默认值或者固定值
如何定义一个简单元素
<xs:element 此处表示要定义一个元素
name=”color” 表示要定义元素的名称
type=”xs:string” 表示要定义元素的数据类型
default=”red” 表示定义元素的默认值
fixed=”red”/> 表示要定义元素的固定值
如何定义一个属性:
<xs:attribute
name=”birthday” 表示要定义属性的名字
type=”xs:date” 表示要定义属性的数据类型
default=”2001-01-11” 表示要定义属性的默认值
fixed=”2001-01-11” 表示要定义属性的固定值
use=”required”/> 表示此属性是否是必须指定的,即如果不指定就不符合Schema,默认没有use=”required”属性表示属性可有可无
如何定义元素或者属性值的限制:
1.<xs:restrictionbase="xs:integer">
<xs:minInclusivevalue="0"/> 大于等于0,<xs: minExclusive>表示最小值但是不包括指定值
<xs:maxInclusivevalue="120"/> 小于等于120,<xs: maxExclusive>
</xs:restriction>
2.<xs:restrictionbase="xs:string">
<xs:enumerationvalue="Audi"/>
<xs:enumerationvalue="Golf"/>
<xs:enumerationvalue="BMW"/>
</xs:restriction>3.<xs:elementname="letter">
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>如何定义复杂类型
定义只包含子元素的复杂类型
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
2. 定义只包含属性的复杂类型
<xs:element name="product"type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid"type="xs:positiveInteger"/>
</xs:complexType>
3. 定义只包含内容的复杂类型
<xs:element name="shoesize"type="shoetype"/>
<xs:complexType name="shoetype">
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="country" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
4. 定义包含内容和子元素混合的复杂类型
<xs:element name="letter">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="orderid"type="xs:positiveInteger"/>
<xs:element name="shipdate" type="xs:date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
5. 定义包含属性和子元素的复杂类型
使用指示器
<xs:element name="person">
<xs:complexType>
<xs:all>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>Any关键字
<xs:elementname="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
3248

被折叠的 条评论
为什么被折叠?



