XSLT样式表中的XInclude(eXist-db)

洪扎·赫兹(Honza Hejzl)

我的某些样式表有些大,而某些部分在重复。我想对它们使用XInclude,这将使我可以将它们与整个样式表分开。我无法使用xsl:importxsl:include在这里,因为我需要将它们注入到特定位置以生成书签和活动链接(对于XSL-FO)。

如果我使用:

<xi:include href="/db/apps/tested-bunny/resources/xsl-fo/common/bookmark-tree.xml/>

…生成的.fo文件确实包含该部分。但是,该部分未翻译,这意味着它与源中的位置相同。XSL-FO处理器因此将其忽略,并且pdf结果中没有书签。

至于分开的部分,我将其保存为常规XML文件,并在根元素中声明了两个命名空间:

<fo:bookmark-tree xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:if test="$head-level ge '1'">
    ...

如果我尝试在XSL样式表的形式中包含相同的代码段,则是相同的—正确地注入了该代码段,但未将其功能添加到整个样式表中,仍然没有翻译。

我不知道有什么特定的做法或限制吗?如何正确地做到这一点?

洪扎·赫兹(Honza Hejzl)

对我来说,有效的解决方案不是XInclude,而是xsl:include在适当的时候调用模板:

...
</fo:declarations>
<!-- Bookmarks from the external stylesheet -->
<xsl:call-template name="bookmark-tree"/>
<fo:page-sequence master-reference="title-page">
...

我创建了正确的样式表。重要的是将根元素设置为当前上下文:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="2.0">
    <xsl:template name="bookmark-tree" match=".">
        <fo:bookmark-tree>
            ...

当然,有必要将样式表包含在我称为模板的样式表中:

<xsl:include href="common/bookmark-tree.xsl"/>

现在,我认为这个问题已经回答。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

XSLT样式表中不需要的节点

来自分类Dev

使用Javascript修改XML元素(在XSLT样式表中)

来自分类Dev

xslt样式表中的嵌入式HTA

来自分类Dev

XSLT样式表中不需要的节点

来自分类Dev

XSLT删除源的样式表

来自分类Dev

正确编码 XSLT 样式表的问题

来自分类Dev

Rails中的样式表

来自分类Dev

Xslt:如何通过Xslt样式表中的类选择器选择xml元素?

来自分类Dev

如何使用eXist-db中的XQuery和/或XSLT从XML创建SVG的条形图

来自分类Dev

XSLT样式表不适用于Firefox中的XML。如何解决?

来自分类Dev

无法通过XSLT样式表中的模板显示来自RSS / XML的图像

来自分类Dev

如何将 XSLT 2 样式表模块中定义的函数公开给 fn:transform?

来自分类Dev

Laravel DB ::表AND语句?

来自分类Dev

在eXist-db中查询集合

来自分类Dev

React.js中的样式表

来自分类Dev

Qt样式表中的属性组合

来自分类Dev

Rails中的高级样式表

来自分类Dev

在CSS样式表中删除类

来自分类Dev

从XML文件中删除样式表

来自分类Dev

外部样式表中的meta信息

来自分类Dev

外部样式表中的KML PolyStyle?

来自分类Dev

在CodeIgniter中包含外部样式表

来自分类Dev

在CSS样式表中对齐图像

来自分类Dev

电子邮件中的样式表

来自分类Dev

引导程序3中的样式表

来自分类Dev

om中的动态样式表

来自分类Dev

样式表中的CSS错误

来自分类Dev

在CSS样式表中删除类

来自分类Dev

React.js中的样式表