Domanda

Ho uno scenario in cui in ho bisogno di inviare un XML come contenuto del tag in un messaggio di richiesta SOAP per un webservice per esempio

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

Arg_1 sembra essere un parametro stringa in un webservice. Così ho portare in una sezione CDATA di questo

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

Ma questo mi tiene un'eccezione

org.xml.sax.SAXException: WSWS3084E: Errore: SimpleDeserializer ha rilevato un elemento secondario, che non è previsto, in qualcosa che stava cercando di deserializzare. Messaggio di essere analizzato:

Continuo a ricevere questa eccezione. Qualcuno ha visto questo prima ??

È stato utile?

Soluzione

Ci sono un paio di modi si potrebbe gestire questo -

  1. Rimuovere l'XML Prolog e inserire il documento XML originale nel contenuto di un elemento nell'altro documento.
<arg_1><sometag><somemoretag>abcd</somemoretag></sometag></arg_1>
  1. Escape il documento XML originale, come si farebbe con qualsiasi altro contenuto del testo e inserire il testo risultante nel contenuto di un elemento.
<arg_1>&lt;sometag&gt;&lt;somemoretag&gt;abcd&lt;/somemoretag&gt;&lt;/sometag&gt;</arg_1>

Altri suggerimenti

Avevo affrontato problema simile, in cui il mio XML non era all'interno della CDATA correttamente. Per i tag di essere trattati come String è necessario utilizzare come di seguito:

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

Tuttavia non hanno utilizzato il? prima che la versione xml. Il tag deve essere <?xml version="1.0" encoding="UTF-8" standalone="yes"?> Nel tuo caso la sua <xml version="1.0" encoding="UTF-8" standalone="yes"?>.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top