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)

 

posted @ 2019-09-23 16:36  SweetCukes  阅读(1639)  评论(0编辑  收藏  举报