2013-11-15 31 views
3

XML处理读this discussion当使用AALTO当WoodStox与杰克逊

阿尔托是迄今为止三大最快的,尤其是对于解析。它通常比Woodstox或SJSXP快50% - 100%。一个缺点是它不处理DTD(因此不处理外部实体;它处理预定义和字符实体)。

看来阿尔托是推荐用jackson读/写xml的方法。然而,在jackson-dataformat-xml页面上,它推荐使用Woodstox,它已经有一段时间没有更新。

那么最好的前进方向是什么? Woodstox还是阿尔托?

+1

Woodstox发布的一个小记录:少数发布的部分原因是它非常成熟,完整且无bug。 “如果没有损坏,请不要修复”。但是有一个新版本(4.3.0)添加了一个缺失的功能,能够限制解析实体的扩展(需要使用XML解析实体来防止某些形式的拒绝服务攻击) – StaxMan

回答

2

我认为Woodstox是正确操作的最安全选择,因为它具有广泛的功能并成为事实上的Stax标准实现 - 大多数Java XML/Soap框架使用Woodstox。所以如果你只是想尽量避免麻烦,这是一个不错的选择。

但是Aalto显着加快了速度,它的功能设置对Jackson XML模块来说非常好:JAXB风格的数据绑定不需要DTD处理。

所以我想说这回到了你重视绩效的多少(阿尔托)以及多少简单的无障碍“它只是在没有任何问题的情况下工作”(Woodstox)。 如果我自己开发系统,那我就会选择自己。

此外,从一个切换到另一个非常简单:所以一种可能性是尝试阿尔托;并且只有当您遇到问题(FWIW,根据问题跟踪器,没有与Aalto/Jackson报告的问题 - 这些都是假设问题)。