У меня проблема с преобразованием массива целых чисел в 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?
, который работал для меня, спасибо много @Shoki. – TheLearner