更改DocBook转换中的根元素

时间:2018-02-17 08:47:02

标签: xml xslt docbook

早上好,

我正在玩DocBook,基本上我喜欢它:-)第一种真正为文档提供结构并强制执行它的方法。

在这种情况下,我使用自定义Schema和xslt Transformation来模拟文档的一些内容。这一切都很棒。

现在我还要更改docbook文件的根元素。目前它是<book>,但我希望它是<specificationX>。我将<specificationX>元素添加到我的rnc Schema中,如下所示:

db.specificationX =
   element specificationX {
      db.common.attributes,
      db.specY  
   }
start |= db.specificationX

我的文档验证工作正常,但是一旦我进入XSLT转换,我就收到错误:

  

错误:FO输出的文档根元素必须是其中之一   以下要素:附录文章参考书目章....

显然,我必须告诉我的样式表有关更改的根元素的信息。但是,我不知道如何做到这一点,也找不到任何相关信息。

这里的任何人都可以给我一些提示或指出我正确的方向吗?

提前致谢! 诺贝特

1 个答案:

答案 0 :(得分:1)

有不同版本的DocBook和不同版本的不同样式表,您没有以任何方式解释您使用的版本,但请参阅https://github.com/docbook/xslt10-stylesheets/blob/master/xsl/fo/docbook.xsl#L122例如设置

<xsl:variable name="root.elements" select="' appendix article bibliography book chapter colophon dedication glossary index part preface qandaset refentry reference sect1 section set setindex '"/>

可能会从导入样式表中更改或覆盖,以包含您的自定义元素名称。