XML Schema nillable=”true” vs minOccurs=”0″

一些用法说明:
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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值