WSO2 EI: необходимо преобразовать сообщение XML в строку - PullRequest
0 голосов
/ 29 января 2020

Я работаю над одним сценарием, в котором мне нужно преобразовать сообщение xml в строку. Это необходимо для последовательности APIM с использованием restAPI.

Ниже приведена последовательность входных сообщений, которая является действительным XML сообщением

<sequencexmlns="http://ws.apache.org/ns/synapse"name="tokenURL">
<propertyxmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:ns3="http://org.apache.synapse/xsd" name="inputmessage" expression="get-property('registry','gov:/token/payload.json')" scope="default" type="STRING"/>
<scriptlanguage="js">varpayload=mc.getProperty("inputmessage");
mc.setPayloadJSON(payload)</script>

<propertyname="messageType" value="application/json" scope="axis2" type="STRING"/>
<propertyname="ContentType" value="application/json" scope="axis2" type="STRING"/>

<callblocking="true"> 
<endpointname="tokenURL"> 
<httpmethod="POST" uri-template="https://example.com/login"/>
</endpoint>

</call>
<propertyxmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:ns3="http://org.apache.synapse/xsd" name="accesstoken" expression="json-eval($.token)" scope="transport" type="STRING"/>
</sequence>

Теперь я хочу преобразовать это xml сообщение в строку (получение всего сообщения в одну строку и добавление \ n для получения новых строк), как показано ниже

<sequence xmlns=\"http://ws.apache.org/ns/synapse\" name=\"tokenURL\">\n<property 
xmlns:soapenv=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:ns3=\"http://org.apache.synapse/xsd\" 
name=\"inputmessage\" expression=\"get-property('registry','gov:/token/payload.json')\" 
scope=\"default\" type=\"STRING\"/>\n <script language=\"js\">var payload = 
mc.getProperty(\"inputmessage\"); mc.setPayloadJSON(payload)</script>\n <property 
name=\"messageType\" value=\"application/json\" scope=\"axis2\"             type=\"STRING\"/>\n 
<property name=\"ContentType\"     value=\"application/json\"  scope=\"axis2\" type=\"STRING\"/>\n   
<call blocking=\"true\">\n      <endpoint name=\"tokenURL\">\n         <http method=\"POST\"  uri- 
template=\"https://example.com/login\"/>\n     </endpoint>\n   </call>\n   <property 
xmlns:soapenv=\"http://www.w3.org/2003/05/soap-envelope\"  
xmlns:ns3=\"http://org.apache.synapse/xsd\"             name=\"accesstoken\"  expression=\"json- 
eval($.token)\"  scope=\"transport\"  type=\"STRING\"/>\n  </sequence>

Любые предложения, пожалуйста.

Спасибо

...