使用Saxon 9将DocBook文件转换为EPUB

时间:2013-09-11 07:24:26

标签: java xml xslt saxon docbook

背景

希望使用{1.7}使用Saxon 9代替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文件集,若然,怎么做?

相关

1 个答案:

答案 0 :(得分:1)

编写DocBook样式表是为了使用各种特定XSLT 1.0处理器中提供的各种扩展来生成多个输出文件。不幸的是,它们不是使用标准的XSLT 2.0 xsl:result-document指令编写的。