我有一个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>
但脚本永远不会应用于表单?我怎么能纠正这个?
答案 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
。 (你当然可以选择名字更能说明你的转变是做什么的。)