XSLT-process 支持哪些 XSLT 处理器?

更新时间

XSLT-process 目前完整支持两个 Java XSLT 处理器:Saxon 和 Xalan。两者都包含调试能力,不只是普通转换。如果你需要断点、单步执行、查看全局和局部 XSLT 变量,这两个处理器都能配合该模式使用。其他 Java XSLT 处理器理论上可以较容易地加入,但至少只保证普通处理能力,调试支持不在现有说明范围内。

两个处理器的支持范围

处理器 普通 XSLT 处理 调试能力
Saxon 支持 支持
Xalan 支持 支持

页面原文的表述是“fully supported, including debugging capabilities”,即两者在支持级别上没有差别。选择哪一个,更多取决于你本机已有的 Java 环境和项目习惯,而不是功能缺失。

调试模式能做什么

XSLT-process 是 GNU Emacs/XEmacs 的 minor mode,不是用来编辑 XML/XSLT 文件的主模式。它的调试能力体现在:

  • 在当前编辑的 Emacs buffer 上运行 XSLT 处理器;
  • 在另一个 Emacs buffer 或浏览器中查看转换结果;
  • 以调试模式运行处理器,观察转换过程中发生了什么;
  • 设置断点、单步进入样式表;
  • 查看全局和局部 XSLT 变量。

也就是说,配合 Saxon 或 Xalan 时,Emacs 本身被当作 XSLT 调试器使用。

使用前需要知道的前提

这个模式不负责 XML/XSLT 的语法编辑体验。页面明确建议,编辑 XML 或 XSLT 文件应使用 PSGML、GNU Emacs 自带的 sgml-mode.el,或 Tony Graham 的 xslide XSLT mode。XSLT-process 的定位是在已有编辑环境上叠加处理与调试功能。

另外,页面提到与 DocBook-XSL 包配合时,Emacs/XEmacs 可以成为 DocBook 处理系统。这属于处理能力的延伸用法,不是额外的处理器支持。

其他处理器能不能用

页面只说“其他 Java XSLT 处理器可以相对容易地加入,至少支持普通处理能力”。这句话是作者对扩展性的判断,不是现成支持清单。实际使用中,如果你手上的处理器不是 Saxon 或 Xalan,就不能假定调试功能可用;普通转换能否跑通,也需要自行验证。

怎么选

  • 需要完整调试:选 Saxon 或 Xalan,两者均可。
  • 已有项目固定使用其他 Java 处理器:可以尝试普通处理,但不要预期断点和变量查看可用。
  • 主要目的是编辑 XML/XSLT:先配置 PSGML、sgml-mode.el 或 xslide,再考虑是否叠加 XSLT-process。

该软件由 Ovidiu Predescu 和 Tony Addyman 编写和维护,以 GNU General Public License 发布。页面最后修改时间为 2004 年 1 月 4 日,属于较早期的工具资料,实际搭配现代 Java 环境时建议先做一次最小转换验证。