WEB开发网
开发学院软件开发Java Java 中的 XML: 文档模型,第一部分:性能 阅读

Java 中的 XML: 文档模型,第一部分:性能

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: 这种空白的删除会对性能比较产生误导效果 ― 许多类型的测试范围与文档中的组件个数成比例,并且由 EXML 删除的每个空白序列都是其它模型中的组件,Java 中的 XML: 文档模型,第一部分:性能(5),EXML 包含在本文显示的结果中,但是解释性能差异时请记住这种影响,该方法的使用是可选的,如

这种空白的删除会对性能比较产生误导效果 ― 许多类型的测试范围与文档中的组件个数成比例,并且由 EXML 删除的每个空白序列都是其它模型中的组件。EXML 包含在本文显示的结果中,但是解释性能差异时请记住这种影响。

EXML 使用集成的解析器依据文本文档构建文档表示。除了通过文本方式外,它不提供从 DOM(或 SAX2)转换或转换成 SAX2(或 DOM)事件流的任何方式。EXML 是由 Mind Electric 在禁止将它嵌入某些类型的应用程序或库的受限许可证下发布的开放源码。用于性能比较的版本是 Electric XML 2.2(jar 文件大小是 0.05MB)。

XML Pull Parser

XML Pull Parser (XPP)是最近开发的,它演示了 XML 解析的不同方法。与 EXML 一样,XPP 只能适当支持 XML 文档的子集并且不提供验证的任何支持。它同样具有尺寸小的优势。这种优势再与拉回解析器方法结合,使它成为该比较中的良好替换项。

XPP 几乎独占地使用接口,但是它仅使用所有类中的一小部分。和 EXML 一样,XPP 避免使用 API 中的 Collections 类。总的来说,它是本文中最简单的文档模型 API。

将 XPP 限制成 XML 文档子集的局限性是它不支持文档中的实体、注释或处理指示信息。XPP 创建仅包含元素、属性(包括“名称空间”)和内容文本的文档结构。这对于某些类型的应用程序来说是一种非常严格的限制。但是通常它对性能的影响比 EXML 空白处理对性能的影响小。在本文中我仅使用了一个与 XPP 不兼容的测试文件,并且在带有注释的图表中显示了 XPP 结果,该注释不包含该文件。

XPP 中的拉回解析器支持(本文中称为 XPP 拉回)通过将解析实际上推迟到访问文档的一个组件时才进行,然后按照构造那个组件的需要对文档进行解析。该技术想实现允许非常快速的文档显示或分类应用,尤其在需要转发或除去(而不是对文档进行完全解析和处理)文档时。该方法的使用是可选的,如果以非拉回型方式使用 XPP,它对整个文档进行解析并且同时地构建完整的表示。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Java XML 文档

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接