Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerDataWeave を使用すると、XML タグ入力元内から対象出力 XML に属性を渡すことができます。この DataWeave の例は、入力元ペイロードの NameDetail
項目の XML 属性を XML 出力の TargetName
項目に渡す方法を示しています。
開始する前に、DataWeave バージョン 2 (%dw 2.0
) は Mule 4 アプリケーションを対象とすることに注意してください。Mule 3 アプリケーションの場合、Mule 3.9 ドキュメントセットの DataWeave バージョン 1 (%dw 1.0
) の例を参照してください。他の Mule バージョンの場合は、目次の Mule Runtime バージョンセレクターを使用できます。
この例では、以下を使用します。
- NameDetail
要素の配列を返す .*
複数値セレクター。
- 入力の NameDetail 要素の配列を反復処理する map
関数。
- 入力から属性を動的に選択することで、新しい出力タグの属性を作成する動的属性式 @dynamicAttributes
。
%dw 2.0
output application/xml
---
{
Result: {
(payload.Names.*NameDetail map ( nameDetail , indexOfNameDetail ) -> {
TargetName @((nameDetail.@)): {
item: nameDetail.item
}
})
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Names>
<NameDetail NameId="11111" NameType="Person" Name="Richarson" GivenNames="John" PreferredLanguage="English" CompanyNumber="" Gender="Male" Title="" >
<item>doo</item>
</NameDetail>
<NameDetail NameId="22222" NameType="Person" Name="Richarson" GivenNames="Susan" PreferredLanguage="Spanish" CompanyNumber="" Gender="Female" Title="" >
<item>dah</item>
</NameDetail>
<NameDetail NameId="33333" NameType="Person" Name="Knox" GivenNames="Frances" PreferredLanguage="English" CompanyNumber="" Gender="Male" Title="" >
<item>dab</item>
</NameDetail>
</Names>
<?xml version='1.0' encoding='UTF-8'?>
<Result>
<TargetName NameId="11111" NameType="Person" Name="Richarson" GivenNames="John" PreferredLanguage="English" CompanyNumber="" Gender="Male" Title="">
<item>doo</item>
</TargetName>
<TargetName NameId="22222" NameType="Person" Name="Richarson" GivenNames="Susan" PreferredLanguage="Spanish" CompanyNumber="" Gender="Female" Title="">
<item>dah</item>
</TargetName>
<TargetName NameId="33333" NameType="Person" Name="Knox" GivenNames="Frances" PreferredLanguage="English" CompanyNumber="" Gender="Male" Title="">
<item>dab</item>
</TargetName>
</Result>