Orbeon共同/全球转型服务

时间:2012-09-03 15:24:33

标签: orbeon

我有一个xsl脚本,它为表单构建器的每个表单构建添加了常用功能。我想在每次打开表单时在运行时应用脚本。我尝试按照http://wiki.orbeon.com/forms/how-to/other/implement-transformation-service中的说明执行以下操作:

在/WEB-INF/resources/page-flow.xml中我添加了以下行

...
<page path-info="/fr/([^/]+)/([^/]+)/(new|edit|view)(/([^/]+))?"  
 matcher="oxf:perl5-matcher" view="test.xsl"/>
...

在行

之前
<epilogue url="/config/epilogue.xpl"/>

我还在/ WEB-INF / resources / apps / fr /:

中添加了test.xsl
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xhtml="http://www.w3.org/1999/xhtml">

    xsl:template match="@*|node()" name="identity">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="/xhtml:html/xhtml:body">
        <xsl:copy>
            <xforms:output value="'test'"/>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

</xsl:stylesheet>

但脚本永远不会应用于表单?我怎么能纠正这个?

1 个答案:

答案 0 :(得分:1)

要专门为Form Runner执行此操作,您可以编辑unroll-form.xpl,例如在管道中的其他所有内容之前添加转换。您可以在最后p:param之后添加:

<p:processor name="oxf:xslt">
    <p:input name="data" href="#data"/>
    <p:input name="config" href="my-transformation.xsl"/>
    <p:output name="data" id="transformed-data"/>
</p:processor>

然后将#data的两次出现重命名为#transformed-data。 (你当然可以选择名字更能说明你的转变是做什么的。)