Конвертировать XML как строку - PullRequest
0 голосов
/ 27 марта 2010

У меня есть сценарий, в котором мне нужно отправить xml в качестве содержимого тега в сообщении с запросом SOAP к веб-службе, например

<arg_1><xml version="1.0" encoding="UTF-8"?><sometag><somemoretag>abcd</somemoretag></sometag></arg_1></code>

arg_1 является параметром String для веб-службы. Поэтому я ввожу раздел CDATA для этого

<arg_1><![CDATA[<xml version="1.0" encoding="UTF-8"?><sometag><somemoretag>abcd</somemoretag></sometag>]]></arg_1>

Но это постоянно бросает мне исключение

org.xml.sax.SAXException: WSWS3084E: Ошибка: SimpleDeserializer обнаружил дочерний элемент, который НЕ ожидается, в чем-то, что он пытался десериализовать. Анализируемое сообщение:

Я продолжаю получать это исключение. Кто-нибудь видел это раньше ??

Ответы [ 2 ]

0 голосов
/ 23 ноября 2016

Я столкнулся с подобной проблемой, когда мой xml не был должным образом внутри CDATA. Чтобы теги считались строковыми, вы должны использовать следующее:

 <![CDATA[ ---your xml---- ]]>

Однако вы не использовали? до версии XML. Тег должен быть <?xml version="1.0" encoding="UTF-8" standalone="yes"?> В вашем случае это <xml version="1.0" encoding="UTF-8" standalone="yes"?>.

0 голосов
/ 27 марта 2010

Есть несколько способов справиться с этим -

  1. Удалите пролог XML и вставьте исходный документ XML в содержимое элемента другого документа.
<arg_1><sometag><somemoretag>abcd</somemoretag></sometag></arg_1>
  1. Экранируйте исходный XML-документ, как любой другой текстовый контент, и вставьте полученный текст в контент элемента.
<arg_1>&lt;sometag&gt;&lt;somemoretag&gt;abcd&lt;/somemoretag&gt;&lt;/sometag&gt;</arg_1>
...