Edit report at https://bugs.php.net/bug.php?id=50997&edit=1
ID: 50997 Comment by: christian dot achatz at payback dot net 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: This issue is also reproducable for PHP 5.3.8. It would be kind to fix it very soon. Previous Comments: ------------------------------------------------------------------------ [2011-05-17 11:09:02] yozik04 at gmail dot com 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? ------------------------------------------------------------------------ [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 https://bugs.php.net/bug.php?id=50997&edit=1