peut un corps XML valide ont échappé à caractères pour le « < » et « > » autour des noms d'éléments
-
22-09-2019 - |
Question
Mon service Web reçoit xml d'un tiers qui ressemble à ceci:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<Foo>bar</Foo>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Mon JAXWS service web rejette cela avec une erreur d'analyse. Aussi, si je tente de valider ce xml en utilisant SoapUI il dit corps avec-seul élément type de contenu ne peut pas avoir un élément de texte.
Ma question est, est que XML valide? Ou est le client censé me envoyer quelque chose sans échapper à la
Toutes les références aux normes XML ou les règles sont appréciées.
La solution
Eh bien, c'est certainement XML valide. Toutefois, votre question semble être plutôt si elle est conforme au protocole SOAP, ce qui est une question plus restrictive.
Dans l'exemple, votre corps SOAP est juste un élément de texte. Je ne suis pas expert SOAP mais dans tous les exemples SOAP que je vois, il y a des noeuds d'éléments dans le corps et pas seulement du texte. Aussi la Recommandation SOAP ( http://www.w3.org/TR/2000 / NOTE-SOAP-20000508 ) fait dire
"Une entrée de corps est identifié par son Nom complet à l'élément "
qui ne suggère une exigence pour les éléments plutôt que du texte.
Autres conseils
Vous pouvez échapper à la chaîne complète en l'enfermant avec la section CDATA (données de caractères). Une section CDATA commence par le séparateur de neuf caractères [CDATA [et se termine par le séparateur]]:
<![CDATA["Me, Myself & <I>"]]>
jetez un oeil ici http: / /xmmssc-www.star.le.ac.uk/SAS/xmmsas_20070308_1802/doc/param/node24.html