Thursday, February 11, 2016

[WSO2 ESB] How to remove default namespace at message enrich.

1.Lets say we need to add new element (eg: foo) to the message body using enrich mediator.

<enrich>
 <source type="inline" clone="true">
 <foo>test</foo>
</source>
<target type="body" action="child"/>
</enrich>
2. After enriched, the  message will be as bellow.
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
    <soapenv:Body>
        <foo xmlns="http://ws.apache.org/ns/synapse">test</foo>
    </soapenv:Body>
</soapenv:Envelope>
3. You can see foo element contains with default synapse namespace.
4. You can avoid this adding empty namespace (xmlns="") to foo element in enrich mediator configuration.
<enrich>
 <source type="inline" clone="true">
 <foo xmlns="">test</foo>
</source>
<target type="body" action="child"/>
</enrich>