Я попытался передать несколько наборов узлов в XSLT в посреднике XSLT в WSO2 ESB через параметры таблицы стилей.Однако при попытке обратиться к параметрам, передаваемым процессору 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" />
Но это не сработало.
В качестве альтернативы, есть ли способ использовать document () в функции ESB для ссылки на данные контекста сообщения или некоторые другиедругой подход?