Question

J'ai un scénario où je dois en envoyer un xml comme contenu de la balise dans un message de requête SOAP à un webservice par exemple

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

Arg_1 se trouve être un paramètre de chaîne à un webservice. Donc je mettre dans une section CDATA pour cette

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

Mais cela ne cesse de me lancer une exception

org.xml.sax.SAXException: WSWS3084E: Erreur: SimpleDeserializer rencontré un élément enfant, qui ne devrait pas, en quelque chose qu'il essayait de désérialiser. Un message en cours d'analyse:

Je continue à obtenir cette exception. Quelqu'un at-il vu cela auparavant ??

Était-ce utile?

La solution

Il y a deux façons dont vous pouvez gérer cela -

  1. Retirez le XML Prolog et insérez le document XML d'origine dans le contenu d'un élément dans l'autre document.
<arg_1><sometag><somemoretag>abcd</somemoretag></sometag></arg_1>
  1. Escape the document XML original comme vous le feriez pour tout autre contenu du texte et insérer le texte résultant dans le contenu d'un élément.
<arg_1>&lt;sometag&gt;&lt;somemoretag&gt;abcd&lt;/somemoretag&gt;&lt;/sometag&gt;</arg_1>

Autres conseils

J'avais fait face à la même question, dans laquelle mon xml n'a pas été à l'intérieur du CDATA correctement. Pour les balises à traiter sous forme de chaîne, vous devez utiliser comme ci-dessous:

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

Cependant, vous n'avez pas utilisé? avant que la version xml. L'étiquette doit être <?xml version="1.0" encoding="UTF-8" standalone="yes"?> Dans votre cas son <xml version="1.0" encoding="UTF-8" standalone="yes"?>.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top