我目前正在使用Xalan 2.7.0进行基于XML的XSLT转换,但考虑切换到Saxon 9版本进行XSLT转换。那么有人可能会列出使用Saxon而不是Xalan的主要缺点和利弊。虽然我知道撒克逊支持XSLT 2.0和其他重大变化,但我想更多地了解撒克逊9的个人经历及其知识和利弊以及其他好处。
答案 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)
只是为了补充乔治所说的内容:你不仅可以获得比萨克森更多的功能,而且在很多情况下你将获得更大的性能提升(更少的内存,更快的运行)。