软件包概述

SAX 和 DOM API 分别由 XML-DEV 组和 W3C 定义。定义这些 API 的库如下:

  • javax\.xml\.parsers:JAXP API,它们为不同供应商的 SAX 和 DOM 解析器提供了公共interface。

  • org\.w3c\.dom:定义Document类(一个 DOM)以及 DOM 所有组件的类。

  • org\.xml\.sax:定义基本的 SAX API。

  • javax\.xml\.transform:定义 XSLT API,使您可以将 XML 转换为其他形式。

  • javax\.xml\.stream:提供特定于 StAX 的转换 API。

XML 的简单 API(SAX)是事件驱动的 String 行访问机制,该机制进行逐元素处理。此级别的 API 读取 XML 并将 XML 写入数据存储库或 Web。对于服务器端和高性能应用程序,您将需要完全了解此级别。但是对于许多应用程序,仅需基本了解即可。

DOM API 通常是更易于使用的 API。它提供了熟悉的对象树结构。您可以使用 DOM API 来操纵它封装的应用程序对象的层次结构。 DOM API 是交互式应用程序的理想选择,因为整个对象模型都存在于内存中,用户可以在其中访问和操作它。

另一方面,构造 DOM 需要读取整个 XML 结构并将对象树保存在内存中,因此这会占用大量 CPU 和内存。因此,对于不需要内存中数据表示的服务器端应用程序和数据过滤器,SAX API 往往是首选。

javax\.xml\.transform中定义的 XSLT API 使您可以将 XML 数据写入文件或将其转换为其他形式。如本教程的 XSLT 部分所示,您甚至可以将其与 SAX API 结合使用,以将旧数据转换为 XML。

最后,在javax\.xml\.stream中定义的 StAX API 提供了基于流的 Java 技术,事件驱动的拉式解析 API,用于读写 XML 文档。 StAX 提供比 SAX 更简单的编程模型,并且比 DOM 提供更有效的内存 管理。