From:             mcordell at authorize dot net
Operating system: Windows XP Pro
PHP version:      5.2.5
PHP Bug Type:     SOAP related
Bug description:  SOAP not sent properly from client for <choice>.

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>



-- 
Edit bug report at http://bugs.php.net/?id=43723&edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=43723&r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=43723&r=trysnapshot52
Try a CVS snapshot (PHP 5.3): 
http://bugs.php.net/fix.php?id=43723&r=trysnapshot53
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=43723&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=43723&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=43723&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=43723&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=43723&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=43723&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=43723&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=43723&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=43723&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=43723&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=43723&r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=43723&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=43723&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=43723&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=43723&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=43723&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=43723&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=43723&r=mysqlcfg

Reply via email to