envoi fichier xml à un service web

nick
Invité n'ayant pas de compte PHPfrance

06 oct. 2005, 10:25

salut à tous

je dois développer un client soap en php4 interrogeant un serviceweb.
ce client doit envoyer au service un fichier XML du type :

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE inquiry_1_1 SYSTEM "inquiry_1_1.dtd"> <inquiry_1_1> <header> <customer-number>309849</customer-number> <reference-number>test</reference-number> </header> <items> <item> <item-number>1</item-number> <ean>3398915771380</ean> <order-quantity>1</order-quantity> </item> </items> </inquiry_1_1>
Je regarde donc comment fonctionne SOAP avec php4.
Il faut utiliser une librairie au choix PEAR soap ou nusoap, mon choix se fait sur nusoap (plus utilisé il parait).
je fais quelques testes, ok ça fonctionne, mais ... qd j'interroge mon servive web, je lui envois seulement un tableau de données et non un fichier xml. C'est la class clientsoap qui se charge de transformer mes données en flux xml (la communication entre le client et le serveur soap se faisant au travers d'XML)
mais en amont, les données manipulées sont brutes.

Pour envoyer mes données, dois je parser mon fichier XML et y récupérer les données dans un tableau, ou y a t il une methode pour lui envoyer le flux xml directement.
Il me semble aussi, que le flux xml envoyé par le client est de la forme :

Code : Tout sélectionner

<?xml version="1.0"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/enco ding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body><SOAP-ENV:Fault> <faultcode>$type</faultcode><faultactor>$actor</faultactor> <faultstring>$msg</faultstring><detail><soapVal xsi:type="xsd:string"></soapV al></detail> </SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
il faudrait que je transforme la syntaxe de mon fichier xml

merci
A@++

Eléphant du PHP | 353 Messages

31 oct. 2005, 18:37

Je n'ai pas la doc sous les yeux mais il existe des méthodes du côté du serveur soap et du côté du client pour d'une part créer du côté serveur la réponse (à partir des données brutes) lié à un service donné. D'autre part côté client tu as une méthode pour parser la réponse et récupérer les types de données adéquates.