Xml Schema学习例子及命名空间

1.xml Schema是DTD的 替代者
2.xml Schema 符合XML语法结构,它自己本身就是一个xml,但它的扩展名通常为.xsd;
3.一个xml Schema文档通常称之为一个模式文档(约束文档),遵循这个文档书写的xml文件称为实例文档。
 4.  对名称空间支持得非常好,比dtd支持更多的数据类型,并支持用户自定义新的数据类型。
5. 不能像dtd一样定义实体,比dtd更复杂,但xml Schema现在已经是w3c组织的标准,它正逐步取代dtd.
6.和xml文件一样,一个xmlSchema文档也必须有一个根结点,但这个根结点我名称为Schema.
7.编写了一个xml Schema 约束文档后,通常需要把这个文件中声明的元素绑定到一个URI地址上,
在xml Schema技术中有一个专业术语来描述这个过程,即把xml Schema文档声明的元素绑定到一个名称空间上,
以后xml文件就可以通过这个URI(即命名空间)来告诉解析引擎,xml文档中编写的元素来自哪里,被谁约束 。

初学例子,很全面,希望可以对有需要的人有帮助。奋斗 具体语法可以看w3c文档

1.cinema.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.yumiao.com.cn" elementFormDefault="qualified"><!-- 把声明所有元素都绑定到名称空间 -->
<!-- 规定了来自命名空间 http://www.w3.org/2001/XMLSchema 的元素和数据类型应该使用前缀xs -->
<xs:element name="cinema">
<xs:complexType><!--包含复杂类型 -->
<xs:sequence>
<xs:element name="orderperson" type="xs:string" />
<xs:element name="movie" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="director" type="xs:string" />
<xs:element name="role" type="xs:string" />
<xs:element name="showtime" type="xs:date" maxOccurs="3" />
</xs:sequence>
<xs:attribute name="mtype" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="serve">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="age"> <!-- 年龄限定0-120 -->
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" />
<xs:maxInclusive value="120" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="salary" type="xs:decimal" />
<xs:element name="position" type="xs:string"
minOccurs="0" maxOccurs="5" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="orderid" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>


2.cinema.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- cinema来自这个名称空间: "http://www.yumiao.com.cn" -->
<!-- xsi:schemaLocation 声明的名称空间对应的schema文档在哪里 -->
<!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"解析引擎会自动找到这个名称空间 -->


<!-- 为了在一个XML文档中声明它所遵循的Schema文件的具体位置,通常需要在XML文档中的根结点中使用 schemaLocation 属性来指定。schemaLocation此属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的xml 
schma的位置 两者之间用空格分隔。 注意,在使用schemaLocation 属性时,也需要指定该属性来自哪里。 -->
<cinema orderid="110110110" xmlns="http://www.yumiao.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.yumiao.com.cn cinema.xsd">

<orderperson>XML Schema 学习</orderperson>
<movie mtype="true">
<name>中国合伙人</name>
<director>吴宇森</director>
<role>佟大为,黄晓明</role>
<showtime>2014-09-09</showtime>
<showtime>2014-09-09</showtime>
<showtime>2014-09-09</showtime>
</movie>
<movie mtype="false">
<name>中国合伙人</name>
<director>吴宇森</director>
<role>佟大为,黄晓明</role>
<showtime>2014-09-09</showtime>
</movie>
<serve>
<name>于淼</name>
<age>24</age>
<salary>9999.99</salary>
<position>小经理</position>
<position>服务员</position>
<position>小经理</position>
</serve>
</cinema>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值