【问题标题】:When to use AALTO and when WoodStox for xml processing with Jackson何时使用 AALTO 以及何时使用 WoodStox 与 Jackson 进行 xml 处理
【发布时间】:2013-11-28 08:44:55
【问题描述】:

阅读this discussion

Aalto 是三者中最快的,尤其是在解析方面。它通常比 Woodstox 或 SJSXP 快 50% - 100%。一个缺点是它不处理 DTD(因此不处理外部实体;它处理预定义和字符实体)。

似乎 Aalto 是使用 jackson 读取/写入 xml 的推荐方式。然而,在jackson-dataformat-xml 页面上,它建议使用 Woodstox,它已经有一段时间没有更新了。

那么最好的前进方式是什么?伍德斯托克斯还是阿尔托?

【问题讨论】:

  • 关于 Woodstox 版本的一个小提示:很少发布的部分原因是它非常成熟、完整且没有错误。 “如果它没有坏,就不要修理它”。但是有一个新版本 (4.3.0) 添加了一项缺失的功能,即限制解析实体扩展的能力(需要使用 XML 解析实体来防止某些形式的拒绝服务攻击)

标签: java xml jackson woodstox jackson-modules


【解决方案1】:

我认为 Woodstox 是正确操作的最安全选择,因为它具有广泛的功能并且是事实上的 Stax 标准实现——大多数 Java XML/Soap 框架都使用 Woodstox。因此,如果您只是想减少麻烦,这是一个不错的选择。

但是 Aalto 的速度明显更快,而且它的功能集非常适合 Jackson XML 模块:JAXB 样式的数据绑定不需要 DTD 处理。

所以我想说,这又回到了您对性能的重视程度(Aalto)以及“它​​只是毫无问题地工作”(Woodstox)的简单程度。 如果我自己开发系统,这就是我会选择自己的方式。

此外,从一种切换到另一种非常容易:因此一种可能性是尝试 Aalto;并且仅当您遇到问题时(根据问题跟踪器,FWIW 没有报告 Aalto/Jackson 的问题 - 这些是假设问题)。

【讨论】:

    猜你喜欢
    • 2018-03-15
    • 2013-06-05
    • 1970-01-01
    • 2012-05-05
    • 2011-05-29
    • 2015-03-29
    • 2016-09-15
    • 2018-09-26
    • 2010-11-04
    相关资源
    最近更新 更多