我正在尝试使用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
以前最常用的东西),某种“落后”兼容行为“必须启用。但为什么,以及如何?
(相关的docbook样式表确实指定了<xsl:stylesheet version="1.0" xmlns:saxon="http://icl.com/saxon">
。)
答案 0 :(得分:3)
我不是DocBook的专家,但我相信Docbook 1.0样式表可能最适合Saxon 6.5.5,如果你想使用最新的Saxon版本(例如性能)那么你可能最好使用Docbook 2.0样式表:见
答案 1 :(得分:2)
如果要运行XSLT 1.0样式表试图访问名称空间xmlns:saxon="http://icl.com/saxon"
中的扩展名,那么您应该使用lastest version of Saxon 6,我认为这是6.5.5。
Saxon 9是一个XSLT 2.0处理器,我不认为评论“撒克逊6.4.2或更高版本”的评论考虑到了Saxon 9,它只是在讨论XSLT 1.0处理器的Saxon 6.x版本
除此之外我同意Ken,如果你想使用Saxon 9,那么编辑样式表以使用XSLT 2.0 xsl:result-document
。
答案 2 :(得分:1)
Saxon 9支持XSLT 2.0,因此只需使用<xsl:result-document>
创建多个结果树。