2017-01-23 65 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>