Docbook中自建元素下的元素求值

Evaluation of elements under self constructed elements in Docbook

我目前正在处理一些复杂的 DocBook 文档,特别是将其 xslt 转换为 FO(并从那里转换为 PDF)。

在这种情况下,我正在努力解决工作流程的某些特征,希望这里有人能给我一些提示。

我有一个名为 description 的自定义元素,它在我的架构中定义如下:

db.description = element description { text*, db.para* }

使用此元素效果很好,然后在我的样式表中我想将元素的内容放入 table 中,如下所示:

    <fo:table-cell  border-style="none" border-width="0pt" text-align="start"> 

<fo:block><xsl:value-of select="d:description" />

</fo:block>

</fo:table-cell>  

基本上,一切正常,但这里的棘手之处在于描述元素通常包含一些元素,这些元素不再被评估,而仅被视为文本。这意味着文本被复制到 table 但样式表不生成段落:-(

我可以在我的样式表中添加对元素的显式处理,但我想必须有一种更简单的方法,因为这种处理已经由 DocBook 样式表本身实现了。

那么,有人知道如何说服样式表也评估我的客户元素下的元素吗?

提前致谢 诺伯特

我假设您想使用 <xsl:apply-templates select="d:description/node()"/> 而不是 <xsl:value-of select="d:description" />(然后假定 DocBook 样式表或您自己的代码具有 db.para 和后代元素的匹配模板)。