2015-12-16 58 views
0

我想在数据编​​织器中创建XML时实现默认命名空间。 我在数据编织器文档和早先的帖子下面想到了。无法得到任何线索。我们如何声明默认的命名空间。数据编织器中的默认命名空间声明

https://docs.mulesoft.com/mule-user-guide/v/3.7/dataweave-tutorial

我的投入将是从DB - 链表。输出是XML。

%dw 1.0 
%namespace ns0 urn:abc:def:Components 
%output application/xml 
--- 
{ 
    ns0#University: { 
     college: payload.college[0], 
     (payload map ((payload01 , indexOfPayload01) -> { 
      dept: { 
       deptName: payload01.dept, 
       Noofstudents: payload01."No of students" as :number 
      } 
     })) 
    } 
} 

电流输出

<ns0:University xmlns:ns0="urn:abc:def:Components"> 
<college>abc</college> <!-- this is simple tag/ It will not repeat --> 
<dept> <!-- This is complex tag --> 
    <dept Name>IT</dept Name> 
    <No of students>5</No of students> 
</dept> 
<dept> 
    <dept Name>IT</dept Name> 
    <No of students>5</No of students> 
</dept> 
<dept> 
    <dept Name>IT</dept Name> 
    <No of students>5</No of students> 
</dept> 
</ns0:University> 

预计产量

<University xmlns="urn:abc:def:Components"> 
<college>abc</college> <!-- this is simple tag/ It will not repeat --> 
<dept> <!-- This is complex tag --> 
    <dept Name>IT</dept Name> 
    <No of students>5</No of students> 
</dept> 
<dept> 
    <dept Name>IT</dept Name> 
    <No of students>5</No of students> 
</dept> 
<dept> 
    <dept Name>IT</dept Name> 
    <No of students>5</No of students> 
</dept> 
<University> 

回答

0

我无法找到解决办法,可以DataWeave以实现请求XML结构默认命名空间。

虽然我可以使用下面的Dataweave类作为临时解决方案。在所有请求xml标签中加入名称空间“ns0#”。

请让我知道,如果有任何最简单的方法去做。

%dw 1.0 
%namespace ns0 urn:abc:def:Components 
%output application/xml 
--- 
{ 
    ns0#University: { 
     ns0#college: payload.college[0], 
     (payload map ((payload01 , indexOfPayload01) -> { 
      ns0#dept: { 
       ns0#deptName: payload01.dept, 
       ns0#Noofstudents: payload01."No of students" as :number 
      } 
     })) 
    } 
}