Xml DocBook5<;步骤>;不允许在<;侧边栏>;?(可以使用xsltproc和fop呈现PDF格式)

Xml DocBook5<;步骤>;不允许在<;侧边栏>;?(可以使用xsltproc和fop呈现PDF格式),xml,xslt,apache-fop,docbook-5,Xml,Xslt,Apache Fop,Docbook 5,我有一个DocBook5文档,它可以使用xsltproc呈现成分块的HTML 我现在正尝试渲染为PDF,但在fo输出阶段,xsltproc提供了以下信息: Element step in namespace 'http://docbook.org/ns/docbook' encountered in sidebar, but no template matches. 如果我尝试使用fop呈现结果fo,实际上,xsltproc似乎忽略了侧栏中任何过程中的步骤,因为fop阻塞了第一个步骤: ...

我有一个DocBook5文档,它可以使用xsltproc呈现成分块的HTML

我现在正尝试渲染为PDF,但在fo输出阶段,xsltproc提供了以下信息:

Element step in namespace 'http://docbook.org/ns/docbook' encountered in sidebar, but no template matches.
如果我尝试使用fop呈现结果fo,实际上,xsltproc似乎忽略了侧栏中任何过程中的步骤,因为fop阻塞了第一个步骤:

...pdf/book.fo:9:1597: Error(9/1597): fo:list-block is missing child elements.
Required Content Model: marker* (list-item)+
为什么xsltproc在处理分块HTML时不关心这一点,但对fo却不喜欢这一点

更新:似乎是样式表产生了以下消息:

$ cat /usr/share/sgml/docbook/xsl-ns-stylesheets-1.75.2/fo/docbook.xsl | grep -B 15 "but no template matches"
<xsl:key name="id" match="*" use="@id|@xml:id"/>

<!-- ==================================================================== -->

<xsl:template match="*">
  <xsl:message>
    <xsl:text>Element </xsl:text>
    <xsl:value-of select="local-name(.)"/>
    <xsl:text> in namespace '</xsl:text>
    <xsl:value-of select="namespace-uri(.)"/>
    <xsl:text>' encountered</xsl:text>
    <xsl:if test="parent::*">
      <xsl:text> in </xsl:text>
      <xsl:value-of select="name(parent::*)"/>
    </xsl:if>
    <xsl:text>, but no template matches.</xsl:text>
$cat/usr/share/sgml/docbook/xsl-ns-stylesheets-1.75.2/fo/docbook.xsl | grep-B 15“但没有模板匹配”
元素
在名称空间中'
"遭遇
在里面
,但没有模板匹配。

是“在侧栏中遇到命名空间“”中的元素步骤…”样式表使用
xsl:message输出的消息还是XSLT处理器自己生成的消息?@MartinHonnen感谢您的指导,我已经更新了问题。(样式表。)根据,当样式表处理docbook格式中未定义的元素时,将输出消息。您确定
步骤属于该步骤吗?如果这是一个自定义元素,那么据我所知,您需要提供一个模板来处理它。它似乎是一个已定义的元素,但它的父元素必须是
过程、步骤替代、子步骤
,而不是
侧栏
。因此,如果您展示当前如何使用
步骤,也许熟悉docbook的人可以告诉您如何正确标记
步骤。@MartinHonnen,我所有的
步骤都在
过程中,包括
侧栏中的步骤。尽管如此,我在
step
s中也有一些简单的
sidebar
s。然而,所有这些都不会在HTML中引起问题,并且以这种方式呈现时看起来很好。