我目前正在使用Xalan 2.7.0进行基于XML的XSLT转换,但考虑切换到Saxon 9版本进行XSLT转换.所以有人可能会列出使用Saxon而不是Xalan的主要缺点和利弊.虽然我知道Saxon支持XSLT 2.0和其他重大变化,但我想更多地了解Saxon 9的个人经历及其prons和cons以及其他好处.
Dim*_*hev 19
我10年前使用过Xalan.在过去的十年里,我几乎专门使用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.
小智 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所以实际上撒克逊9是孤独的XSLT 2.0引擎是一个很好的理由来选择撒克逊9.与XSLT 1挣扎,而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.
我希望这有帮助!
最好的问候,乔治