Saxon 9 XSLT变压器与Xalan 2.7

时间:2013-05-09 05:50:55

标签: xslt saxon xalan

我目前正在使用Xalan 2.7.0进行基于XML的XSLT转换,但考虑切换到Saxon 9版本进行XSLT转换。那么有人可能会列出使用Saxon而不是Xalan的主要缺点和利弊。虽然我知道撒克逊支持XSLT 2.0和其他重大变化,但我想更多地了解撒克逊9的个人经历及其知识和利弊以及其他好处。

3 个答案:

答案 0 :(得分:19)

10年前我使用过Xalan。在过去的10年里,我几乎专门使用Saxon。

Saxon不仅是XSLT 2.0和XSLT 3.0处理器,而且还非常积极地开发和维护。

Saxon 9.xx是最快的XSLT处理器之一。它的开发人员Michael Kay博士是W3C XSLT WG(工作组)的编辑,因此很可能是最了解XSLT规范的人,这在Saxon中就是如此。任何语言功能都严格而精确地实施 - 通常远远领先于其他供应商。

博士。 Kay经常通过运行W3C XSLT和XQuery WGs测试套件来报告合规性级别,该测试套件包含数万个测试。

Saxon得到了几个IDE的支持,其中最着名的是oXygen。 Saxon有一个非常活跃的用户邮件列表,典型的响应时间通常以小时为单位。

虽然我安装了大约11个XSLT处理器,但我使用99%的时间的是Saxon。

答案 1 :(得分:13)

我们将Xalan和Saxon(6.5和9)集成到我们的产品oXygen XML Editor中,所以基本上我们支持使用Saxon和Xalan的XSLT开发人员。

根据我们的经验,Saxon 9正在积极开发,而Xalan开发已经停滞多年。这也是因为Saxon 9是一个XSLT 2处理器,而Xalan是一个XSLT 1处理器,你在XSLT 1上做的并不多。

目前大多数XSLT开发人员都使用XSLT 2.0,因此Saxon 9单独使用XSLT 2.0引擎是选择Saxon 9的一个很好的理由。在XSLT 2可用几年后,XSLT 2就没有意义了。已经

Xalan在Apache 2.0下获得许可,Saxon在Mozilla Public License(MPL)下获得许可。从使用的角度来看,没有什么区别 - 只有在您自己更改处理器代码时才会有所不同,如果是MPL,您需要对代码进行更改。

Saxon 9 HE的一个小问题是它不直接支持扩展,但您可以通过API注册集成扩展,或者在命令行中传递Initializer类来注册这些扩展。但是,XSLT 2.0提供了许多标准的新功能和指令,因此您不太可能需要扩展。

Saxon 9还包括对XSLT 3.0的支持(目前这是一个工作草案)但是对于Saxon,您可以早期访问XSLT 3中的一些新增功能。

对于我们的内部XSLT任务,我们几乎一直使用Saxon 9。

我希望这有帮助!

祝你好运, 乔治

答案 2 :(得分:3)

只是为了补充乔治所说的内容:你不仅可以获得比萨克森更多的功能,而且在很多情况下你将获得更大的性能提升(更少的内存,更快的运行)。