10

我目前正在使用 Xalan 2.7.0 进行 XML 上的 XSLT 转换,但考虑切换到 Saxon 9 版本进行 XSLT 转换。所以有人可以列出我在 Xalan 上使用 Saxon 的主要缺点和优点。虽然我知道 Saxon 支持 XSLT 2.0 和其他重大更改,但我想了解更多关于 Saxon 9 的个人经验及其优缺点和其他好处。

4

3 回答 3

20

我在 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。

于 2013-05-10T06:04:04.797 回答
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 1 抗争是没有意义的。

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。

于 2013-05-09T20:05:14.753 回答
3

只是补充一下 George 所说的:使用 Saxon 不仅会获得比使用 Xalan 更多的功能,而且在许多情况下,您也会获得大大提高的性能(更少的内存,运行更快)。

于 2013-05-09T23:09:33.103 回答