什么是 XML 生成的最佳性能解决方案。
我的目标是从代码构建一些简单的 XML。我将实现 XML Builder 的基于简单自定义 StringBuffer 的实现。从另一边来看,有几个库,如http://code.google.com/p/java-xmlbuilder/和http://code.google.com/p/xmltool/,它们有很好的 DSL,但我想缺乏性能。
由于我的目标是构建足够简单且性能出色的 XMLBuilder,我想我将构建自定义解决方案。它将具有:
- 用于 XML 构造的基于 Java 的 DSL(基本上是添加标签)
- 出色的基于 StringBuffer 的性能。
- 添加 XML 标记时的字符串数据转义处理。
- 自动缩进
如果我对性能期望有误,请提出建议,使用现成的库可能更好。
更新。为什么我认为标准 xml 构建器的性能不是很好。
标准 XML 构建器使用 Document Builder Factory 并在幕后使用类。这些类也经过优化以适合所有用户。例如我不需要命名空间支持等。
<?xml version="1.0" encoding="utf-8">
<root>
<testdata>value</testdata>
</root>
</xml>
考虑上面非常简单的 XML 代码。如果您使用标准工具进行构建,那么仅仅为了制作这个简单的 XML 就需要做很多工作。我认为最好自己使用 String 生成它。
更新 2。性能要求是代码应该做尽可能多的事情来生成简单的 XML,而不是更多。
更新 3. 感谢大家的好评!现在我更好地理解了我需要什么,并且我最初的目标并没有用“性能”这个词来正确设置。我的真正目标是使用足够简单的解决方案和方便的 DSL 来描述 XML 结构并生成 XML 输出。
我将使用纯 Java 对象作为 XML 的 DSL,并使用 XStream 库生成 XML,这是非常简单的解决方案。
更新 4.JAXB。我讨论了 XStream 与 JAXB,发现 JAXB 比 XStream 快。另外,我已经在我的项目中使用了 JAXB,我喜欢它的标准注释。我改变了主意,现在将使用 JAXB,因为 XStream 最初是在 JAXB 不如今天那么好的时候得到大量开发的。