Как указать пользовательский XML с помощью xmlbeans

Я готов реализовать временное исправление. Мы используем внешний веб-сервис, клиентская часть которого была сгенерирована с использованием xmlbeans и большого описания WSDL.

Мне нужно указать узел xml, который не описан в схеме. Я знаю, что мог бы пойти и попытаться изменить WSDL (что довольно сложно), но также хочу посмотреть, возможно ли это без повторного создания классов Java.

Так что в основном то, что я ищу, это что-то вроде этого. Объект XML, который я могу поместить в свое дерево, который просто разрешается в заданный текст при сериализации в строку.

XmlObject customNode = XmlObject.Factory.newInstance();
customNode.setXML(
  "<myns:MyNode xmlns:mytypes='http://example.com/myschema' xsi:type='mytypes:DoesNotExistOnClientSideXML'"
);
mySchemaConformantNode.setTheNode(customNode);

Сервер понимает тип. Я знаю, что это не чисто. Но это обходной путь, пока правильный WSDL не будет доставлен в новой версии и на месте.


person Benjamin Peter    schedule 28.05.2013    source источник


Ответы (1)


Это должно быть хорошо. Вы можете создать любую XML-структуру, которая вам нравится, используя XmlBeans — она просто не будет допустимой схемой в соответствии с WSDL.

РЕДАКТИРОВАТЬ: Извините, я не понял первоначальный вопрос. Вы можете использовать XmlObject#set для замены содержимого текущего XmlObject:

XmlObject customNode = XmlObject.Factory.parse("xml...")

mySchemaConformantNode.set(customNode);
person Kevin Krouse    schedule 28.05.2013