我们可以看到,DTD的语法相当复杂,并且它不符合XML文件的标准,自成一个体系。也就是说DTD文档本身并不是一个良好形式的XML文档,上面的关于DTD的介绍也仅仅是作了一个简介,目的是帮助大家能读懂DTD文件以及在必要时创建简单的DTD文件,因为现在很多的XML应用是建立在DTD之上的。
另外一个代替DTD的就是W3C定义的Schema,Schema从字面意义上来说,可以翻译成模式、大纲、计划、规划等等。它的基本意思就是说为XML文档制定一种模式。
Schema相对于DTD的明显好处是XML Schema文档本身也是XML文档,而不是像DTD一样使用自成一体的语法。这就方便了用户和开发者,因为可以使用相同的工具来处理XML Schema和其他XML信息,而不必专门为Schema使用特殊工具。Schema简单易懂,懂得XML语法、规则的人都可以立刻理解它。Schema的概念提出已久,但W3C的标准最近才出来,相应的应用支持尚未完善,但采用Schema已成为XML发展的一个趋势。
首先我们还是从最简单的例子着手来学习Schema的语法结构:
比如一个简单的XML文档如下:
<书本>
<名称>天涯明月刀
<作者>古龙
如果用DTD的形式来定义该XML文档结构的话,可以如下所示:
<!ELEMENT 书本 (名称, 作者)>
<!ELEMENT 名称 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
那么用Schema形式如何定义呢?见下面的代码:
<element name='书本' type='书本类型'/>
<complexType name='书本类型'>
<element name='名称' type='string'/>
<element name='作者' type='string'/>
</complexType>
可以注意的一点是,在Schema中,也是通过对元素的定义和元素关系的定义来实现对整个文档性质和内容的定义。同时需要注意的是,在Schema中,元素是通过它的名字和内容模型来确定,名称就是该元素的名字,这个大家都可以理解,而内容模型实际上就是表示元素的类型。就象在C++中,我们可以随便定义一个变量,但是必须定义变量的类型,变量的类型就可能有多种形式,它可以是一个简单的变量(如C++内部指定的类型,bool,int,double,char等等),也可以是很复杂的类型(比如是一个struct或者是class),在Schema中也是一样,类型(type)可以分为两种形式,一种是非常简单的类型,被称为simple,一种是复杂的类型,被称为complex。简单类型不能包含元素和属性(注意在Schema中和DTD中一样,都有元素属性的说法,大道相同)。而复杂类型不仅可以包含属性,而且可以在其中嵌套其他的元素,或者可以和其他元素中的属性相关联。
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3
最新文章
微信3.6.0测试版更新了微信支付漏洞会造成哪
360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗
人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本
查看所有0条评论>>