skumarcse
skumarcse

Reputation: 169

Why Payload Factory Mediator builds XML with default name space?

I want to generate XML through Payload Mediator in WSO2 sequence without a name space. Example:

<payloadFactory media-type="xml">
        <format>
          <XmlRoot>
            <a>$1</a>
            <b>$2</b>
            <c>$3</c>
            <d>$4</d>
          </XmlRoot>
        </format>
        <args>
          <arg evaluator="json" expression="$.a"/>
          <arg evaluator="json" expression="$.b"/>
          <arg evaluator="json" expression="$.c"/>
          <arg evaluator="json" expression="$.d"/>
        </args>
      </payloadFactory>

Above one generates xml like below:

<XmlRoot xmlns="http://ws.apache.org/ns/synapse">
    <a>Paper</a>
    <b>en-US</b>
    <c>en-US</c>
    <d>USD</d>
</XmlRoot>

Instead of (that is my goal)

<XmlRoot>
    <a>Paper</a>
    <b>en-US</b>
    <c>en-US</c>
    <d>USD</d>
</XmlRoot>

I know this namespace is gets from sequence root element. how to avoid or eliminate this auto generated name space ?

Upvotes: 1

Views: 939

Answers (1)

Jenananthan
Jenananthan

Reputation: 1401

You can avoid the default name space by adding empty namespace ( xmlns="") in payload factory mediator

e.g <XmlRoot xmlns="">

<payloadFactory media-type="xml">
        <format>
          <XmlRoot xmlns="">
            <a>$1</a>
            <b>$2</b>
            <c>$3</c>
            <d>$4</d>
          </XmlRoot>
        </format>
        <args>
          <arg evaluator="json" expression="$.a"/>
          <arg evaluator="json" expression="$.b"/>
          <arg evaluator="json" expression="$.c"/>
          <arg evaluator="json" expression="$.d"/>
        </args>
      </payloadFactory>

Upvotes: 2

Related Questions