Re: [SOAP] WSDL with attributes?

From: Date: Wed, 02 May 2007 01:58:18 +0000
Subject: Re: [SOAP] WSDL with attributes?
Groups: php.soap 
Request: Send a blank email to php-soap+get-2532@lists.php.net to get a copy of this message
Thanks for the response! I'm not sure if that's what I need as that seems mostly for callback and I think I have a data structure problem in the PHP SOAP extension itself (although it's most likely my error =). To elaborate a little further, I need to make a call to the sever like the following: <soap-env:body> <myDatatype attr="myAttrValue"> <otherContent> <value>myValue</value> </otherContent> </myDataType> </soap-env:body> I've redone wsdl2php to provide me with the classes directly from the WSDL such that it will parse a WSDL so that I can call: <? $service = new SOAPSomeServiceDefinedInAWsdl(); $myDataType = new SOAPMyDataType(); $myDataType->otherContent = new SOAPOtherContent(); $myDataType->otherContent->myValue = "myValue"; $service->callSomeMethodOnTheirSoapServer($myDataType); ?> But this only produces: <soap-env:body> <myDatatype> <otherContent> <value>myValue</value> </otherContent> </myDataType> </soap-env:body> MyDataType is missing it's attribute myAttr! The wsdl2php PHP generator does keep track of attributes defined in the WSDL now (well, in my version at least), so if there's a way to make the call properly using those attributes I should be able to do it. I can tweak it so that it sets defaults on attributes if they are available, but I'm not sure if that's always going to be reliable. I assume I'm missing something like call_user_func_array, but I don't see how that helps exactly... It seems like it's a data structure problem inherent in the call... ? Thanks for the help Claus =) ~ Andrew On May 1, 2007, at 6:27 PM, Claus Jørgensen wrote: Hey You have to use call_user_func_array if you wish to call a method with a dynamical array of parameters. $service->method() is threated like normal objects in PHP. 2007/5/2, Andrew Ettinger <aettinger@airadvice.com>: How can I set up attributes? I know I can do: $result = $service->method(array("param1"=>"value", "param2"=>"value2")); But this doesn't set up attributes. Does this have to be done in an override of the __doRequest method call or something? -- Sincerely Claus Jørgensen, Denmark Mobil: +45 30 13 27 32 http://www.dragons-lair.org

« previous php.soap (#2532) next »