SOAP not sent properly from client for <choice>.
| Bug #43723 | SOAP not sent properly from client for <choice>. | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2007-12-31 20:34 UTC | Modified: | 2008-10-16 15:50 UTC |
|
||||||||||
| From: | mcordell at authorize dot net | Assigned: | dmitry (profile) | |||||||||||
| Status: | Closed | Package: | SOAP related | |||||||||||
| PHP Version: | 5.2.5 | OS: | Windows XP Pro | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2007-12-31 20:34 UTC] mcordell at authorize dot net
Description: ------------ The wsdl contains a <choice> element. When the SOAP client sends the first element of the choice (ItemA) it works but if it sends the second one (ItemB) instead, the xml does not get sent. Reproduce code: --------------- The WSDL can be found HERE: http://www.youshare.com/view.php?file=BoxWebService.wsdl.txt <?php class ItemA { public $myname; } class ItemB { public $mynumber; } class Box { public $myitemA; public $myitemB; } class Foo { public $mybox; } $ws = new SoapClient("http://someurl.com/BoxWebService.asmx?wsdl", array('trace' => 1)); $req = new Foo(); $req->mybox = new Box(); if (FALSE) { $req->mybox->myitemA = new ItemA(); $req->mybox->myitemA->myname = "somename"; } else { $req->mybox->myitemB = new ItemB(); $req->mybox->myitemB->mynumber = 123; } $resp = $ws->__soapCall("Foo", array("Foo" => $req)); echo "Raw request: " . htmlspecialchars($ws->__getLastRequest()) . "<br><br>"; echo "Raw response: " . htmlspecialchars($ws->__getLastResponse()) . "<br><br>"; echo htmlspecialchars($resp->FooResult) . "<br><br>"; ?> Expected result: ---------------- <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://someurl.com/BoxWebService/"><SOAP-ENV:Body><ns1:Foo><ns1:mybox><ns1:myitemB><ns1:mynumber>123</ns1:mynumber></ns1:myitemB></ns1:mybox></ns1:Foo></SOAP-ENV:Body></SOAP-ENV:Envelope> Actual result: -------------- <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://someurl.com/BoxWebService/"><SOAP-ENV:Body><ns1:Foo><ns1:mybox/></ns1:Foo></SOAP-ENV:Body></SOAP-ENV:Envelope>
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2008-10-07 12:57 UTC] dmitry@php.net
[2008-10-15 01:00 UTC] php-bugs at lists dot php dot net
[2008-10-16 15:50 UTC] dmitry@php.net