Emacs nXML 模式中的 XSLT 2.0 支持

Posted

技术标签:

【中文标题】Emacs nXML 模式中的 XSLT 2.0 支持【英文标题】:XSLT 2.0 support in emacs nXML mode 【发布时间】:2011-12-23 02:15:35 【问题描述】:

我在 emacs 中编辑 XSLT 2.0 文档并在版本号上收到“属性值无效”错误,即,

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

如果我将“2.0”替换为“1.0”,我在 emacs 中不会出现错误(但在处理样式表时会出现错误)。

emacs 不支持 XSLT 2.0 吗?是否有一些我可以获得的外部架构可以工作?最坏的情况,即使我只是忍受这个错误,nXML 是否仍能帮助我正确处理文档的其余部分?

【问题讨论】:

【参考方案1】:

Norman Walsh 的 xslt20.rnc 架构应该可以解决问题。见https://github.com/ndw/xslt-relax-ng。

您可以将 xslt.rnc 注册为 XSLT 1.0 和 2.0 的架构文档(它引用 xslt10.rnc 和 xslt20.rnc)。

【讨论】:

完美,感谢您的快速回复!我似乎对这些文件有一些旧的引用,但找不到可以从中下载它们的站点。我只是将它们复制到 emacs 已经有一个 xslt.rnc 文件的目录中,它似乎可以工作......希望这是正确的做法。 那个目录是什么?我的 emacs 在任何地方都没有任何 xslt.rnc 文件,或者我找不到它们并且在 nXML 模式下遇到完全相同的问题 架构文件应该放在一个可以被 nXML 定位的目录中,如文档中所述:gnu.org/software/emacs/manual/html_node/nxml-mode/…

以上是关于Emacs nXML 模式中的 XSLT 2.0 支持的主要内容,如果未能解决你的问题,请参考以下文章

在 Emacs 上漂亮地打印 XML 文件

XSLT 2.0 中的日期时间格式

XSLT 2.0 按另一个样式表中的变量排序

XSLT 2.0 中的尾递归函数不起作用

XSLT 2.0 for 循环一个与其他 XML 中的数据匹配的 XML 节点

使用 XSLT 2.0/3.0 使用多个步骤将 CDATA 中的纯文本解析为 html。那里的一部分