There are around 900 operations organized in 12 interfaces. So I was thinking implementing 12 classes with methods being the actual RPC call to the application (with ZincHTTP).
I'll try one operation first, then I'll see if it's possible to generate these 900 methods from the WSDL files...
At its lowest level SOAP is pretty straightforward: HTTP POST a huge bunch of XML, get a huge bunch of XML back. You could use some spider/debugger to look at a successful client/server interaction and take the XML and somehow parameterize it. It would be a terrible hack,
I know :) Here is what I get with wireshark : POST /TDOptions HTTP/1.1 Host: theHost:8080 Connection: Keep-Alive User-Agent: PHP-SOAP/5.3.3 Content-Type: text/xml; charset=utf-8 SOAPAction: "urn:HpSvcW2010_RpcEncoded:IHpSvcWTDOptions#NombreEtudiantsTDOption" Content-Length: 574 Authorization: Basic Q0M6Q09OU1VMVA== <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.indexeducation.com/frahtm/HpSvcW.html" 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:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:NombreEtudiantsTDOption> <ATDOption xsi:type="ns1:THpSvcWCleTDOption">762</ATDOption> </ns1:NombreEtudiantsTDOption> </SOAP-ENV:Body></SOAP-ENV:Envelope> HTTP/1.1 200 OK Content-Type: text/xml; charset=UTF-8 Content-Length: 560 Connection: Close Proxy-Connection: Close <?xml version="1.0"?> <SOAP-ENV:Envelope 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:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <NS1:NombreEtudiantsTDOptionResponse xmlns:NS1="http://www.indexeducation.com/frahtm/HpSvcW.html"> <return xsi:type="xsd:unsignedInt">1</return> </NS1:NombreEtudiantsTDOptionResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Anyway, this is not that important and if I don't succeed, I will at least learn to use ZincHTTP :))
That would be good.
Sven