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>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>
merci
A@++