Um corpo XML válido pode escapar de caracteres para os '<' e '' 'em torno dos nomes de elementos

StackOverflow https://stackoverflow.com/questions/2314608

Pergunta

Meu serviço da web está recebendo XML de terceiros que se parecem com o seguinte:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
&lt;Foo&gt;bar&lt;/Foo&gt;
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Meu serviço da web JAXWS rejeita isso com um erro de análise. Além disso, se eu tentar validar esse XML usando o SOAPUI, ele diz que o corpo com o tipo de conteúdo somente elemento não pode ter elemento de texto.

Minha pergunta é: isso é válido XML? Ou o cliente deve me enviar algo sem escapar do <e>.

Quaisquer referências aos padrões ou regras XML são apreciadas.

Foi útil?

Solução

Bem, isso certamente é XML válido. No entanto, sua pergunta parece ser se ela está em conformidade com o protocolo SOAP, que é uma questão mais restritiva.

No exemplo, seu corpo de sabão é apenas um elemento de texto. Não sou especialista em sabão, mas em todos os exemplos de sabão que vejo, existem nós de elementos no corpo e não apenas texto. Também a recomendação de sabão (http://www.w3.org/tr/2000/note-soap-20000508) diz

"Uma entrada corporal é identificada pelo seu nome de elemento totalmente qualificado"

o que sugere um requisito para elementos e não o texto.

Outras dicas

Como alternativa, você pode escapar da string completa, envolvendo -a com a seção CDATA (Dados do caractere). Uma seção CDATA começa com o delimitador de nove caracteres! [CDATA [e termina com o delimitador]]:

  <![CDATA["Me, Myself & <I>"]]>

Dê uma olhada aqui http://xmmssc-www.star.le.ac.uk/sas/xmmsas_20070308_1802/doc/param/node24.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top