[Sorry for posting this so many times, I tried to cancel a duplicate posting in the newsgroup, and I think left the impression I'd resolved the problem, which was not so...] Attempting to set up PEAR::SOAP server to be accessed using Microsoft Soap Toolkit 3 extensions - I'm testing by writing VBScript in ASP pages... Using the example server for the PEAR::SOAP (I have not included code framents from these, let me know if they are needed, I assume if you know PHP::SOAP you have access to these), I am able to access the server using the example PHP client, but, in some cases, have had problems when using the MSSOAP3 toolkit client. PEAR::SOAP version 7.5 and CVS updated files per today tried. For instance, for the 'divide' method of the example PHP server works when , when accessed by the PHP client, but with the MSSOAP client, complains it exected type 'int' for the input parameters, rather than type 'string'. For the examples where the expected type is string, it is possible to exchange data without problems. Within the SOAP_Example_Server class definition, the input parameters are indeed set as 'int' for the 'divide' function. A quick comparison of the XML message send by the PHP client and MSSOAP client showed that the PHP client did indeed specify the type, whereas the MSSOAPclient did not. While it seems to be possible to use the lower level API in MSSOAP to consruct the message manually, that is not desirable as it removes me from the simplicty that is what writing a SOAP client is supposed to be about. I'm a systems administrator, so the simpler the better ;) Is there a way, at the server end, that it is possible to force the interpretation on a message part to be a particular type, as from my experience above, it seems the server is assuming the type to be a string unless it is expicitly set by the client? PHP client code fragment ------------------------ $ret = $soapclient->call("divide", $params = array("dividend"=>22,"divisor"=>7), $options); PHP client SOAP request message fragment ---------------------------------------- SOAPAction: "urn:SOAP_Example_Server#soap_example_server#divide" <?xml version="1.0" encoding="UTF-8"?> <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/" xmlns:ns4="urn:SOAP_Example_Server" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns4:divide> <dividend xsi:type="xsd:int">22</dividend> <divisor xsi:type="xsd:int">7</divisor></ns4:divide> </SOAP-ENV:Body> </SOAP-ENV:Envelope> MSSOAP toolkit 3 request message fragment ----------------------------------------- SOAPAction: "urn:SOAP_Example_Server#soap_example_server#divide" Content-Type: text/xml; charset="UTF-8" User-Agent: SOAP Toolkit 3.0 Host: mailer.swishzone.com Content-Length: 537 Connection: Keep-Alive Cache-Control: no-cache Pragma: no-cache <?xml version="1.0" encoding="UTF-8" standalone="no"?><SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAPSDK4:divide xmlns:SOAPSDK4="urn:SOAP_Example_Server"> <dividend>22</dividend> <divisor>7</divisor> </SOAPSDK4:divide> </SOAP-ENV:Body></SOAP-ENV:Envelope> MSSOAP toolkit 3 response message fragment ------------------------------------------ <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode xsi:type="xsd:QName">SOAP-ENV:Client</faultcode> <faultstring xsi:type="xsd:string">soap request contained mismatching parameters of name dividend had type [string], which did not match signature's type: [int], matched? -10</faultstring> <faultactor xsi:type="xsd:anyURI"></faultactor> <detail xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="Struct[6]" SOAP-ENC:offset="[0]"> <item> <file xsi:type="xsd:string">/usr/local/lib/php/SOAP/Fault.php</file> <line xsi:type="xsd:int">49</line> <function xsi:type="xsd:string">pear_error</function> <class xsi:type="xsd:string">pear_error</class> <type xsi:type="xsd:string">::</type> <args xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:anyType[5]" SOAP-ENC:offset="[0]"> <item xsi:type="xsd:string">soap request contained mismatching parameters of name dividend had type [string], which did not match signature's type: [int], matched? -10</item> <item xsi:type="xsd:string">Client</item> . . . etc -- PHP Soap Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php