スタイルシートへのパラメーターを介して、WSO2 ESB の XSLT メディエーターで複数のノードセットを XSLT に渡そうとしました。ただし、XSLT プロセッサで渡されたパラメーターを参照しようとすると、値が文字列型であると表示されます。
XSLT メディエーター構成自体は、次のように構成されています。
<xslt key="conf:/Test/TestMapping.xsl">
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="originalMsg" expression="get-property('OriginalMsg')" />
</xslt>
XSLT 自体で、渡されたパラメーターを使用してこのデータ内の要素を参照しようとする場合。
<xsl:value-of select="$originalMsg/ns1:Node/ns1:OtherNode"/>
このエラーは、ノードセットが必要な場合、「/」操作を文字列に適用できないことを報告しています。
フローの前のステップからのメッセージ本文であるノードセットを渡そうとしました。これを保存するためにさまざまな方法を試しました。
Enrich メディエーターを介して:
<enrich>
<source clone="true" type="body" xpath="" property="" />
<target action="replace" type="property" xpath="" property="OriginalMsg" />
</enrich>
プロパティメディエーターを通じて:
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="OriginalMsg" expression="$body" scope="default" type="OM" />
しかし、これはうまくいきませんでした。
または、ESB 関数で document() を使用してメッセージ コンテキスト データまたはその他のアプローチを参照する方法はありますか?