MuleESB で整数の配列を xml に変換する際に問題があります。
だから私は含むというオブジェクトを持ってUsagePoint
いますgroups=ArrayOfint [_int=[2]]
私の変換コンポーネントTransform Messageでは、次の変換アプローチを試しましたが、意図的に省略していますns0 namespace
:
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
%type groups = :object {class: "xmlinterface.ArrayOfint"}
--
ns0#Groups: {
ns1#int: payload.groups.int as :object
},
と
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
%type groups = :object {class: "xmlinterface.ArrayOfint"}
--
ns0#Groups: payload.groups map {
ns1#int: payload.groups.int as :object
},
と
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
--
ns0#Groups: {
ns1#int: payload.groups
},
groupint
次のメソッド呼び出しを使用して配列を取得することにより、Transformer コンポーネントの直前にフロー変数を設定するとpayload.getGroups().getInt()
、結果は[2]
Int32 の逆シリアル化エラーになります。
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
--
ns0#Groups: {
ns1#int: flowVars.groupint
},
しかしpayload.getGroups().getInt()[0]
、整数を取得するように呼び出すと、正常に機能します。私の問題は、配列に 1 つだけではなく、複数の要素が存在する可能性があることです。だから私は言う結果が欲しい:
<Groups>
<int>1</int>
<int>2</int>
<int>3</int>
...
</Groups>
結果のxmlに1つのint要素しか含めることができない結果ではありません。
私も言ってみましたns0#Groups: payload.groups
。では、int の配列を処理する Dataweaver 式をどのように作成すればよいでしょうか?