Edit report at http://bugs.php.net/bug.php?id=50997&edit=1

 ID:                 50997
 Comment by:         yozik04 at gmail dot com
 Reported by:        mrsharp at gmx dot de
 Summary:            SOAP Error when trying to submit 2nd Element of a
                     choice
 Status:             Open
 Type:               Bug
 Package:            SOAP related
 Operating System:   debian
 PHP Version:        5.2.12
 Block user comment: N
 Private report:     N

 New Comment:

I can reproduce this with PHP version 5.3.5 in Ubuntu.



Moving element around in xsd is not a solution for me.



Is there any other workaround available without touching WSDL and XSD?


Previous Comments:
------------------------------------------------------------------------
[2010-07-13 12:56:49] sebastian at rootdir dot ws

As this still seems to be an issue, here is a complete reproducer:





$soapClient = new SoapClient('service2.wsdl', array ('trace' => 1));



$params = array('code' => 'foo');

$soapClient->newOperation($params);





WSDL excerpt:



<xsd:element name="NewOperation">

  <xsd:complexType>

   <xsd:choice>

     <xsd:sequence>

       <xsd:element name="firstName" type="xsd:string"> </xsd:element>

       <xsd:element name="surName" type="xsd:string"/>

     </xsd:sequence>

     <xsd:element name="code" type="xsd:string"/></xsd:choice>

  </xsd:complexType>

</xsd:element>



(You can find the whole WSDL example file over at
http://pastebin.com/UZrPCuJt)





Actual result:



Fatal error: SOAP-ERROR: Encoding: object hasn't 'firstName' property





If you move element name "code" being the first child of <xsd:choice>
the code snippet above is working as expected.

------------------------------------------------------------------------
[2010-02-11 10:22:36] mrsharp at gmx dot de

Tested also using PHP Version 5.2.5-3 same result....

------------------------------------------------------------------------
[2010-02-10 18:08:41] mrsharp at gmx dot de

Description:
------------
My Actual PHP Version: PHP Version 5.2.11-0.dotdeb.0



not 100% sure if this relates to Bug #43723: "SOAP not sent properly
from client for <choice>" because SOAP is not sent at all in my scenario
(Fatal Error)



Part of my WSDL is this schema excerpt



<xsd:complexType name="sometype">

  <xsd:choice>

   <xsd:group ref="sd:someGroupDefA"/>

   <xsd:group ref="sd:someGroupDefB"/>

  </xsd:choice> ....



A SOAP operation now employs this type... if I attempt to submit a
property set which resembles "someGroupDefB" I receive a 



SOAP-ERROR: Encoding: object hasn't someGroupDefA property 



so it seems that choice is not properly evalutated...







Expected result:
----------------
I expect that SOAP accepts both sets of parameters without complaining
about the other missing...



------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=50997&edit=1

Reply via email to