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 环境时建议先做一次最小转换验证。