XML之------Schema

一、Schema概述

XML Schema是2001年5月正式发布的W3C(万维网联盟)的推荐标准
DTD存在一些缺陷:
一是它是用不同于XML的语言编写的
二是DTD不支持名称空间
三是DTD存在支持继承和子类方面的局限性
XML Schema不仅可以定义XML文档的结构而且还允许约束文档的内容
一个 XML Schema自身就是一个XML文档
XML Schema正是针对这些DTD的缺点而设计的,具有很强的描述能力、扩展能力和处理维护能力。
XML Schema是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了文档的结构和内容模式。

XML Schema也是Web Services技术中需要使用的一个基本工具
目前主要有两种重要的模式:Microsoft XML Schema和W3C XML Schema,本章主要讨论W3C XML Schema 
在下面的例子中,使用出现在schema元素中的名称空间声明xmlns:xsd= “http://www.w3.org/2001/XMLSchema”
使得模式文档中的每一个元素都有一个与XML Schema名称空间相关联的名称空间前缀xsd。


二、Schema的格式和使用

一个XSDL(XML Schema Definition Language)文档由元素、属性、名称空间和XML文档中的其它节点构成的
至少要包含:schema根元素和XML模式名称空间的定义、元素定义。

简单实例:

<?xml version="1.0" encoding="gb2312"?>
<book isbn="0-764-58007-8">
	<title>三国演义</title>
	<author>罗贯中</author>
	<price>80.00 </price>
	<resume>滚滚长江东逝水,浪花淘尽英雄。是非成败转头空:青山依旧在,几度夕阳红。白发渔樵江渚上,惯看秋月春风。一壶浊酒喜相逢:古今多少事,都付笑谈中。
</resume>
	<recommendation>经典好书</recommendation>
	<publish>
		<publisher>文艺出版社</publisher>
		<pubdate>1998.10</pubdate>
	</publish>
</book>


首先加入一个xsd:schema元素。
<?xml version="1.0" encoding=" gb2312"?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
定义一个名为book的元素(element)。同时还注意到book的子元素,使用顺序元素(sequence element)描述。
<xsd:element name="book">
<xsd:complexType>
<xsd:sequence>

接着定义title和author

<xsd:element name="title" type="xsd:string"/>
<xsd:element name="author" type="xsd:string"/>
<xsd:element name="price" type="xsd:integer" />
<xsd:element name="resume" type="xsd:string" />
<xsd:element name="recommendation" type="xsd:string" />

处理publish元素。注意它的基数的定义。

<xsd:element name="publish" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
下面,用同样的方法定义其它的子元素。
<xsd:element name="publisher" type="xsd:string" />
<xsd:element name="pubdate" type="xsd:date" />

封闭complexType和element等元素:

</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence> 
<xsd:attribute name="isbn" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>


三、Schema的使用

1. Schema作用
Schema文档就是用来验证XML文档的正确性,用来判断实例是否符合模式中所描述的所有约束。 
Schema主要检验如下内容:
验证数据的显示格式正确及是否超出值的范围。
验证所有必需的信息都存在。
确保不同使用者对文档理解的方式相同
Schema文档还在一定程度上扩充实例:
为元素和属性添加默认值和固定值。
使具有简单类型的元素和属性值中的空白符规范化。

2. Schema引用
一个模式可能由多个模式文档构成。
验证XML文档,必须指定Schema文档的位置

<?xml version="1.0" encoding="gb2312" ?>
<book  xmlns:xsi="http://www.w3.org/2001/XML
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值