2017-01-23 55 views
0

我想通过WSO2序列中的Payload Mediator生成XML,但没有名称空间。例如:Payload Factory 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

您可以通过在有效载荷工厂调停加入空的命名空间(xmlns="")避免默认名称空间

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> 
相关问题