При преобразовании из JSON в XML я почти всегда использую этот способ.
Сначала установите для messageType значение xml, вы также можете установить ContentType, но я не уверен на 100%, требуется ли это
<property name="messageType" scope="axis2" value="application/xml"/>
<property name="ContentType" scope="axis2" value="application/xml"/>
Затем используйте фабрику полезной нагрузки с корневым элементом, который в ней установлен, установите тип носителя на XML
<payloadFactory media-type="xml">
<format>
<SomeRequest xmlns="yourXMLNamespace">
$1
</SomeRequest>
</format>
<args>
<arg evaluator="json" expression="."/>
</args>
</payloadFactory>
Теперь у вас будет что-то похожее на это.
<SomeRequest>
<items>
<volumeInfo></volumeInfo>
<title>Web Services</title>
<authors>Gustavo Alonso</authors>
<authors>Fabio Casati</authors>
<authors>Harumi Kuno</authors>
<authors>Vijay Machiraju</authors>
<publisher>Springer Science & Business Media</publisher>
<publishedDate>2003-09-04</publishedDate>
</items>
<items>
...
</items>
</SomeRequest>
Посмотрите, какон развернул массив JSON, создал несколько элементов, используя имя массива.Чтобы перейти отсюда к формату ответа, вам нужен самый простой способ сделать это - использовать преобразование xslt.
<xslt key="{name of your xslt transform file}"/>
Затем вы можете ответить клиенту.
Это может бытьСтоит проверить страницу поддержки JSON в документации по wso2.Он описывает, как JSON преобразуется в XML и из XML https://docs.wso2.com/display/EI620/JSON+Support