一些用法说明:
1、maxOccurs="unbounded"
maxOccurs为Occurrence 指示器,Occurrence 指示器用于定义某个元素出现的频率,有2种类型分别是 maxOccurs和minOccurs ,默认值均为 1。
① maxOccurs 指示器: 规定某个元素可出现的最大次数
如<xs:element name="Name" type="xs:string" maxOccurs="10"/>
规定元素“Name”最少出现一次(其中 minOccurs 的默认值是 1),最多出现 10 次。
② minOccurs 指示器: 规定某个元素能够出现的最小次数
如<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="10"/>
规定元素“Name”最少出现0次,最多出现 10 次。
提示:如需使某个元素的出现次数不受限制,使用 maxOccurs=" unbounded " 这个声明
上面<xs:element name="Person" maxOccurs="unbounded">表示元素“Person”出现次数最少一次(其中 minOccurs 的默认值是 1),并且任意次数。
2、<xs:sequence>
<xs:sequence>为“Order 指示器”,Order 指示器用于定义元素的顺序,有3种类型分别是All、Choice、Sequence。
① all 指示器: 规定子元素可以按照任意顺序出现
② Choice 指示器: 规定可出现某个子元素或者可出现另外一个子元素(非此即彼)
③ Sequence 指示器: 规定子元素必须按照特定的顺序出现
上面例子代码用<xs:sequence>规定了子元素“Name”和“Age”必须按顺序出现。
3、use="required"
use 指示如何使用属性,有3种:
① optional : 属性是可选的并且可以具有任何值。这是默认设置。
<xs:attribute name="id" type="xs:int"/>等价于
<xs:attribute name="id" type="xs:int" use="optional"/>
可验证通过<Person>或<Person id="1">
② required : 属性必须出现一次 。
<xs:attribute name="id" type="xs:int" use="required"/>
可验证通过<Person id="1">
③ prohibited : 不能使用属性。
<xs:attribute name="id" use="prohibited"/>
规定了不能使用id的属性。
1、maxOccurs="unbounded"
maxOccurs为Occurrence 指示器,Occurrence 指示器用于定义某个元素出现的频率,有2种类型分别是 maxOccurs和minOccurs ,默认值均为 1。
① maxOccurs 指示器: 规定某个元素可出现的最大次数
如<xs:element name="Name" type="xs:string" maxOccurs="10"/>
规定元素“Name”最少出现一次(其中 minOccurs 的默认值是 1),最多出现 10 次。
② minOccurs 指示器: 规定某个元素能够出现的最小次数
如<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="10"/>
规定元素“Name”最少出现0次,最多出现 10 次。
提示:如需使某个元素的出现次数不受限制,使用 maxOccurs=" unbounded " 这个声明
上面<xs:element name="Person" maxOccurs="unbounded">表示元素“Person”出现次数最少一次(其中 minOccurs 的默认值是 1),并且任意次数。
2、<xs:sequence>
<xs:sequence>为“Order 指示器”,Order 指示器用于定义元素的顺序,有3种类型分别是All、Choice、Sequence。
① all 指示器: 规定子元素可以按照任意顺序出现
② Choice 指示器: 规定可出现某个子元素或者可出现另外一个子元素(非此即彼)
③ Sequence 指示器: 规定子元素必须按照特定的顺序出现
上面例子代码用<xs:sequence>规定了子元素“Name”和“Age”必须按顺序出现。
3、use="required"
use 指示如何使用属性,有3种:
① optional : 属性是可选的并且可以具有任何值。这是默认设置。
<xs:attribute name="id" type="xs:int"/>等价于
<xs:attribute name="id" type="xs:int" use="optional"/>
可验证通过<Person>或<Person id="1">
② required : 属性必须出现一次 。
<xs:attribute name="id" type="xs:int" use="required"/>
可验证通过<Person id="1">
③ prohibited : 不能使用属性。
<xs:attribute name="id" use="prohibited"/>
规定了不能使用id的属性。
<?xml version="1.0" encoding="UTF-8"?>
<projects xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="project.xsd">
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<xsd:element name="projects">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="project" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="project">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="school" />
<xsd:element ref="pid" />
<xsd:element ref="name" />
<xsd:element ref="type" />
<xsd:element ref="leader"/>
<xsd:element ref="supervisor"/>
<xsd:element ref="stitle" />
<xsd:element ref="fee" />
<xsd:element ref="introduction" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="school" >
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="100"></xsd:maxLength>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="pid" >
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="100"></xsd:maxLength>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="name" >
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="100"></xsd:maxLength>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="type" >
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="创新训练项目|创业训练项目|创业实战项目"></xsd:pattern>
<xsd:maxLength value="100"></xsd:maxLength>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="leader" >
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="100"></xsd:maxLength>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="supervisor" >
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="100"></xsd:maxLength>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="stitle" >
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="100"></xsd:maxLength>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="fee" nillable="true">
<xsd:simpleType >
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="0"></xsd:minInclusive>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="introduction" >
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="800"></xsd:maxLength>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:schema>