WSO2 ESBのXSLTメディエータのXSLTに複数のノードセットをスタイルシートのパラメータで渡そうとしました。しかし、XSLTプロセッサで渡されたパラメータを参照しようとすると、値は文字列型であると言われます。渡されたパラメータは、例えば、このデータの要素を参照しようとするために使用されるときXSLT自体で複数のデータソースをWSO2のXSLTメディエータに渡す方法ESB
<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メディエータ自体をconfigのは、このように構成されています
<xsl:value-of select="$originalMsg/ns1:Node/ns1:OtherNode"/>
エラーは、ノードセットが必要なときに "/"操作を文字列に適用できないことを報告します。
私は保存するために、様々なmedthodsを試みたフローの前のステップからのメッセージを指定の本体であるノードセットを渡すことを試みた:エンリッチメディエーターを介して
:スルー
<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()を使用してメッセージコンテキストデータなどを参照する方法がありますか?
WS02はどのバージョンのXSLTをサポートしていますか?私はバージョン1だと思う。バージョン1では、変数にXPath式を適用することはできない。文字列変数をノードセットに変換するEXSLTのノードセットなどの拡張機能を使用することができます。 XSLTバージョン2は、バージョン1で課せられた多くの迷惑な制限を取り除くため、SaxonなどのXSLT 2エンジンを使用するようにWS02を説得できるかどうかを確認することができます – Kevan