【发布时间】:2013-07-29 16:23:18
【问题描述】:
我正在尝试使用 Saxon 9.1.0.8 HE 来应用(最近的)Docbook XSL,并得到了这个:
Don't know how to chunk with SAXON 9.1.0.8 from Saxonica
Processing terminated by xsl:message at line 46 in chunker.xsl
Docbook XSL 来源声称:
<!-- This stylesheet works with XSLT implementations that support -->
<!-- exsl:document, saxon:output, or Xalan's redirect:write -->
<!-- Note: Only Saxon 6.4.2 or later is supported. -->
...访问错误消息中提到的第 46 行(测试 element-available('saxon:output'))和 Saxon documentation,表明问题的根源在于 Saxon 不再识别 saxon:output 扩展.
This source 建议使 Saxon 9.4 与 XSLT 1.0 兼容(这是样式表的所在,而 saxon:output 曾经是最适合的),某种“向后兼容的行为”必须被启用。但是为什么,以及如何?
(有问题的文档样式表确实指定了<xsl:stylesheet version="1.0" xmlns:saxon="http://icl.com/saxon">。)
【问题讨论】:
-
这确实是Saxon Help 邮件列表的问题,虽然迈克尔凯偶尔会在这里闲逛。
-
这更像是一个关于docbook的问题。
-
感谢大家提供非常有用的答案。我的docbook相关的实际问题解决了。 (我从@MichaelKay 的回答中收集到,就 XSLT 1.0 或遗留扩展元素而言,较新版本的 Saxon 并不打算向后兼容;这部分问题在我看来是关于 Saxon,因此关于 XML编程工具,这就是我选择在这里问的原因。)
-
我对 Saxon 的一般政策是,当 Saxon 扩展被标准 XSLT 语言中的工具取代时,我通常会在几个版本后撤回专有扩展以提供过渡时间。在规则不完全相同且旧设施可能由于环境依赖性而需要大量支持的情况下尤其如此。当然,有些应用程序永远不会进行转换,然后它们就会停留在较旧的 Saxon 版本上。
-
@MichaelKay - 谢谢,这给了我很多启发。
标签: xslt xslt-1.0 saxon docbook