Flex Gateway新着情報
Governance新着情報
Monitoring API Manager
DataWeave 2.2 は Mule 4.2 と互換性があり、Mule 4.2 にバンドルされています。 このバージョンの Mule は、拡張サポートが終了する 2023 年 5 月 2 日にその すべてのサポートが終了しました。 このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。 標準サポートが適用されている最新バージョンの Mule 4 にアップグレードすることをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。 |
ヘッダーでさまざまな名前空間を定義し、各タグで参照できます。
開始する前に、DataWeave バージョン 2 (%dw 2.0
) は Mule 4 アプリケーションを対象とすることに注意してください。Mule 3 アプリケーションの場合、Mule 3.9 ドキュメントセットの DataWeave 1.0 (%dw 1.0
) の例を参照してください。他の Mule バージョンの場合は、目次の Mule Runtime バージョンセレクターを使用できます。
Mule 4.2.1 リリース以降、DataWeave では、名前空間キーおよび属性を動的に生成できます。
次の例では、以下を使用します。
ヘッダーの名前空間定義用の ns
XML 要素の他の属性を定義する @
%dw 2.0
output application/xml
ns orders http://www.acme.com/shemas/Orders
ns stores http://www.acme.com/shemas/Stores
---
root:
orders#orders: {
stores#shipNodeId: "SF01",
stores#shipNodeId @(shipsVia:"LA01"): "NY03"
}
<?xml version='1.0' encoding='UTF-8'?>
<root>
<orders:orders xmlns:orders="http://www.acme.com/shemas/Orders">
<stores:shipNodeId xmlns:stores="http://www.acme.com/shemas/Stores">SF01</stores:shipNodeId>
<stores:shipNodeId xmlns:stores="http://www.acme.com/shemas/Stores" shipsVia="LA01">NY03</stores:shipNodeId>
</orders:orders>
</root>
サポートの開始は Mule バージョン 4.2.1 以降
名前空間キーおよび属性の次のサンプル出力値では、DataWeave が DataWeave 変数で定義された入力を使用してその役割を果たしています。
%dw 2.0
fun dynKeyNs(ns0: Namespace, value: Any) = { ns0#myDynKey: value }
fun dynAttrNs(ns0: Namespace, value: Any) = { myChildTag @(ns0#myDynAttribute: true): value }
var namespace1 = {uri: "http://acme.com", prefix: "ns0"} as Namespace
var namespace2 = {uri: "http://emca.com", prefix: "ns0"} as Namespace
output application/xml
---
root:
{
mytagA: dynKeyNs(namespace1, "myTest1"),
myTagB: dynKeyNs(namespace2, "myTest2"),
myTagC: dynAttrNs(namespace1, "myTest1"),
myTagD: dynAttrNs(namespace2, "myTest2")
}
<?xml version='1.0' encoding='UTF-8'?>
<root>
<mytagA>
<ns0:myDynKey xmlns:ns0="http://acme.com">myTest1</ns0:myDynKey>
</mytagA>
<myTagB>
<ns0:myDynKey xmlns:ns0="http://emca.com">myTest2</ns0:myDynKey>
</myTagB>
<myTagC>
<myChildTag xmlns:ns0="http://acme.com" ns0:myDynAttribute="true">myTest1</myChildTag>
</myTagC>
<myTagD>
<myChildTag xmlns:ns0="http://emca.com" ns0:myDynAttribute="true">myTest2</myChildTag>
</myTagD>
</root>