Orbeon:可以在<xforms:action>中使用<xforms:repeat>吗?</xforms:action> </xforms:repeat>

时间:2012-12-16 09:54:25

标签: orbeon

在模式对话框中,当用户单击“确定”时,我必须在现有实例中插入不同的“模板”实例。要插入的模板实例数取决于另一个节点集中的元素数。我试图以这种方式实现这种行为:

<xforms:trigger>
    <xforms:label>OK</xforms:label>
    <xforms:action ev:event="DOMActivate">
        <xforms:repeat nodeset="$currentBranche/../../Eleves/Eleve">
            <xforms:insert context="instance('examen-template')/Notes" nodeset="Note" at="1" position="before" origin="instance('note-template')"/>                                
        </xforms:repeat>
        <xforms:insert context="$currentBranche/Examens" nodeset="Examen" at="1" position="before" origin="instance('examen-template')"/>
        <xxforms:hide dialog="create-examen"/>                            
    </xforms:action>
</xforms:trigger>

我收到以下错误:Invalid action: {http://www.w3.org/2002/xforms}repeat

这是否意味着我无法在xforms:repeat中使用xforms:action?如果是这种情况,我该如何实现所需的行为呢?

2 个答案:

答案 0 :(得分:2)

而不是xforms:repeat,您可以在XForms 2.0中使用@iterate(The iterate attribute),这至少已经在Orbeon中实现为xxforms:iterate:More powerful XForms actions thanks to iterations

-Alain

答案 1 :(得分:2)

正如Alain所提到的,xforms:repeat是一个用户界面元素,不能在动作中使用。

而是在支持它的实现中使用XForms 2.0 iterate属性。自this commit from March 10, 2012)支持以来Orbeon Forms的构建。如果您在2012年3月10日之前使用Orbeon Forms 3.9或版本,请使用xxforms:iterate扩展名。