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"/>

また、test.xsl を /WEB-INF/resources/apps/fr/ に追加しました。

<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

特にFormRunnerに対してこれを行うには、を編集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つのオカレンスの名前をに変更#data#transformed-dataます。(もちろん、名前を選択することで、変換の内容がわかりやすくなります。)

于 2012-09-03T22:15:11.940 に答える