0

我有一个 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>

但是脚本永远不会应用于表单?我该如何纠正?

4

1 回答 1

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>

然后将出现的 2 次重命名为#datato #transformed-data。(您当然可以选择更能说明您的转换功能的名称。)

于 2012-09-03T22:15:11.940 回答