2010-03-27 7 views
0

j'ai un scénario où, en i besoin d'envoyer un fichier XML en tant que contenu de la balise dans un message de requête SOAP à un webservice par exempleConvert xml en tant que chaîne

<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 continue à me lancer une exception

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

Je reçois toujours cette exception. Quelqu'un a-t-il déjà vu cela avant??

+0

Veuillez indiquer le code que vous utilisez pour créer ce fichier XML. –

Répondre

0

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

  1. Retirez le XML Prolog et insérer 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> 
0

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 la version xml. L'étiquette doit être <?xml version="1.0" encoding="UTF-8" standalone="yes"?> Dans votre cas, c'est <xml version="1.0" encoding="UTF-8" standalone="yes"?>.

Questions connexes