Diazo和xslt“call-template”

时间:2013-10-05 10:55:23

标签: plone diazo

我正在尝试在我的重氮规则中使用xslt“call-template”指令,因为我不想“重复我的自我”。

但是,当我设置xsl:template并在规则中使用xsl:call-template调用它时,我从重氮调试器中获取异常

  

元素模板仅允许作为样式表的子项

什么事?我可以使用呼叫tempalte吗?如果没有,我怎么能不在xslt模板中重复自我?

示例:

<?xml version="1.0" encoding="UTF-8"?>
<rules
xmlns="http://namespaces.plone.org/diazo"
xmlns:css="http://namespaces.plone.org/diazo/css"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">

<!-- indent and strip space for pretty output -->
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>



<theme href="index.html" />

<after css:theme-children="body">
    <xsl:call-template name="hello"></xsl:call-template>
</after>



<xsl:template name="hello">
    <xsl:element name="div">
        Hello!
    </xsl:element>
</xsl:template>

</rules>

我发现diazo可以在定义为xsl:stylesheet(https://github.com/plone/diazo/blob/master/lib/diazo/normalize-rules.xsl)的文件中管理,而不是直接在规则中管理,但是如何在我的附加软件包中管理它?

感谢的

1 个答案:

答案 0 :(得分:0)

如果您仍有此问题,请尝试最新版本的Diazo和plone.app.theming。

我无法使用最新版本重现此问题(在Plone 4.3.3上)。对我来说,你的规则示例运行得很好(只要它们在主[不是规则文件中]。