更改 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 '"/>
大概可以从导入样式表中更改或覆盖它以包含您的自定义元素名称。
早上好,
我正在玩 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 '"/>
大概可以从导入样式表中更改或覆盖它以包含您的自定义元素名称。