0

I am trying to apply the data mapper mediator to the output of the XML data service defined within WSO2EI. Documentation indicates, that to use the data mapper you need to have a fully qualified names in the XML input files.

The data service I am creating does not include qualified prefixes within the XML it generates. I tried to export the XSLT data mapping from the CAR file and run it along the sample XML generated by the data service through the external XML transformer - it did not work. However, if I added qualified prefixes in the input XML manually, everything works fine.

It seems that the reason for my data mapper not working is the default, and not qualified, namespace in the input XML. Unfortunately, I cannot get the data service including namespace prexifes in its output. Any ideas?

To illustrate the nature of the problem let us consider two slightly different inputs; first XML input file uses the default names, second one qualified names:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <users xmlns="http://ws.wso2.org/dataservice">
         <user>
            <last>Waelchi</last>
            <first>Xzavier</first>
            <country>Swaziland</country>
         </user>
      </users>
   </soapenv:Body>
</soapenv:Envelope>

This XML is not properly handled by the XSLT, no matter if within WSO2EI, or external XML processor. However, the same XML with qualified names:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <users xmlns:p="http://ws.wso2.org/dataservice">
         <p:user>
            <p:last>Waelchi</p:last>
            <p:first>Xzavier</p:first>
            <p:country>Swaziland</p:country>
         </p:user>
      </users>
   </soapenv:Body>
</soapenv:Envelope>

is properly interpreted at least by the external XML processor. My problem is, that I cannot get WSO2EI data service to include qualified prefixes in its output.

OK, I have managed to bypass the problem transforming XML output by WSO2 data service into qualified XML using XSLT transform. However, I am still unable to get qualified XML directly from the data service; any suggestion shall be appreciated.

Hanno
  • 1
  • 1
  • Did you try adding namespaces to the data-service https://docs.wso2.com/display/DSS350/Defining+Namespaces – Lahiru Madushanka Feb 13 '20 at 04:34
  • I did; that results in adding the namespace declaration at the root level of the XML document. No prefix for that namespace is defined and no qualified prefix appears at lower level nodes. – Hanno Feb 18 '20 at 10:55

0 Answers0