2015-12-17 51 views
0

我有一個問題,在MuleESB中將整數數組轉換爲xml。Mule Dataweaver int數組到XML元素肥皂

所以我有一個名爲UsagePoint對象包含groups=ArrayOfint [_int=[2]]

在我變換組件Transform Message我曾嘗試以下tranforming方法,它是故意的,我已經離開了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 
    }, 

和其中I通過使用下面的方法得到的陣列設置一個流量變量groupint只是變壓器組件之前調用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]這樣我得到我的整數,它工作正常。我的問題是數組中可能有更多的元素不止一個。所以我想要一個結果如下:

<Groups> 
    <int>1</int> 
    <int>2</int> 
    <int>3</int> 
    ... 
    </Groups> 

而不是隻有在結果xml中可以包含1個int元素的結果。

我也試過只是說ns0#Groups: payload.groups。那麼如何編寫一個處理int數組的Dataweaver表達式呢?

回答