【发布时间】:2013-09-11 07:24:25
【问题描述】:
背景
希望使用 Saxon 9 而不是使用 Java 1.7 的 xsltproc 生成 EPUB。设置如下:
- DocBook XSL 已安装到
$HOME/docbook-xsl-1.78.1/。 - saxon9he.jar 存档位于当前工作目录中。
- 文件
_ant4dbk_book.xml.jdom包含有效的DocBook 文件。
可以使用以下命令创建 EPUB 内容:
xsltproc --output ./epub/ $HOME/docbook-xsl-1.78.1/epub3/chunk.xsl \
_ant4dbk_book.xml.jdom
问题
以下命令失败:
java -jar saxon9he.jar -xsl:$HOME/docbook-xsl-1.78.1/epub3/chunk.xsl \
_ant4dbk_book.xml.jdom
错误信息
运行 Saxon 失败并显示以下消息:
Warning: at xsl:stylesheet on line 7 column 17 of chunk.xsl:
Running an XSLT 1 stylesheet with an XSLT 2 processor
Don't know how to chunk with Saxonica
Error at xsl:message on line 54 of chunker.xsl:
XTMM9000: Processing terminated by xsl:message at line 54 in chunker.xsl
at xsl:call-template name="make-relative-filename" (file:/home/username/docbook-xsl-1.78.1/xhtml/chunk-common.xsl#341)
at xsl:call-template name="make.lots" (file:/home/username/docbook-xsl-1.78.1/xhtml/division.xsl#84)
at xsl:call-template name="process-chunk-element" (file:/home/username/docbook-xsl-1.78.1/xhtml/chunk-code.xsl#522)
at xsl:apply-templates (file:/home/username/docbook-xsl-1.78.1/epub3/epub3-chunk-mods.xsl#32)
processing /book
in built-in template rule
at xsl:apply-templates (file:/home/username/docbook-xsl-1.78.1/xhtml/chunk-code.xsl#493)
processing /
Processing terminated by xsl:message at line 54 in chunker.xsl
由于 xsltproc 是 XSLT 1.0 处理器,我认为 Saxon 9 可以工作,正如 the documentation 所述:
但是,即使您的样式表只需要 XSLT 1.0,最好在 Saxon 9.x 下运行它们
问题
是否可以使用 Saxon 9 生成使用 DocBook XSL 1.78.1 的 EPUB 文件集,如果可以,如何?
相关
【问题讨论】:
-
我认为这个问题的答案是否定的。见stackoverflow.com/q/17929158/407651。
-
已经尝试过使用 Saxon 9 进行“分块”工作,但很难让所有事情都正确。您也许可以使用附加到此消息的样式表模块:lists.oasis-open.org/archives/docbook-apps/201103/msg00123.html。
标签: java xml xslt saxon docbook