From: "Gary ." on 12 May 2010 06:53 Let's if anyone can come up with a non-brittle solution to this. In order to create the framework code for a webservice client I have generated it from the server's wsdl. Unfortunately the wsdl (which is out of my control) tries to use "extension base=..." to say that 'B' "extends"/"inherits from " 'A', and the tool I use doesn't understand it, with the result that the generated code doesn't include that relatonship, and so sending a 'B' to the webservice doesn't work because it doesn't also include the expected properties of 'A'. Possible solutions I have thought of are: * create 'C', inheriting from 'A' and 'B' and send one of those instead, but of course php doesn't support multiple-inheritance; * manually change 'B' so that it does inherit from 'A'. I don't like this because if the wsdl changes then that client-side code needs to again be changed manually. * use composition instead. Doesn't seem it will work because the marshalling of the objects seems to want to use the properties directly (i.e. instead of using getters as it "should" do). Does anyone have any other ideas? Are there any generators out there that handle something like: <s:complexType name="B"> <s:complexContent mixed="false"> <s:extension base="tns:A"> .... </s:complexType> and produce nusoap client code?
From: Richard Quadling on 12 May 2010 08:36 On 12 May 2010 11:53, Gary . <php-general(a)garydjones.name> wrote: > Let's if anyone can come up with a non-brittle solution to this. > > In order to create the framework code for a webservice client I > have generated it from the server's wsdl. Unfortunately the wsdl > (which is out of my control) tries to use "extension base=..." > to say that 'B' "extends"/"inherits from " 'A', and the tool I > use doesn't understand it, with the result that the generated > code doesn't include that relatonship, and so sending a 'B' to > the webservice doesn't work because it doesn't also include the > expected properties of 'A'. > > Possible solutions I have thought of are: > > * create 'C', inheriting from 'A' and 'B' and send one of those > Â instead, but of course php doesn't support multiple-inheritance; > > * manually change 'B' so that it does inherit from 'A'. I don't > Â like this because if the wsdl changes then that client-side > Â code needs to again be changed manually. > > * use composition instead. Doesn't seem it will work because the > Â marshalling of the objects seems to want to use the properties > Â directly (i.e. instead of using getters as it "should" do). > > Does anyone have any other ideas? > > Are there any generators out there that handle something like: > <s:complexType name="B"> > Â <s:complexContent mixed="false"> > Â <s:extension base="tns:A"> > ... > </s:complexType> > and produce nusoap client code? Can you provide a URL for the wsdl file please? -- ----- Richard Quadling "Standing on the shoulders of some very clever giants!" EE : http://www.experts-exchange.com/M_248814.html EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 ZOPA : http://uk.zopa.com/member/RQuadling
|
Pages: 1 Prev: 2D barcodes Next: function/class to convert IDN (Puny-Code)? |