1.规定一个元素纯文本部分的类型,或规定一个元素属性的所属类型的时候
<xsd:element name="description" type="xsd:string"/>
ps:这里虽然我没有定义一个simpleType,但"xsd:string"本身就是一个simpleType(事实上schema中所有的内置类型都是simpleType),
<xs:simpleType name="string" id="string">
<xs:annotation>
<xs:appinfo>
<hfp:hasFacet name="length"/>
<hfp:hasFacet name="minLength"/>
<hfp:hasFacet name="maxLength"/>
<hfp:hasFacet name="pattern"/>
<hfp:hasFacet name="enumeration"/>
<hfp:hasFacet name="whiteSpace"/>
<hfp:hasProperty name="ordered" value="false"/>
<hfp:hasProperty name="bounded" value="false"/>
<hfp:hasProperty name="cardinality" value="countably infinite"/>
<hfp:hasProperty name="numeric" value="false"/>
</xs:appinfo>
<xs:documentation
source="http://www.w3.org/TR/xmlschema-2/#string"/>
</xs:annotation>
<xs:restriction base="xs:anySimpleType">
<xs:whiteSpace value="preserve" id="string.preserve"/>
</xs:restriction>
</xs:simpleType>
2)规定一个元素属性的所属类型
<xsd:element name="worker">
<xsd:complexType>
<xsd:attribute name="id" type="idType"/>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="idType">
<xsd:restriction base="xsd:integer"/>
</xsd:simpleType>
3)若父标签是element,则用来约束父标签所定义元素的纯文本内容.
<xsd:element name="gender">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Male"/>
<xsd:enumeration value="Female"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
4)若父标签是attribute,则用来约束父标签所定义的属性值
<xsd:element name="person">
<xsd:complexType>
<xsd:attribute name="gender">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Male"/>
<xsd:enumeration value="Female"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
complexType:
<xsd:element name="student">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:int"></xsd:element>
<xsd:element name="name" type="xsd:string"></xsd:element>
<xsd:element name="gender" type="xsd:string"></xsd:element>
<xsd:element name="addr" type="xsd:string"></xsd:element>
</xsd:sequence>
<xsd:attribute name="class" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="goods" type="e_fType3"/>
<xsd:simpleType name="fType">
<xsd:restriction base="xsd:float">
<xsd:minExclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="e_fType1">
<xsd:simpleContent>
<xsd:extension base="fType">
<xsd:attribute name="description">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="e_fType2">
<xsd:simpleContent>
<xsd:extension base="e_fType1">
<xsd:attribute name="num" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="e_fType3">
<xsd:simpleContent>
<xsd:restriction base="e_fType2">
<xsd:maxExclusive value="1000"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
代码解释:
概述:complexContent 元素定义对复杂类型(包含混合内容或仅包含元素)的扩展或限制。
<xsd:complexType name="action">
<xsd:sequence>
<xsd:element name="run" type="xsd:string"/>
<xsd:element name="shout" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="animal">
<xsd:complexType>
<xsd:complexContent>
<!-- 若extension中base属性值指定的内容类型是simpleContent, 则不允许扩展子元素 -->
<xsd:extension base="action">
<xsd:sequence>
<xsd:element name="jump" type="xsd:string"/>
<xsd:element name="sleep" type="xsd:string"/>
</xsd:sequence>
<!-- attribute元素必须写在sequence元素后面,否则报错 -->
<xsd:attribute name="id" type="xsd:int"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
先写这么多吧,时间比较紧张, 想到别的再补充。。。。。