Bonjour à tous,
Connaissez-vous une astuce pour que la page de test d'un webservice
générée par windev puisse accepter un flux xml dans un paramètre
(autrement dit, qu'elle entoure automatiquement le contenu par un
<![CDATA[ ... ]]> ) ?
En l'état, j'ai défini mon paramètre comme étant de type chaîne, mais si
depuis la page de test je lui passe du xml, j'obtiens logiquement cette
erreur :
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>Le document XML n'a pas pu être chargé.</faultstring>
<detail>Que s'est-il passé ?
Le document XML n'a pas pu être chargé.
Code erreur : 40057
Niveau : erreur non fatale (EL_ONRETURN)
Message d'erreur système :
Ligne 1, Colonne 86 : XML declaration allowed only at the start of the
document
Dump de l'erreur du module 'wd190xml.dll' (19.0.68.0).
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Le code de construction de la requête généré par windev :
function construitxml()
{
var requete;
requete="<soap:Envelope
xmlns:soap=\"http:
xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\"><soap:Body>";
requete = requete + "<PARAM1 xsd:type=\"xsd:string\"
xmlns=\"urn:WS_MONWS\">";
requete = requete + document.valeur.PARAM1.value;
requete = requete + "</PARAM1>";
requete = requete + "</soap:Body></soap:Envelope>";
document.xmlform.xml.value=requete;
document.xmlform.action.value="urn:WS_MONWS/Test";
document.xmlform.submit();
}
Merci à vous.
Stéphane