XML部分
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
两种形式:DTD以及schema;
本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的);
解析方式:有DOM、SAX、STAX、JDOM、DOM4J等;
DOM:是一种与平台无关的官方解析方式,处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问;
优点:形成了树结构,直观好理解代码更易编写;解析过程中树结构保留在内存中,方便修改。
缺点:当XML文件较大时,对内存消耗比较大,容易影响解析性能并造成内存溢出。
SAX:基于事件驱动的解析方式。不同于DOM,SAX是时间驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头、文档结束或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问;
优点:采用事件驱动模式,对内存消耗比较小;适用于只需要处理XML中的数据。
缺点:不易编写;很难同时访问同一个XML中数据。
JDOM:仅使用具体类而不使用接口,API大量使用了Collections类。
DOM4J:是JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能,使用接口和抽象基本类方法,是一个优秀的java xml API具有性能优异、灵活性好、功能强大和极端易用的特点,是一个开放源代码的软件。
STAX:Streaming API for XML (StAX)。
项目中用到了XML技术的哪些方面?如何实现?
用到了数据存贮、信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。