ID: 40318 User updated by: bink at eezi dot net dot au Reported By: bink at eezi dot net dot au -Status: Feedback +Status: Open Bug Type: SOAP related Operating System: Redhat PHP Version: 5.2.0 Assigned To: dmitry New Comment:
The WSDL shouldn't affect the encoding, unfortunately due to NDA issues, I can't send it to you... The error can be replicated with or without wsdl operation, the namespace still isn't set for object properties when the object is encoded with a namespace. Previous Comments: ------------------------------------------------------------------------ [2007-02-15 10:51:03] [EMAIL PROTECTED] Pleaseprovide the WSDL file. I am not able to check your example without it. ------------------------------------------------------------------------ [2007-02-06 00:45:18] bink at eezi dot net dot au I'm not able to test cvs, this is being used on our development and production servers. If there is someone else out there with a server running cvs I coule setup a trial on it to see... Just need shell access on a normal user.... ------------------------------------------------------------------------ [2007-02-05 20:38:22] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.2-win32-latest.zip ------------------------------------------------------------------------ [2007-02-02 06:31:12] bink at eezi dot net dot au The Namespaces on the Actual result are incorrect, they should match up with the Expected result.... ------------------------------------------------------------------------ [2007-02-02 06:05:27] bink at eezi dot net dot au Description: ------------ Possibly a documentation issue ===================================== When using a php object to create SOAP request headers, the SoapVAR($obj, SOAP_ENC_OBJECT....) and SoapHeader($namespace, $name, $soapvar) does not set the namespace of the object properties to the same as the object itself. Reproduce code: --------------- $client = new SOAPClient($wsdl, array('trace' => '1')); class headers { function __construct($val1, $val2){ $this->val1 = $val1; $this->val2 = $val2; } } $obj = new headers('val1','val2'); $svval=new SoapVar($obj,SOAP_ENC_OBJECT, NULL, NULL, "", "http://url.com/namespace2"); $header = new SoapHeader("http://url.com/namespace2", "SoapHeaderMsg", $svval, false); $client->__setSoapHeaders(array($header)); $client->ping(); print_r($client->__getLastRequest()); Expected result: ---------------- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://url.com/namespace1" xmlns:ns2="http://url.com/namespace2"> <SOAP-ENV:Header> <ns2:SoapHeaderMsg> <ns2:val1>val1</val1> <ns2:val2>val2</val2> </ns2:SoapHeaderMsg> </SOAP-ENV:Header> <SOAP-ENV:Body> <ns1:PingRequest/> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Actual result: -------------- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://ow.optus.com.au/b2b/bwsgservices/schema/version/2.0/bilpm" xmlns:ns2="http://ow.optus.com.au/b2b/xwsgservices/schema/wscommon"> <SOAP-ENV:Header> <ns2:SoapHeaderMsg> <val1>val1</val1> <val2>val2</val2> </ns2:SoapHeaderMsg> </SOAP-ENV:Header> <SOAP-ENV:Body> <ns1:PingRequest/> </SOAP-ENV:Body> </SOAP-ENV:Envelope> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=40318&edit=1