xmlドキュメントを含むデータベースがあり、送信が送信されたときにxformsページに変換されたxmlを表示したいと思います(orbeonフォームを使用しています)。
私の解決策は、送信時にサーブレットがデータベースからxmlを取得してファイルに書き込み、xsltがxmlツリーを変換することです(いつどのように変換を行う必要がありますか?)が、表示方法がわかりませんxformsページのこのファイル。のreplace="instance"属性が役立つかもしれませんが、方法がわかりません。
ありがとう!
さて、アレッサンドロのアドバイスの後、私はこのxplのものを使おうとしていますが、うまくいきません。モデル内:
<xforms:insert nodeset="instance('inst2')"
origin="xxforms:call-xpl('oxf:/resources/pipeline.xpl', 'data',
instance('inst1'), 'data')"/>
pipe.xpl内:
<p:config xmlns:p="http://www.orbeon.com/oxf/pipeline"
xmlns:oxf="http://www.orbeon.com/oxf/processors">
<p:param type="input" name="data"/>
<p:param type="output" name="data"/>
<p:processor name="oxf:xslt">
<p:input name="data" href="#data"/>
<p:input name="config" href="transform.xsl"/>
<p:output name="data" ref="data"/>
</p:processor>
私が変換したいインスタンスは「complaint-instance」であり、変換されたインスタンスは「trf-instance」と呼ばれ、pipeline.xplファイルは私のxformsページと同じディレクトリにあります。私のstyesheetはcustomerToOperator.xslと呼ばれています。私のコードの何が問題になっていますか?
「別々のデプロイメントを使用している場合、サービスとXSLT変換は、アプリケーション内ではなく、OrbeonWARファイルに存在する必要があります。」というメモに気づきました。えーと…これらのファイルはどこに置けばいいの?
私のアプリの詳細:
a)2つのインスタンスを持つxformsページ:
<instance id='inst1'>
<name>
<lastname/>
<firstname/>
</name>
</instance>
<instance id='inst2'>
<fname>
<fullname/>
</fname>
</instance>
name/lastnameとname/firstnameで参照される2つの入力フィールドを取得しました。上記のxforms:insertノードとxforms:submissionノードがあります。
<xforms:submission
id="save-submission"
ref="instance('inst2')"
action="/my-servlet"
method="post"
replace="none">
orbeon / WEB-INF / resourcesに2つのファイル、pipeline.xpl(上記)とtransform.xslを追加しました。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<fname>
<fullname>
<xsl:value-of select="name/firstname"/>
<xsl:value-of select="name/lastname"/>
</fullname>
</fname>
</xsl:template>
</xsl:stylesheet>
そして、投稿されたインスタンスをコンソールに書き込むサーブレットがあります(現在、コンソールにinst2を書き込みますが、ユーザー入力データはなく、ノードのみです...)
本当にこれを修正する必要があります...
再度、感謝します!