更改 DocBook 转换中的根元素

Changing the root element in a DocBook transformation

早上好,

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

在这种情况下,我使用自定义架构和 xslt 转换来为我的文档的某些内容建模。这一切都非常好。

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

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

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

ERROR: Document root element for FO output must be one of the following elements: appendix article bibliography book chapter ....

显然,我还必须就已更改的根元素向我的样式表提出建议。但是,我不知道该怎么做,也找不到任何相关信息。

这里有人可以给我提示或指出正确的方向吗?

提前致谢! 诺伯特

有不同版本的 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 '"/>

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