Service Virtualization

How to set arguments using XML payload with CDATA?

  • 1.  How to set arguments using XML payload with CDATA?

    Posted Apr 23, 2018 11:50 AM

    Note: if CDATA section have "&lt;" and "&gt;" instead of "<" and ">" in the XML message before and after the CDATA.

             however below approach is working fine with < and > in the XML message before and after the CDATA.

     

    I have tried below approach to set the arguments, but arguments are not created at request data > Arguments in VSI.

     

    1) Applied a Web Services SOAP DPH

    2) Applied the Request Data Manager DPH to copy the value of the "process" argument to the body.

    3) Use the JSON DPH.

    3) I selected local-name() of the process element and assigned it to the operation name.

    4) I selected the string() of the process element and assigned it to the body

       local-name(/SOAP-ENV:Envelope/SOAP-ENV:Body/ns:process)
       string(/SOAP-ENV:Envelope/SOAP-ENV:Body/ns:process)

     

    Request XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ms="http://service.xyz.com/entity/msg/2017/" xmlns:hg="http://service.xyz.com/pdr/HG/entity/envelope/2017/">
      <SOAP-ENV:Header>
        <ms:Context>
          <ms:messageId>1</ms:messageId>
        </ms:Context>
        <hg:arContext>
          <service>DT</service>
          <action>getInformation</action>
        </hg:arContext>
      </SOAP-ENV:Header>
      <SOAP-ENV:Body>
        <ns:process xmlns:ns="http://service.xyz.com/provider/HG/data/DT/2017/">

    &lt;![CDATA[{
      "TransactionsRequest": {
       "startDate":"2017-08-07T00:00:00-00:00",
       "endDate":"2017-08-08T00:00:00-00:00",
       "Key":{
         "Number":123456,
      "ProductCode":"ABCDE",
      
       }
      }
    }]]&gt;

    </ns:process>
      </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

     

    some one please provide the solution.