Вопрос

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

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

arg_1 является строковым параметром веб-сервиса.Итак, я привожу для этого раздел CDATA

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

Но это продолжает вызывать у меня исключение

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

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

Это было полезно?

Решение

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

  1. Удалите XML Prolog и вставьте исходный 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>

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top