Converter xml como string
-
22-09-2019 - |
Pergunta
Eu tenho um cenário em que eu preciso enviar um XML como um conteúdo de tag em uma mensagem de solicitação SOAP para um serviço da web, por exemplo
<arg_1><xml version="1.0" encoding="UTF-8"?><sometag><somemoretag>abcd</somemoretag></sometag></arg_1></code>
arg_1 é um parâmetro de string para um serviço da web. Então eu trago uma seção de CDATA para isso
<arg_1><![CDATA[<xml version="1.0" encoding="UTF-8"?><sometag><somemoretag>abcd</somemoretag></sometag>]]></arg_1>
Mas isso continua me jogando uma exceção
org.xml.sax.saxException: WSWS3084E: Erro: SimpleteSerializer encontrou um elemento filho, o que não é esperado, em algo que estava tentando deseralizar. Mensagem sendo analisada:
Eu continuo recebendo essa exceção. Alguém viu isso antes??
Solução
Existem algumas maneiras de lidar com isso -
- Remova o XML Prolog e insira o documento XML original no conteúdo de um elemento no outro documento.
<arg_1><sometag><somemoretag>abcd</somemoretag></sometag></arg_1>
- Escape o documento XML original como você faria com qualquer outro conteúdo de texto e insira o texto resultante no conteúdo de um elemento.
<arg_1><sometag><somemoretag>abcd</somemoretag></sometag></arg_1>
Outras dicas
Você pode usar o manipulador de eventos ItemAdding na lista B. Durante o evento você receberá o usuário logado atual, obter o valor associado ao usuário atual na lista B e preencher o campo na lista b.