'xml-to-json' on Invalid XML

Q

What will happen if "xml-to-json" policy statement is applied on an invalid XML document?

✍: FYIcenter.com

A

If you apply the "xml-to-json" policy statement on the request or response body that has an invalid XML document, you will not receive any errors.

What you will get is a string that looks like a corrupted XML document.

For example, client is sending the following request body with an invalid XML:

<?xml version="1.0"?>
<soap:Envelope xmlns="http://fyicenter.com/" 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <GetOrders>
            <Customer>John & Sons</Customer>
        </GetOrders>
    </soap:Body>
</soap:Envelope>

The "xml-to-json" policy statement will convert it to the following string:

<< ? xml version = "1.0" ? >
  <
  soap : Envelope xmlns = "http://fyicenter.com/"
xmlns: soap = "http://schemas.xmlsoap.org/soap/envelope/" >
  <
  soap: Body >
  <
  GetOrders >
  <
  Customer > John & Sons < /Customer> <
  /GetOrders> <
  /soap:Body> <
  /soap:Envelope>

The root cause is the & sign that is not encoded as an XML entity in the request body.

 

Policy to Modify Request and Response Body

⇒⇒Microsoft Azure API Management Tutorials

2017-11-12, 129👍, 0💬