2

データ ウィーバーで 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>
4

2 に答える 2

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
            }
        }))
    }
}
于 2015-12-17T04:55:25.690 に答える