XSLT-process 与 PSGML、sgml-mode.el、xslide 是什么关系?
更新时间
XSLT-process 是 GNU Emacs/XEmacs 的 minor mode,负责 XSLT 处理与调试;它不是用来编辑 XML 或 XSLT 文件的 major mode。编辑 XML/XSLT 文件应使用 PSGML、sgml-mode.el 或 xslide XSLT mode,XSLT-process 与它们配合使用,各管一段。
分工:编辑归编辑模式,处理调试归 XSLT-process
项目主页把这一点写得很明确:XSLT-process 不是 Emacs 的 XML/XSLT 编辑 major mode,编辑功能应交给 Lennart Staflin 的 PSGML、James Clark 的 sgml-mode.el(随 GNU Emacs 分发)或 Tony Graham 的 xslide XSLT mode。
| 工具 | 角色 | 主要职责 |
|---|---|---|
| XSLT-process | minor mode | 在 Emacs 缓冲区上运行 XSLT 处理器、查看结果、调试转换 |
| PSGML | major mode | 编辑 XML/SGML 文件 |
| sgml-mode.el | major mode | 编辑 SGML/XML 文件,随 GNU Emacs 分发 |
| xslide XSLT mode | major mode | 编辑 XSLT 样式表 |
minor mode 和 major mode 可以同时生效,所以典型用法是:先用某个编辑 major mode 打开并编辑 XML/XSLT 文件,再启用 XSLT-process 获得处理与调试能力。两者不是替代关系,也不存在“装了 XSLT-process 就不用装编辑模式”的情况。
XSLT-process 具体能做什么
根据项目说明,启用该模式后可以:
- 对当前正在编辑的 Emacs 缓冲区运行 XSLT 处理器,结果输出到另一个 Emacs 缓冲区或浏览器中查看;
- 以调试模式运行 XSLT 处理器,观察转换过程中发生了什么:设置断点、单步进入样式表、查看全局和局部 XSLT 变量等,相当于把 Emacs 当作 XSLT 调试器;
- 配合 DocBook-XSL 包使用时,把 Emacs 变成一个 DocBook 处理系统。
这些能力都建立在“已有 XSLT 源文件和样式表”的基础上,属于转换与调试环节,而不是语法高亮、标签补全这类编辑辅助。
支持的处理器
该模式目前支持两个 Java XSLT 处理器:
- Saxon:完全支持,包括调试能力;
- Xalan:完全支持,包括调试能力。
其他 Java XSLT 处理器也可以相对容易地加入,至少能获得普通处理能力(调试能力未作承诺)。
怎么选
- 只想在 Emacs 里舒服地写 XML/XSLT:选 PSGML、sgml-mode.el 或 xslide 之一,按你的文件类型和习惯决定。
- 想在 Emacs 里直接跑转换、断点调试样式表:在上述编辑模式之外启用 XSLT-process,并准备 Saxon 或 Xalan。
- 想做 DocBook 处理:XSLT-process 配合 DocBook-XSL 包使用。
项目由 Ovidiu Predescu 和 Tony Addyman 编写和维护,以 GNU General Public 许可证发布为自由软件。主页提供 Screenshots、Download、Documentation、DocBook setup、Quick Setup、Mailing Lists、CVS Repository 等入口,安装与配置步骤以其中的 Documentation 和 Quick Setup 为准。