2015-12-17 3 views
0

У меня проблема с преобразованием массива целых чисел в xml в MuleESB.Mule Dataweaver int array to xml element soap

Так у меня есть объект, называемый 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 непосредственно перед компонентом трансформатора, получая массив, используя следующий метод вызывает 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> 

, а не результат, что только может содержать 1 ИНТ элемент в результирующем XML.

Я также попробовал только сказать ns0#Groups: payload.groups. Итак, как написать выражение Dataweaver, которое обрабатывает массив ints?

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^