微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XML文档定义的几种形式和本质区别

XML文档定义的形式

两种定义形式:DTD、Schema

DTD:数据类型定义(Data Type DeFinition),用以描述XML文档的文档结构,是早期的XML文档定义形式。

Schema:其本身是基于XML语言编写的,在类型与语法上的限定能力比DTD强,处理也比较方便,因为这个正逐渐代替DTD成为新的模式定义语言

XML文档定义形式的区别

两种本质区别:

Schema本身是xml文档结构的定义和描述,其最重要的作用是用来约束XML文件,并且验证XML文件的有效性。

DTD的作用是定义XML的合法构建模块,它使用一系列的合法元素来定义文档结构。他们之间的区别有以下几点。

1、Schema本身就是XML文档,DTD定义跟XML没有什么关系,Schema在理解和实际应用有很多的好处。

2、DTD文档的结构是“平铺型”的,如果定义很复杂的XML文档,很难把握各元素之间的嵌套关系,Schema文档结构性强,各元素之间的嵌套关系非常直观。

3、DTD只能指定元素含有文本,不能定义元素文本的具体类型,如字符型,整型,日期型,自定义类型等。Schema在这方面比DTD强大。

4、Schema支持元素节点顺序的描述,DTD没有提供无序情况的描述,要定义无序必需穷举排列的所有情况。

5、对命名空间的支持。DTD无法利用XML的命名空间,Schema很好满足命名空间。

 

解析XML文档的几种方式

主要有三种方式:DOM、SAX、STAX。

1、DOM

处理大型文件时其性能下降的非常厉害,这个问题是由DOM的树结构所造成的,这种机构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问。

2、SAX

不现于DOM,SAX是事件驱动型的XML解析方式,它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它就会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问。

3、STAX

Streaming API For XML(Stax)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。