XML文档定义有几种方式?它们之间有何本质区别?解析XML文档有哪几种方式?

2019-12-04   79 次阅读


XML文档定义方式:有两种定义形式,dtd文档类型定义和schema模式 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的) 普通区别: 1.schema 是内容开放模型,可扩展,功能性强,而DTD可扩展性差。

2.shema 支持丰富的数据类型,而 DTD不支持元素的数据类型,对属性的类型定义也很有限。

3.schema 支持命名空间机制,而DTD不支持。

4.schema 可针对不同情况对整个XML 文档或文档局部进行验证;而 DTD缺乏这种灵活性。

5.schema 完全遵循XML规范,符合XML语法,可以和DOM结合使用,功能强大;而DTD 语法本身有自身的语法和要求,难以学习。

解析XML文档方式:

1.DOM解析: DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。

2.SAX解析:SAX的全称是Simple APIs for XML,也即XML简单应用程序接口。与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口。

3.JDOM解析:JDOM采用了Java中的Collection架构来封装集合,是Java爱好者更加熟悉的模式

4.DOM4J解析:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容 ———————————————— 版权声明:本文为CSDN博主「Dark丶照萤映雪」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_28061489/article/details/79464865

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

如人饮水、冷暖自知