为什么Payload Factory Mediator使用默认名称空间构建XML?

时间:2017-01-23 18:38:31

标签: wso2 wso2-am

我想通过WSO2序列中的Payload Mediator生成XML而没有名称空间。例如:

<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>

上面一个生成xml,如下所示:

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

而不是(这是我的目标)

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

我知道这个命名空间是从序列根元素获取的。如何避免或消除这个自动生成的名称空间?

1 个答案:

答案 0 :(得分:1)

您可以通过在有效负载工厂介体中添加空命名空间(xmlns="")来避免使用默认名称空间

例如&lt; 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>