<?xml version="1.0"?>
<?xml-stylesheet
href="http://www.w3.org/2000/08/w3c-synd/style.css" type="text/css"
?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel rdf:about="http://pear.php.net/bugs/search.php">
    <title>PEAR Bug Search Results</title>
    <link>http://pear.php.net/bugs/search.php?cmd=display&amp;package_name%5B0%5D=SOAP</link>
    <description>Search Results</description>
    <dc:language>en-us</dc:language>
    <dc:creator>pear-webmaster@lists.php.net</dc:creator>
    <dc:publisher>pear-webmaster@lists.php.net</dc:publisher>
    <admin:generatorAgent rdf:resource="http://pear.php.net/bugs"/>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
    <items>
     <rdf:Seq>
      <rdf:li rdf:resource="http://pear.php.net/bug/20343" />
      <rdf:li rdf:resource="http://pear.php.net/bug/20061" />
      <rdf:li rdf:resource="http://pear.php.net/bug/19462" />
      <rdf:li rdf:resource="http://pear.php.net/bug/19455" />
      <rdf:li rdf:resource="http://pear.php.net/bug/19280" />
      <rdf:li rdf:resource="http://pear.php.net/bug/19257" />
      <rdf:li rdf:resource="http://pear.php.net/bug/18893" />
      <rdf:li rdf:resource="http://pear.php.net/bug/18093" />
      <rdf:li rdf:resource="http://pear.php.net/bug/16688" />
      <rdf:li rdf:resource="http://pear.php.net/bug/16645" />
      <rdf:li rdf:resource="http://pear.php.net/bug/14920" />
      <rdf:li rdf:resource="http://pear.php.net/bug/14806" />
      <rdf:li rdf:resource="http://pear.php.net/bug/14306" />
      <rdf:li rdf:resource="http://pear.php.net/bug/14065" />
      <rdf:li rdf:resource="http://pear.php.net/bug/13552" />
      <rdf:li rdf:resource="http://pear.php.net/bug/12977" />
      <rdf:li rdf:resource="http://pear.php.net/bug/11508" />
      <rdf:li rdf:resource="http://pear.php.net/bug/8086" />
      <rdf:li rdf:resource="http://pear.php.net/bug/7634" />
      <rdf:li rdf:resource="http://pear.php.net/bug/1701" />
      <rdf:li rdf:resource="http://pear.php.net/bug/1404" />
      <rdf:li rdf:resource="http://pear.php.net/bug/1312" />

     </rdf:Seq>
    </items>
  </channel>

  <image rdf:about="http://pear.php.net/gifs/pearsmall.gif">
    <title>PEAR Bugs</title>
    <url>http://pear.php.net/gifs/pearsmall.gif</url>
    <link>http://pear.php.net/bugs</link>
  </image>

    <item rdf:about="http://pear.php.net/bug/20343">
      <title>SOAP: Bug 20343 [Open] Warning caused by not being able to define defaults for parameters</title>
      <link>http://pear.php.net/bugs/20343</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by codepunker
2014-07-09T13:40:11+00:00
PHP: 5.5.9 OS: Ubuntu 14.04 Package Version: 0.13.0

Description:
------------
I have tried to create a WSDL server using this package and I 
found the following 
issue:

When defining a &quot;__dispatch_map&quot; with one or multiple in 
parameters in the 
server, if the client calls the respective method with less 
parameters, the eval in 
WSDL.php (line: 798) throws a warning.

I have come to the conclusion that this is caused by the 
&quot;creation&quot; of the eval'd 
class which doesn't have a way of defining defaults for the 
method parameters.

I have &quot;pacthed&quot; the WSDL.php file - line: 516 as follows: 
from: $args .= '$' . 
$argname; to: $args .= '$' . $argname . '=null';

The above is just a hack of course.

P.S. The client(test script) below uses your example disco 
Server: 
http://pear.php.net/reference/SOAP-
latest/__filesource/fsource_SOAP__SOAP-
0.13.0exampledisco_server.php.html

Test script:
---------------
ini_set(&quot;display_errors&quot;, &quot;on&quot;);
ini_set(&quot;soap.wsdl_cache_enabled&quot;, 0);
require_once &quot;SOAP/Client.php&quot;;
$sw = new SOAP_WSDL (&quot;http://example.com/?wsdl&quot;); 
$proxy = $sw-&gt;getProxy();
$erg = $proxy-&gt;SayHallo (); //this method expects one parameter, but if the client doesn't specify it, the warning is thrown
echo $erg.&quot;\n&quot;;

Expected result:
----------------
Warning: Missing argument 1 for 
WebService_MP3DBService_MP3DBPort::SayHallo(), called in  
/PATH/client.php on line 16 and defined in 
/usr/share/php/SOAP/WSDL.php(798) : eval()'d code on line 7

Actual result:
--------------
Nothing to add.</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by codepunker
2014-07-09T13:40:11+00:00
PHP: 5.5.9 OS: Ubuntu 14.04 Package Version: 0.13.0

Description:
------------
I have tried to create a WSDL server using this package and I 
found the following 
issue:

When defining a &quot;__dispatch_map&quot; with one or multiple in 
parameters in the 
server, if the client calls the respective method with less 
parameters, the eval in 
WSDL.php (line: 798) throws a warning.

I have come to the conclusion that this is caused by the 
&quot;creation&quot; of the eval'd 
class which doesn't have a way of defining defaults for the 
method parameters.

I have &quot;pacthed&quot; the WSDL.php file - line: 516 as follows: 
from: $args .= '$' . 
$argname; to: $args .= '$' . $argname . '=null';

The above is just a hack of course.

P.S. The client(test script) below uses your example disco 
Server: 
http://pear.php.net/reference/SOAP-
latest/__filesource/fsource_SOAP__SOAP-
0.13.0exampledisco_server.php.html

Test script:
---------------
ini_set(&quot;display_errors&quot;, &quot;on&quot;);
ini_set(&quot;soap.wsdl_cache_enabled&quot;, 0);
require_once &quot;SOAP/Client.php&quot;;
$sw = new SOAP_WSDL (&quot;http://example.com/?wsdl&quot;); 
$proxy = $sw-&gt;getProxy();
$erg = $proxy-&gt;SayHallo (); //this method expects one parameter, but if the client doesn't specify it, the warning is thrown
echo $erg.&quot;\n&quot;;

Expected result:
----------------
Warning: Missing argument 1 for 
WebService_MP3DBService_MP3DBPort::SayHallo(), called in  
/PATH/client.php on line 16 and defined in 
/usr/share/php/SOAP/WSDL.php(798) : eval()'d code on line 7

Actual result:
--------------
Nothing to add.</pre>]]></description>
      <dc:date>2014-07-09T13:40:11+00:00</dc:date>
      <dc:creator>info &amp;#x61;&amp;#116; codepunker &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/20061">
      <title>SOAP: Bug 20061 [Open] SOAP_Transport::getTransport() should be declared static</title>
      <link>http://pear.php.net/bugs/20061</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by borgand
2013-09-10T15:04:03+00:00
PHP: 5.4.17 OS: Oracle Linux Server 6.4 (CentOS) Package Version: 0.13.0

Description:
------------
Using SOAP under PHP 5.4 produces this error:

Non-static method SOAP_Transport::getTransport() should not be 
called statically, assuming $this from incompatible context.

I have attached a patch to do this.</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by borgand
2013-09-10T15:04:03+00:00
PHP: 5.4.17 OS: Oracle Linux Server 6.4 (CentOS) Package Version: 0.13.0

Description:
------------
Using SOAP under PHP 5.4 produces this error:

Non-static method SOAP_Transport::getTransport() should not be 
called statically, assuming $this from incompatible context.

I have attached a patch to do this.</pre>]]></description>
      <dc:date>2013-09-10T15:04:03+00:00</dc:date>
      <dc:creator>laas &amp;#x64;&amp;#111;&amp;#x74; toom &amp;#x61;&amp;#116; gmail &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/19462">
      <title>SOAP: Bug 19462 [Open] Error in library</title>
      <link>http://pear.php.net/bugs/19462</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by jscarr2
2012-06-07T21:56:34+00:00
PHP: 5.3.0 OS: ubuntu 10.0.4 Package Version: 0.13.0

Description:
------------
the error is ---&gt; Undefined index: partns in /lamp/php/lib/php/SOAP/Client.php on line 611

Can help me?</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by jscarr2
2012-06-07T21:56:34+00:00
PHP: 5.3.0 OS: ubuntu 10.0.4 Package Version: 0.13.0

Description:
------------
the error is ---&gt; Undefined index: partns in /lamp/php/lib/php/SOAP/Client.php on line 611

Can help me?</pre>]]></description>
      <dc:date>2012-06-07T21:56:34+00:00</dc:date>
      <dc:creator>jscarr2 &amp;#x61;&amp;#116; gmail &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/19455">
      <title>SOAP: Bug 19455 [Open] Server responding with an extra ; in set-cookie  throws a PHP Notice</title>
      <link>http://pear.php.net/bugs/19455</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by scott_ladoo
2012-06-05T09:17:40+00:00
PHP: 5.3.5 OS: Linux Package Version: 0.13.0

Description:
------------
If the server hosting the WSDL responds with an extra ; on 
the end of the set-cookie header, e.g.:
    Set-Cookie: domain=example.com; path=/;

Then a PHP Notice is thrown, e.g.:
    PHP Notice:  Undefined offset: 1 in 
/usr/share/php/SOAP/Transport/HTTP.php on line 304

This happens because the explode(';', $headervalue) on line 
298 creates an empty entry in the array.

The fix for this problem is to insert the following line in-
between lines 303 and 304:
    if (!empty($elements[$i])) {

And to insert the following line in-between lines 313 and 314:
    }

Test script:
---------------
require_once &quot;SOAP/Client.php&quot;;

$client = new SOAP_Client(&quot;URL&quot;, true, false, array(), false);

$params = array(
    &quot;Username&quot; =&gt; &quot;user&quot;,
    &quot;Password&quot; =&gt; &quot;pass&quot;
);

$response = $client-&gt;call(&quot;LoginUser&quot;, $params);

Actual result:
--------------
PHP Notice:  Undefined offset: 1 in 
/usr/share/php/SOAP/Transport/HTTP.php on line 304</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by scott_ladoo
2012-06-05T09:17:40+00:00
PHP: 5.3.5 OS: Linux Package Version: 0.13.0

Description:
------------
If the server hosting the WSDL responds with an extra ; on 
the end of the set-cookie header, e.g.:
    Set-Cookie: domain=example.com; path=/;

Then a PHP Notice is thrown, e.g.:
    PHP Notice:  Undefined offset: 1 in 
/usr/share/php/SOAP/Transport/HTTP.php on line 304

This happens because the explode(';', $headervalue) on line 
298 creates an empty entry in the array.

The fix for this problem is to insert the following line in-
between lines 303 and 304:
    if (!empty($elements[$i])) {

And to insert the following line in-between lines 313 and 314:
    }

Test script:
---------------
require_once &quot;SOAP/Client.php&quot;;

$client = new SOAP_Client(&quot;URL&quot;, true, false, array(), false);

$params = array(
    &quot;Username&quot; =&gt; &quot;user&quot;,
    &quot;Password&quot; =&gt; &quot;pass&quot;
);

$response = $client-&gt;call(&quot;LoginUser&quot;, $params);

Actual result:
--------------
PHP Notice:  Undefined offset: 1 in 
/usr/share/php/SOAP/Transport/HTTP.php on line 304</pre>]]></description>
      <dc:date>2012-06-05T09:17:40+00:00</dc:date>
      <dc:creator>scott &amp;#x61;&amp;#116; ladoo &amp;#x64;&amp;#111;&amp;#x74; com &amp;#x64;&amp;#111;&amp;#x74; au</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/19280">
      <title>SOAP: Bug 19280 [Open] Nullstring SOAP_Value serialize to invalid XML</title>
      <link>http://pear.php.net/bugs/19280</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by live_gon
2012-02-07T18:20:22+00:00
PHP: 5.3.9 OS: Linux Package Version: 0.13.0

Description:
------------
Number type SOAP_Value serialize nullstring to invalid XML. Expected value is Nil.

Test script:
---------------
require_once('SOAP/Value.php');

$testtypes = array(
        'releasedatetime' =&gt; 'dateTime',
        'count' =&gt; 'int',
        'onoff' =&gt; 'boolean',
        'singlenumber' =&gt; 'float',
        'doublenumber' =&gt; 'double',
);

$soapbase = new SOAP_Base();

$values = array();
foreach($testtypes as $name=&gt;$type){
    $values[] = new  SOAP_Value($name , $type);
    $values[] = new  SOAP_Value($name , $type, '');
    $values[] = new  SOAP_Value($name , $type, 0);
}

foreach($values as $soapvalue){
    echo $soapvalue-&gt;serialize($soapbase);
}


Expected result:
----------------
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;count xsi:type=&quot;xsd:int&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;count xsi:type=&quot;xsd:int&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;count xsi:type=&quot;xsd:int&quot;&gt;0&lt;/count&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot;&gt;0&lt;/singlenumber&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot;&gt;0&lt;/doublenumber&gt;



Actual result:
--------------
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot;&gt;&lt;/releasedatetime&gt;
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot;&gt;0&lt;/releasedatetime&gt;
&lt;count xsi:type=&quot;xsd:int&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;count xsi:type=&quot;xsd:int&quot;&gt;&lt;/count&gt;
&lt;count xsi:type=&quot;xsd:int&quot;&gt;0&lt;/count&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot;&gt;&lt;/singlenumber&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot;&gt;0&lt;/singlenumber&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot;&gt;&lt;/doublenumber&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot;&gt;0&lt;/doublenumber&gt;</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by live_gon
2012-02-07T18:20:22+00:00
PHP: 5.3.9 OS: Linux Package Version: 0.13.0

Description:
------------
Number type SOAP_Value serialize nullstring to invalid XML. Expected value is Nil.

Test script:
---------------
require_once('SOAP/Value.php');

$testtypes = array(
        'releasedatetime' =&gt; 'dateTime',
        'count' =&gt; 'int',
        'onoff' =&gt; 'boolean',
        'singlenumber' =&gt; 'float',
        'doublenumber' =&gt; 'double',
);

$soapbase = new SOAP_Base();

$values = array();
foreach($testtypes as $name=&gt;$type){
    $values[] = new  SOAP_Value($name , $type);
    $values[] = new  SOAP_Value($name , $type, '');
    $values[] = new  SOAP_Value($name , $type, 0);
}

foreach($values as $soapvalue){
    echo $soapvalue-&gt;serialize($soapbase);
}


Expected result:
----------------
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;count xsi:type=&quot;xsd:int&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;count xsi:type=&quot;xsd:int&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;count xsi:type=&quot;xsd:int&quot;&gt;0&lt;/count&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot;&gt;0&lt;/singlenumber&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot;&gt;0&lt;/doublenumber&gt;



Actual result:
--------------
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot;&gt;&lt;/releasedatetime&gt;
&lt;releasedatetime xsi:type=&quot;xsd:dateTime&quot;&gt;0&lt;/releasedatetime&gt;
&lt;count xsi:type=&quot;xsd:int&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;count xsi:type=&quot;xsd:int&quot;&gt;&lt;/count&gt;
&lt;count xsi:type=&quot;xsd:int&quot;&gt;0&lt;/count&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;onoff xsi:type=&quot;xsd:boolean&quot;&gt;false&lt;/onoff&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot;&gt;&lt;/singlenumber&gt;
&lt;singlenumber xsi:type=&quot;xsd:float&quot;&gt;0&lt;/singlenumber&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot; xsi:nil=&quot;true&quot;/&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot;&gt;&lt;/doublenumber&gt;
&lt;doublenumber xsi:type=&quot;xsd:double&quot;&gt;0&lt;/doublenumber&gt;</pre>]]></description>
      <dc:date>2012-02-07T18:20:22+00:00</dc:date>
      <dc:creator>live &amp;#x64;&amp;#111;&amp;#x74; gon+pear &amp;#x61;&amp;#116; gmail &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/19257">
      <title>SOAP: Bug 19257 [Open] dateTime doesn't work in php timestamp range.</title>
      <link>http://pear.php.net/bugs/19257</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by live_gon
2012-01-30T13:12:37+00:00
PHP: 5.3.9 OS: linux Package Version: 0.13.0

Description:
------------
php timestamp range start 'Fri, 13 Dec 1901 20:45:54 GMT'.
but SOAP/Type/dateTime cannot has this.

Test script:
---------------
$citizenkanerelease= new SOAP_Type_dateTime(mktime(0,0,0,5,1,1941));
echo $citizenkanerelease-&gt;toString();

// ex) echo date('Y-m-d\TH:i:sO', mktime(0,0,0,5,1,1941));

Expected result:
----------------
1941-05-01T00:00:00+0000

Actual result:
--------------
0</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by live_gon
2012-01-30T13:12:37+00:00
PHP: 5.3.9 OS: linux Package Version: 0.13.0

Description:
------------
php timestamp range start 'Fri, 13 Dec 1901 20:45:54 GMT'.
but SOAP/Type/dateTime cannot has this.

Test script:
---------------
$citizenkanerelease= new SOAP_Type_dateTime(mktime(0,0,0,5,1,1941));
echo $citizenkanerelease-&gt;toString();

// ex) echo date('Y-m-d\TH:i:sO', mktime(0,0,0,5,1,1941));

Expected result:
----------------
1941-05-01T00:00:00+0000

Actual result:
--------------
0</pre>]]></description>
      <dc:date>2012-01-30T13:12:37+00:00</dc:date>
      <dc:creator>live &amp;#x64;&amp;#111;&amp;#x74; gon &amp;#x61;&amp;#116; gmail &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/18893">
      <title>SOAP: Bug 18893 [Open] xml-entities instead of hmtlentities in generated wsdl by disco-server.</title>
      <link>http://pear.php.net/bugs/18893</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by thg13
2011-10-06T14:39:24+00:00
PHP: 5.2.12 OS: linux Package Version: SVN

Description:
------------
I instantiate a SoapDiscoServer with description &quot;Ã¤&quot; containing german umlaut:

$disco = new SOAP_DISCO_Server($server,'test', &quot;Ã¤&quot;);

The generated wsdl has the not defined entity auml.
...
&lt;documentation&gt;Ã¤&lt;/documentation&gt;
The reason is in Disco.php, RV 302446 line 138:
$this-&gt;_wsdl['definitions']['service']['documentation'] = htmlentities($this-&gt;_service_desc);


Test script:
---------------
$disco = new SOAP_DISCO_Server($server,'test', &quot;Ã¤&quot;);
echo $disco-&gt;getWSDL();

Expected result:
----------------
wsdl:
...
&lt;documentation&gt;&amp; #228;&lt;/documentation&gt;
(without blank)


Actual result:
--------------
wsdl:
...
&lt;documentation&gt;&amp; auml;&lt;/documentation&gt;
(without blank)</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by thg13
2011-10-06T14:39:24+00:00
PHP: 5.2.12 OS: linux Package Version: SVN

Description:
------------
I instantiate a SoapDiscoServer with description &quot;Ã¤&quot; containing german umlaut:

$disco = new SOAP_DISCO_Server($server,'test', &quot;Ã¤&quot;);

The generated wsdl has the not defined entity auml.
...
&lt;documentation&gt;Ã¤&lt;/documentation&gt;
The reason is in Disco.php, RV 302446 line 138:
$this-&gt;_wsdl['definitions']['service']['documentation'] = htmlentities($this-&gt;_service_desc);


Test script:
---------------
$disco = new SOAP_DISCO_Server($server,'test', &quot;Ã¤&quot;);
echo $disco-&gt;getWSDL();

Expected result:
----------------
wsdl:
...
&lt;documentation&gt;&amp; #228;&lt;/documentation&gt;
(without blank)


Actual result:
--------------
wsdl:
...
&lt;documentation&gt;&amp; auml;&lt;/documentation&gt;
(without blank)</pre>]]></description>
      <dc:date>2011-10-06T18:37:12+00:00</dc:date>
      <dc:creator>thomas &amp;#x64;&amp;#111;&amp;#x74; gabler &amp;#x61;&amp;#116; gmx &amp;#x64;&amp;#111;&amp;#x74; de</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/18093">
      <title>SOAP: Bug 18093 [Open] SOAP_Value type wrongly set to array</title>
      <link>http://pear.php.net/bugs/18093</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by newaira
2010-12-03T00:05:53+00:00
PHP: 5.2.12 OS: Win7 Package Version: 0.12.0

Description:
------------
SOAP_Value with an array of exactly two nested SOAP_Values is always forced to type Array, and doesn't use a specified type.

The bug can be traced to Base.php on line 650:

                // For non-wsdl structs that are all the same type
                reset($value);
---&gt;                $value1 = next($value);
                $value2 = next($value);

Replace:
$value1 = next($value);

With:
$value1 = current($value);

Test script:
---------------
new SOAP_Value(
	'authentication',
	'{Authentication}local',
	array (
		new SOAP_Value(
			'user',
			'string',
			'myusername'
		),
		new SOAP_Value(
			'password',
			'string',
			'mypassword'
		),
	)
),

Expected result:
----------------
&lt;authentication xsi:type=&quot;ns5:local&quot;&gt;
	&lt;user xsi:type=&quot;xsd:string&quot;&gt;myusername&lt;/user&gt;
	&lt;password xsi:type=&quot;xsd:string&quot;&gt;mypassword&lt;/password&gt;
&lt;/authentication&gt;

Actual result:
--------------
&lt;authentication xsi:type=&quot;SOAP-ENC:Array&quot; SOAP-ENC:arrayType=&quot;xsd:string[2]&quot;&gt;
	&lt;user xsi:type=&quot;xsd:string&quot;&gt;myusername&lt;/user&gt;
	&lt;password xsi:type=&quot;xsd:string&quot;&gt;mypassword&lt;/password&gt;
&lt;/authentication&gt;</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by newaira
2010-12-03T00:05:53+00:00
PHP: 5.2.12 OS: Win7 Package Version: 0.12.0

Description:
------------
SOAP_Value with an array of exactly two nested SOAP_Values is always forced to type Array, and doesn't use a specified type.

The bug can be traced to Base.php on line 650:

                // For non-wsdl structs that are all the same type
                reset($value);
---&gt;                $value1 = next($value);
                $value2 = next($value);

Replace:
$value1 = next($value);

With:
$value1 = current($value);

Test script:
---------------
new SOAP_Value(
	'authentication',
	'{Authentication}local',
	array (
		new SOAP_Value(
			'user',
			'string',
			'myusername'
		),
		new SOAP_Value(
			'password',
			'string',
			'mypassword'
		),
	)
),

Expected result:
----------------
&lt;authentication xsi:type=&quot;ns5:local&quot;&gt;
	&lt;user xsi:type=&quot;xsd:string&quot;&gt;myusername&lt;/user&gt;
	&lt;password xsi:type=&quot;xsd:string&quot;&gt;mypassword&lt;/password&gt;
&lt;/authentication&gt;

Actual result:
--------------
&lt;authentication xsi:type=&quot;SOAP-ENC:Array&quot; SOAP-ENC:arrayType=&quot;xsd:string[2]&quot;&gt;
	&lt;user xsi:type=&quot;xsd:string&quot;&gt;myusername&lt;/user&gt;
	&lt;password xsi:type=&quot;xsd:string&quot;&gt;mypassword&lt;/password&gt;
&lt;/authentication&gt;</pre>]]></description>
      <dc:date>2010-12-03T00:05:53+00:00</dc:date>
      <dc:creator>andrej &amp;#x64;&amp;#111;&amp;#x74; pavlovic &amp;#x61;&amp;#116; gmail &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/16688">
      <title>SOAP: Bug 16688 [Open] SOAP_Call with 'raw' input-string doesn't work</title>
      <link>http://pear.php.net/bugs/16688</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by mauz
2009-10-09T20:53:43+00:00
PHP: 5.2.5 OS: Debian Package Version: 0.12.0

Description:
------------
For testing purposes I tried to send a 'raw' SOAP Request to the Server. 

This doesn't work because the second Parameter of the call function is being converted to an array in function _generate (line 527 of Client.php).

When _options['input'] is not 'parse', then this conversion must be reversed in function makeEnvelope (line 910 of Base.php):

&lt; $smsg = $method;                     &lt;= wrong
&gt; $smsg = $method[0];                 &lt;= corrected


Test script:
---------------
$wsdl_uri = 'http://domain.de/operation?WSDL';
$client =&amp; new SOAP_Client($wsdl_uri, true);
$opts = array ('input' =&gt; 'raw', 'trace' =&gt; true);
$q = '';
$res = $client-&gt;call('getAdresse', $q, $opts, &quot;&quot;);
print_r($res);


Expected result:
----------------
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;SOAP-ENV:Envelope
 xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;
 xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
&lt;SOAP-ENV:Body&gt;&lt;ns1:getAdresseElement xmlns:ns1=&quot;http://domain.de/types/&quot;&gt;&lt;ns1:ID&gt;1199102&lt;/ns1:ID&gt;&lt;/ns1:getAdresseElement&gt;
&lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;

Actual result:
--------------
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;SOAP-ENV:Envelope
 xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;
 xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
&lt;SOAP-ENV:Body&gt;Array
&lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by mauz
2009-10-09T20:53:43+00:00
PHP: 5.2.5 OS: Debian Package Version: 0.12.0

Description:
------------
For testing purposes I tried to send a 'raw' SOAP Request to the Server. 

This doesn't work because the second Parameter of the call function is being converted to an array in function _generate (line 527 of Client.php).

When _options['input'] is not 'parse', then this conversion must be reversed in function makeEnvelope (line 910 of Base.php):

&lt; $smsg = $method;                     &lt;= wrong
&gt; $smsg = $method[0];                 &lt;= corrected


Test script:
---------------
$wsdl_uri = 'http://domain.de/operation?WSDL';
$client =&amp; new SOAP_Client($wsdl_uri, true);
$opts = array ('input' =&gt; 'raw', 'trace' =&gt; true);
$q = '';
$res = $client-&gt;call('getAdresse', $q, $opts, &quot;&quot;);
print_r($res);


Expected result:
----------------
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;SOAP-ENV:Envelope
 xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;
 xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
&lt;SOAP-ENV:Body&gt;&lt;ns1:getAdresseElement xmlns:ns1=&quot;http://domain.de/types/&quot;&gt;&lt;ns1:ID&gt;1199102&lt;/ns1:ID&gt;&lt;/ns1:getAdresseElement&gt;
&lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;

Actual result:
--------------
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;SOAP-ENV:Envelope
 xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;
 xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
&lt;SOAP-ENV:Body&gt;Array
&lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;</pre>]]></description>
      <dc:date>2009-10-09T20:53:43+00:00</dc:date>
      <dc:creator>Hartmut &amp;#x64;&amp;#111;&amp;#x74; Wilhelms &amp;#x61;&amp;#116; arcor &amp;#x64;&amp;#111;&amp;#x74; de</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/16645">
      <title>SOAP: Feature/Change Request 16645 [Verified] &quot;application/soap+xml&quot; Transport Media Type Support</title>
      <link>http://pear.php.net/bugs/16645</link>
      <content:encoded><![CDATA[<pre>SOAP Feature/Change Request
Reported by mauz
2009-09-25T21:57:11+00:00
PHP: 5.2.5 OS: Debian Package Version: 0.12.0

Description:
------------
The Oracle-Application-Server-10g/10.1.3.1.0 does not understand the &quot;Content-Type: text/xml ...&quot; and always throws an VersionMismatch Error.

This Error disappeared, when I set this to &quot;Content-Type: application/soap+xml ...&quot; as specified in Appendix A of the SOAP Version 1.2 Part 2 Specification.

I Propose a new Option for call with the Name 'media_type', which specifies the String after Content-Type and before charset within the HTTP Header.

This could be realized by the following lines of code within Transport/HTTP.php (about line 449):

if (isset($options['media_type'])) {
            $this-&gt;headers['Content-Type'] = $options['media_type'].&quot;; charset=$this-&gt;encoding&quot;;
        } else {
            $this-&gt;headers['Content-Type'] = &quot;text/xml; charset=$this-&gt;encoding&quot;;
        }


Test script:
---------------
$client =&amp; new SOAP_Client(&lt;url&gt;);

$opts = array (
        'trace'         =&gt; true,
        'media_type'    =&gt; 'application/soap+xml',
        .... );

$res = $client-&gt;call (&lt;method&gt;, &lt;values&gt;, $opts);


Expected result:
----------------
POST /path    HTTP/1.0
User-Agent: PEAR-SOAP 0.12.0-beta
Host: vsrv25.domain.de
Content-Type: application/soap+xml; charset=UTF-8
Content-Length: 372
SOAPAction: &quot;http://service.domain.de//method&quot;
Connection: close


Actual result:
--------------
POST /path HTTP/1.0
User-Agent: PEAR-SOAP 0.12.0-beta
Host: vsrv25.domain.de
Content-Type: text/xml; charset=UTF-8
Content-Length: 372
SOAPAction: &quot;http://service.domain.de//method&quot;
Connection: close</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Feature/Change Request
Reported by mauz
2009-09-25T21:57:11+00:00
PHP: 5.2.5 OS: Debian Package Version: 0.12.0

Description:
------------
The Oracle-Application-Server-10g/10.1.3.1.0 does not understand the &quot;Content-Type: text/xml ...&quot; and always throws an VersionMismatch Error.

This Error disappeared, when I set this to &quot;Content-Type: application/soap+xml ...&quot; as specified in Appendix A of the SOAP Version 1.2 Part 2 Specification.

I Propose a new Option for call with the Name 'media_type', which specifies the String after Content-Type and before charset within the HTTP Header.

This could be realized by the following lines of code within Transport/HTTP.php (about line 449):

if (isset($options['media_type'])) {
            $this-&gt;headers['Content-Type'] = $options['media_type'].&quot;; charset=$this-&gt;encoding&quot;;
        } else {
            $this-&gt;headers['Content-Type'] = &quot;text/xml; charset=$this-&gt;encoding&quot;;
        }


Test script:
---------------
$client =&amp; new SOAP_Client(&lt;url&gt;);

$opts = array (
        'trace'         =&gt; true,
        'media_type'    =&gt; 'application/soap+xml',
        .... );

$res = $client-&gt;call (&lt;method&gt;, &lt;values&gt;, $opts);


Expected result:
----------------
POST /path    HTTP/1.0
User-Agent: PEAR-SOAP 0.12.0-beta
Host: vsrv25.domain.de
Content-Type: application/soap+xml; charset=UTF-8
Content-Length: 372
SOAPAction: &quot;http://service.domain.de//method&quot;
Connection: close


Actual result:
--------------
POST /path HTTP/1.0
User-Agent: PEAR-SOAP 0.12.0-beta
Host: vsrv25.domain.de
Content-Type: text/xml; charset=UTF-8
Content-Length: 372
SOAPAction: &quot;http://service.domain.de//method&quot;
Connection: close</pre>]]></description>
      <dc:date>2009-10-05T17:34:38+00:00</dc:date>
      <dc:creator>Hartmut &amp;#x64;&amp;#111;&amp;#x74; Wilhelms &amp;#x61;&amp;#116; arcor &amp;#x64;&amp;#111;&amp;#x74; de</dc:creator>
      <dc:subject>SOAP Feature/Change Request</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/14920">
      <title>SOAP: Feature/Change Request 14920 [Open] Cannot read attributes</title>
      <link>http://pear.php.net/bugs/14920</link>
      <content:encoded><![CDATA[<pre>SOAP Feature/Change Request
Reported by dfowler81
2008-10-29T19:51:19+00:00
PHP: 5.2.0 OS: Linux Package Version: 0.12.0

Description:
------------
I have created a SOAP client that connects to a web service using WSDL.  Most of the requests and responses are using simple element tags.  Since the package places responses in an associative array, this is fine.  However, there are several requests that have attributes.  I was able to accomplish this using SOAP_Value(), but the problem is that the response also has attributes.  After reading as much documentation as I could find, I can not find a way to read these attributes.</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Feature/Change Request
Reported by dfowler81
2008-10-29T19:51:19+00:00
PHP: 5.2.0 OS: Linux Package Version: 0.12.0

Description:
------------
I have created a SOAP client that connects to a web service using WSDL.  Most of the requests and responses are using simple element tags.  Since the package places responses in an associative array, this is fine.  However, there are several requests that have attributes.  I was able to accomplish this using SOAP_Value(), but the problem is that the response also has attributes.  After reading as much documentation as I could find, I can not find a way to read these attributes.</pre>]]></description>
      <dc:date>2008-10-29T19:51:19+00:00</dc:date>
      <dc:creator>ralze34 &amp;#x61;&amp;#116; yahoo &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>SOAP Feature/Change Request</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/14806">
      <title>SOAP: Bug 14806 [Open] Wrong value for xsd:unsignedLong's greater than PHP_INT_MAX</title>
      <link>http://pear.php.net/bugs/14806</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by pet
2008-10-16T12:34:35+00:00
PHP: 5.1.2 OS:  Package Version: CVS

Description:
------------
I have a SOAPfunction that returns xsd:unsignedLong's. The PEAR::SOAP client returns a value 2147483647 (in my case equal to PHP_INT_MAX) when the value is larger than 2147483647.

An ugly workaroung would be something like this:

$client-&gt;{'_typemap'}['http://www.w3.org/2001/XMLSchema']['unsignedLong'] = 'string';

Test script:
---------------
require_once 'SOAP/Client.php';

$string = &lt;&lt;&lt;EOS
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;SOAP-ENV:Envelope  xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; xmlns:ns4=&quot;http://soapinterop.org/&quot; SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;&lt;SOAP-ENV:Body&gt; &lt;ns4:phpIntMaxResponse&gt;&lt;total xsi:type=&quot;xsd:unsignedLong&quot;&gt;2853166989&lt;/total&gt;&lt;/ns4:phpIntMaxResponse&gt;&lt;/SOAP-ENV:Body&gt;&lt;/SOAP-ENV:Envelope&gt;
EOS;

$client = new SOAP_Client();
# Ugly workaround:
#  $client-&gt;{'_typemap'}['http://www.w3.org/2001/XMLSchema']['unsignedLong'] = 'string';
print($client-&gt;parseResponse($string)).&quot;\n&quot;;


Expected result:
----------------
2853166989

Actual result:
--------------
2147483647</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by pet
2008-10-16T12:34:35+00:00
PHP: 5.1.2 OS:  Package Version: CVS

Description:
------------
I have a SOAPfunction that returns xsd:unsignedLong's. The PEAR::SOAP client returns a value 2147483647 (in my case equal to PHP_INT_MAX) when the value is larger than 2147483647.

An ugly workaroung would be something like this:

$client-&gt;{'_typemap'}['http://www.w3.org/2001/XMLSchema']['unsignedLong'] = 'string';

Test script:
---------------
require_once 'SOAP/Client.php';

$string = &lt;&lt;&lt;EOS
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;SOAP-ENV:Envelope  xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; xmlns:ns4=&quot;http://soapinterop.org/&quot; SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;&lt;SOAP-ENV:Body&gt; &lt;ns4:phpIntMaxResponse&gt;&lt;total xsi:type=&quot;xsd:unsignedLong&quot;&gt;2853166989&lt;/total&gt;&lt;/ns4:phpIntMaxResponse&gt;&lt;/SOAP-ENV:Body&gt;&lt;/SOAP-ENV:Envelope&gt;
EOS;

$client = new SOAP_Client();
# Ugly workaround:
#  $client-&gt;{'_typemap'}['http://www.w3.org/2001/XMLSchema']['unsignedLong'] = 'string';
print($client-&gt;parseResponse($string)).&quot;\n&quot;;


Expected result:
----------------
2853166989

Actual result:
--------------
2147483647</pre>]]></description>
      <dc:date>2008-12-28T01:17:02+00:00</dc:date>
      <dc:creator>pear &amp;#x61;&amp;#116; painfullscratch &amp;#x64;&amp;#111;&amp;#x74; nl</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/14306">
      <title>SOAP: Bug 14306 [Verified] SOAP_Server_TCP not generate response for SOAP_Fault</title>
      <link>http://pear.php.net/bugs/14306</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by tomaszrup
2008-07-07T23:11:32+00:00
PHP: 5.2.6 OS: Mandriva Linux Package Version: 0.11.0

Description:
------------
TCP SOAP server crash when soap method return  SOAP_Fault object.

Test script:
---------------
server:
&lt;?php
require_once 'SOAP/Server/TCP.php';
$skiptrace =&amp; PEAR::getStaticProperty('PEAR_Error', 'skiptrace');
$skiptrace = true;

class SOAP_Example_Server {
        public $__dispatch_map = array();

        public function __construct() {
                $this-&gt;__dispatch_map['test'] = array(
                        'in' =&gt; array('inputString' =&gt; 'string'),
                        'out' =&gt; array('outputString' =&gt; 'string'),
                );
        }


        public function __dispatch($methodname) {
                if (isset($this-&gt;__dispatch_map[$methodname]))
                        return $this-&gt;__dispatch_map[$methodname];
                return NULL;
        }

        public function test($inputString) {
                return new SOAP_Fault('Fault!', 'Server');
        }
}

$server = new SOAP_Server_TCP('127.0.0.1', 10102);
$server-&gt;_auto_translation = true;

$soapclass = new SOAP_Example_Server;
$server-&gt;addObjectMap($soapclass,'urn:SOAP_Example_Server');
$server-&gt;run();
?&gt;

client:
&lt;?php
require_once('SOAP/Client.php');
$soapclient = new SOAP_Client(&quot;tcp://127.0.0.1:10102&quot;);
$options = array('namespace' =&gt; 'urn:SOAP_Example_Server', 'trace' =&gt; true);

$params = array(&quot;inputString&quot; =&gt; &quot;this is string 1&quot;);
$ret = $soapclient-&gt;call(&quot;test&quot;, $params, $options);

echo PEAR::isError($ret) ? $ret-&gt;getMessage() : $ret;
?&gt;

Expected result:
----------------
Fault!

Actual result:
--------------
Error reveiving data from tcp://127.0.0.1:10102</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by tomaszrup
2008-07-07T23:11:32+00:00
PHP: 5.2.6 OS: Mandriva Linux Package Version: 0.11.0

Description:
------------
TCP SOAP server crash when soap method return  SOAP_Fault object.

Test script:
---------------
server:
&lt;?php
require_once 'SOAP/Server/TCP.php';
$skiptrace =&amp; PEAR::getStaticProperty('PEAR_Error', 'skiptrace');
$skiptrace = true;

class SOAP_Example_Server {
        public $__dispatch_map = array();

        public function __construct() {
                $this-&gt;__dispatch_map['test'] = array(
                        'in' =&gt; array('inputString' =&gt; 'string'),
                        'out' =&gt; array('outputString' =&gt; 'string'),
                );
        }


        public function __dispatch($methodname) {
                if (isset($this-&gt;__dispatch_map[$methodname]))
                        return $this-&gt;__dispatch_map[$methodname];
                return NULL;
        }

        public function test($inputString) {
                return new SOAP_Fault('Fault!', 'Server');
        }
}

$server = new SOAP_Server_TCP('127.0.0.1', 10102);
$server-&gt;_auto_translation = true;

$soapclass = new SOAP_Example_Server;
$server-&gt;addObjectMap($soapclass,'urn:SOAP_Example_Server');
$server-&gt;run();
?&gt;

client:
&lt;?php
require_once('SOAP/Client.php');
$soapclient = new SOAP_Client(&quot;tcp://127.0.0.1:10102&quot;);
$options = array('namespace' =&gt; 'urn:SOAP_Example_Server', 'trace' =&gt; true);

$params = array(&quot;inputString&quot; =&gt; &quot;this is string 1&quot;);
$ret = $soapclient-&gt;call(&quot;test&quot;, $params, $options);

echo PEAR::isError($ret) ? $ret-&gt;getMessage() : $ret;
?&gt;

Expected result:
----------------
Fault!

Actual result:
--------------
Error reveiving data from tcp://127.0.0.1:10102</pre>]]></description>
      <dc:date>2008-07-19T07:45:02+00:00</dc:date>
      <dc:creator>tomasz &amp;#x64;&amp;#111;&amp;#x74; rup &amp;#x61;&amp;#116; gmail &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/14065">
      <title>SOAP: Bug 14065 [Open] Array Wrapped w/ Extra Tag</title>
      <link>http://pear.php.net/bugs/14065</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by rossking
2008-06-04T04:16:34+00:00
PHP: 5.2.1 OS: Linux lamp 2.6.20-16 Package Version: 0.11.0

Description:
------------
When I pass an Array to the SOAP WSDL Interface it takes each array item and wraps with the tag &lt;item&gt; and then it also wrap's with the array name and values as it should.

how do I stop the &lt;item&gt; tags, These are causing my script to fail.

Expected result:
----------------
&lt;ns4:PublicationIDs&gt;

&lt;ns4:int&gt;2&lt;/ns4:int&gt;
&lt;ns4:int&gt;3&lt;/ns4:int&gt;

&lt;/ns4:PublicationIDs&gt;


Actual result:
--------------
&lt;ns4:PublicationIDs&gt;
&lt;ns4:item&gt;
&lt;ns4:int&gt;2&lt;/ns4:int&gt;&lt;/ns4:item&gt;
&lt;ns4:item&gt;
&lt;ns4:int&gt;3&lt;/ns4:int&gt;&lt;/ns4:item&gt;&lt;/ns4:PublicationIDs&gt;</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by rossking
2008-06-04T04:16:34+00:00
PHP: 5.2.1 OS: Linux lamp 2.6.20-16 Package Version: 0.11.0

Description:
------------
When I pass an Array to the SOAP WSDL Interface it takes each array item and wraps with the tag &lt;item&gt; and then it also wrap's with the array name and values as it should.

how do I stop the &lt;item&gt; tags, These are causing my script to fail.

Expected result:
----------------
&lt;ns4:PublicationIDs&gt;

&lt;ns4:int&gt;2&lt;/ns4:int&gt;
&lt;ns4:int&gt;3&lt;/ns4:int&gt;

&lt;/ns4:PublicationIDs&gt;


Actual result:
--------------
&lt;ns4:PublicationIDs&gt;
&lt;ns4:item&gt;
&lt;ns4:int&gt;2&lt;/ns4:int&gt;&lt;/ns4:item&gt;
&lt;ns4:item&gt;
&lt;ns4:int&gt;3&lt;/ns4:int&gt;&lt;/ns4:item&gt;&lt;/ns4:PublicationIDs&gt;</pre>]]></description>
      <dc:date>2009-01-01T14:30:20+00:00</dc:date>
      <dc:creator>ross &amp;#x64;&amp;#111;&amp;#x74; king &amp;#x61;&amp;#116; onebx &amp;#x64;&amp;#111;&amp;#x74; us</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/13552">
      <title>SOAP: Feature/Change Request 13552 [Open] Improve memory usage when serializing arrays</title>
      <link>http://pear.php.net/bugs/13552</link>
      <content:encoded><![CDATA[<pre>SOAP Feature/Change Request
Reported by jasony
2008-04-01T07:33:22+00:00
PHP: 5.2.3 OS: Ubuntu Linux Package Version: 0.11.0

Description:
------------
When trying to create an array of integers on a Soap server, it bombs out if the array is over 12 elements. The error message is: Allowed memory size of 134217728 bytes exhausted (tried to allocate 44 bytes) in /usr/share/php/PEAR.php on line 868

Test script:
---------------
soap_server_crash_test.php:
&lt;?php
	require_once('SOAP/Server.php');
	require_once('SOAP/Disco.php');
	
	class CrashTest {
		public $__dispatch_map = array(); 
		public $__typedef=array();
		
		public function __construct() {
			$this-&gt;__typedef['ArrayOfIntegers'] = array(array('item'=&gt;'integer'));
			
			$this-&gt;__dispatch_map[&quot;crashMe&quot;]=array(&quot;in&quot;=&gt;array(&quot;arraysize&quot;=&gt;&quot;integer&quot;),&quot;out&quot;=&gt;array(&quot;artworks&quot;=&gt;&quot;{urn:CrashTest}ArrayOfIntegers&quot;));
		}
		
		public function crashMe($arraysize) {
			if ((empty($arraysize)) || (!is_numeric($arraysize))) {
				$fault=new SOAP_Fault(&quot;Invalid array size!&quot;);
				return $fault;
			}
			$result=array();
			for($x=0;$x&lt;$arraysize;$x++) {
				$result[]=$x;
			}
			return $result;
		}
	}
	
	
	
	$server = new SOAP_Server();
	$webservice=new CrashTest();
	$server-&gt;addObjectMap($webservice,'http://schemas.xmlsoap.org/soap/envelope/');
	if (isset($_SERVER['REQUEST_METHOD']) &amp;&amp; $_SERVER['REQUEST_METHOD']=='POST') {
		$server-&gt;service($HTTP_RAW_POST_DATA);
	} else {
		$disco = new SOAP_DISCO_Server($server,'CrashTest');
		header(&quot;Content-type: text/xml&quot;);
		if (isset($_SERVER['QUERY_STRING']) &amp;&amp; strcasecmp($_SERVER['QUERY_STRING'],'wsdl') == 0) {
			// show only the WSDL/XML output if ?wsdl is set in the address bar
			echo $disco-&gt;getWSDL();
		} else {
			echo $disco-&gt;getDISCO();
		}
	}
?&gt;

Test client:
&lt;?php
	include_once(&quot;objects/soap.inc&quot;);
	ini_set('soap.wsdl_cache_enabled', 0);
	$client=new SoapClient(&quot;http://localhost/dev/artvault_manager/soap_server_crash_test.php?wsdl&quot;,array('trace'=&gt;1));
	try {
		$result=$client-&gt;crashMe(12);
	} catch(SoapFault $exception) {
		$request_xml = $client-&gt;__getLastRequestHeaders() . $client-&gt;__getLastRequest();
		$response_xml = $client-&gt;__getLastResponseHeaders() . $client-&gt;__getLastResponse();
		echo $exception;
		print &quot;Request:&quot;.$request_xml;
		print &quot;Response:&quot;.$response_xml;
	}
	print_r($result);
?&gt;

Expected result:
----------------
Array
(
    [0] =&gt; 0
    [1] =&gt; 1
    [2] =&gt; 2
    [3] =&gt; 3
    [4] =&gt; 4
    [5] =&gt; 5
    [6] =&gt; 6
    [7] =&gt; 7
    [8] =&gt; 8
    [9] =&gt; 9
    [10] =&gt; 10
)

Actual result:
--------------
SoapFault exception: [Client] looks like we got no XML document in /home/jason/Development/artvault_manager/soap_crash_test.php:6
Stack trace:
#0 [internal function]: SoapClient-&gt;__call('crashMe', Array)
#1 /home/jason/Development/artvault_manager/soap_crash_test.php(6): SoapClient-&gt;crashMe(12)
#2 {main}Request:POST /dev/artvault_manager/soap_server_crash_test.php HTTP/1.1
Host: localhost
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.3-1ubuntu6.3
Content-Type: text/xml; charset=utf-8
SOAPAction: &quot;http://schemas.xmlsoap.org/soap/envelope/#CrashTest#crashMe&quot;
Content-Length: 479

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;SOAP-ENV:Envelope xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;&lt;SOAP-ENV:Body&gt;&lt;SOAP-ENV:crashMe&gt;&lt;arraysize xsi:type=&quot;xsd:integer&quot;&gt;12&lt;/arraysize&gt;&lt;/SOAP-ENV:crashMe&gt;&lt;/SOAP-ENV:Body&gt;&lt;/SOAP-ENV:Envelope&gt;
Response:HTTP/1.1 200 OK
Date: Tue, 01 Apr 2008 08:30:05 GMT
Server: Apache/2.2.4 (Ubuntu) mod_python/3.3.1 Python/2.5.1 PHP/5.2.3-1ubuntu6.3
X-Powered-By: PHP/5.2.3-1ubuntu6.3
Content-Length: 165
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
&lt;br /&gt;
&lt;b&gt;Fatal error&lt;/b&gt;:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in &lt;b&gt;/usr/share/php/PEAR.php&lt;/b&gt; on line &lt;b&gt;868&lt;/b&gt;&lt;br /&gt;</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Feature/Change Request
Reported by jasony
2008-04-01T07:33:22+00:00
PHP: 5.2.3 OS: Ubuntu Linux Package Version: 0.11.0

Description:
------------
When trying to create an array of integers on a Soap server, it bombs out if the array is over 12 elements. The error message is: Allowed memory size of 134217728 bytes exhausted (tried to allocate 44 bytes) in /usr/share/php/PEAR.php on line 868

Test script:
---------------
soap_server_crash_test.php:
&lt;?php
	require_once('SOAP/Server.php');
	require_once('SOAP/Disco.php');
	
	class CrashTest {
		public $__dispatch_map = array(); 
		public $__typedef=array();
		
		public function __construct() {
			$this-&gt;__typedef['ArrayOfIntegers'] = array(array('item'=&gt;'integer'));
			
			$this-&gt;__dispatch_map[&quot;crashMe&quot;]=array(&quot;in&quot;=&gt;array(&quot;arraysize&quot;=&gt;&quot;integer&quot;),&quot;out&quot;=&gt;array(&quot;artworks&quot;=&gt;&quot;{urn:CrashTest}ArrayOfIntegers&quot;));
		}
		
		public function crashMe($arraysize) {
			if ((empty($arraysize)) || (!is_numeric($arraysize))) {
				$fault=new SOAP_Fault(&quot;Invalid array size!&quot;);
				return $fault;
			}
			$result=array();
			for($x=0;$x&lt;$arraysize;$x++) {
				$result[]=$x;
			}
			return $result;
		}
	}
	
	
	
	$server = new SOAP_Server();
	$webservice=new CrashTest();
	$server-&gt;addObjectMap($webservice,'http://schemas.xmlsoap.org/soap/envelope/');
	if (isset($_SERVER['REQUEST_METHOD']) &amp;&amp; $_SERVER['REQUEST_METHOD']=='POST') {
		$server-&gt;service($HTTP_RAW_POST_DATA);
	} else {
		$disco = new SOAP_DISCO_Server($server,'CrashTest');
		header(&quot;Content-type: text/xml&quot;);
		if (isset($_SERVER['QUERY_STRING']) &amp;&amp; strcasecmp($_SERVER['QUERY_STRING'],'wsdl') == 0) {
			// show only the WSDL/XML output if ?wsdl is set in the address bar
			echo $disco-&gt;getWSDL();
		} else {
			echo $disco-&gt;getDISCO();
		}
	}
?&gt;

Test client:
&lt;?php
	include_once(&quot;objects/soap.inc&quot;);
	ini_set('soap.wsdl_cache_enabled', 0);
	$client=new SoapClient(&quot;http://localhost/dev/artvault_manager/soap_server_crash_test.php?wsdl&quot;,array('trace'=&gt;1));
	try {
		$result=$client-&gt;crashMe(12);
	} catch(SoapFault $exception) {
		$request_xml = $client-&gt;__getLastRequestHeaders() . $client-&gt;__getLastRequest();
		$response_xml = $client-&gt;__getLastResponseHeaders() . $client-&gt;__getLastResponse();
		echo $exception;
		print &quot;Request:&quot;.$request_xml;
		print &quot;Response:&quot;.$response_xml;
	}
	print_r($result);
?&gt;

Expected result:
----------------
Array
(
    [0] =&gt; 0
    [1] =&gt; 1
    [2] =&gt; 2
    [3] =&gt; 3
    [4] =&gt; 4
    [5] =&gt; 5
    [6] =&gt; 6
    [7] =&gt; 7
    [8] =&gt; 8
    [9] =&gt; 9
    [10] =&gt; 10
)

Actual result:
--------------
SoapFault exception: [Client] looks like we got no XML document in /home/jason/Development/artvault_manager/soap_crash_test.php:6
Stack trace:
#0 [internal function]: SoapClient-&gt;__call('crashMe', Array)
#1 /home/jason/Development/artvault_manager/soap_crash_test.php(6): SoapClient-&gt;crashMe(12)
#2 {main}Request:POST /dev/artvault_manager/soap_server_crash_test.php HTTP/1.1
Host: localhost
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.3-1ubuntu6.3
Content-Type: text/xml; charset=utf-8
SOAPAction: &quot;http://schemas.xmlsoap.org/soap/envelope/#CrashTest#crashMe&quot;
Content-Length: 479

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;SOAP-ENV:Envelope xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;&lt;SOAP-ENV:Body&gt;&lt;SOAP-ENV:crashMe&gt;&lt;arraysize xsi:type=&quot;xsd:integer&quot;&gt;12&lt;/arraysize&gt;&lt;/SOAP-ENV:crashMe&gt;&lt;/SOAP-ENV:Body&gt;&lt;/SOAP-ENV:Envelope&gt;
Response:HTTP/1.1 200 OK
Date: Tue, 01 Apr 2008 08:30:05 GMT
Server: Apache/2.2.4 (Ubuntu) mod_python/3.3.1 Python/2.5.1 PHP/5.2.3-1ubuntu6.3
X-Powered-By: PHP/5.2.3-1ubuntu6.3
Content-Length: 165
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
&lt;br /&gt;
&lt;b&gt;Fatal error&lt;/b&gt;:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in &lt;b&gt;/usr/share/php/PEAR.php&lt;/b&gt; on line &lt;b&gt;868&lt;/b&gt;&lt;br /&gt;</pre>]]></description>
      <dc:date>2008-07-16T14:32:34+00:00</dc:date>
      <dc:creator>phppear &amp;#x61;&amp;#116; freespeechpub &amp;#x64;&amp;#111;&amp;#x74; co &amp;#x64;&amp;#111;&amp;#x74; za</dc:creator>
      <dc:subject>SOAP Feature/Change Request</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/12977">
      <title>SOAP: Bug 12977 [Open] HTTP Authentication by http://user:pass@ buggy!</title>
      <link>http://pear.php.net/bugs/12977</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by chammers
2008-01-25T13:20:12+00:00
PHP: 5.2.5 OS: Linux Package Version: 0.11.0

Description:
------------
Hello

While migrating old scripts to a recent Linux host I discovered that the
old way of calling &quot;$client = new SOAP_Client('http://user:pass@...&quot;
does no longer work.

When calling $client-&gt;send() there is still an internal call to Transport/HTTP.php's function _validateURL which parses the URL and creates a $this-&gt;headers['Authorization'] but the SOAP_Client-&gt;call()  function does not honor this header() variable at all but only takes options from the passwd $options variable.

So the new way of calling is (as documented in Bug 11830) to pass &quot;user&quot; and &quot;pass&quot; as options to SOAP_Client-&gt;call().

Still I would assume that the old way was dropped by accident and should be reactivated (as it's a common to pass credentials inside the URL).

bye,

-christian-

Test script:
---------------
$this-&gt;soapclient = new SOAP_Client(&quot;http://webservice:topsecret@webmanager.company.de
&quot;);
$domainids = $this-&gt;soapclient-&gt;call('getDomainId', array(), '');


Expected result:
----------------
something from the remote server

Actual result:
--------------
HTTP Response 401 Authentication Failed (Code HTTP)</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by chammers
2008-01-25T13:20:12+00:00
PHP: 5.2.5 OS: Linux Package Version: 0.11.0

Description:
------------
Hello

While migrating old scripts to a recent Linux host I discovered that the
old way of calling &quot;$client = new SOAP_Client('http://user:pass@...&quot;
does no longer work.

When calling $client-&gt;send() there is still an internal call to Transport/HTTP.php's function _validateURL which parses the URL and creates a $this-&gt;headers['Authorization'] but the SOAP_Client-&gt;call()  function does not honor this header() variable at all but only takes options from the passwd $options variable.

So the new way of calling is (as documented in Bug 11830) to pass &quot;user&quot; and &quot;pass&quot; as options to SOAP_Client-&gt;call().

Still I would assume that the old way was dropped by accident and should be reactivated (as it's a common to pass credentials inside the URL).

bye,

-christian-

Test script:
---------------
$this-&gt;soapclient = new SOAP_Client(&quot;http://webservice:topsecret@webmanager.company.de
&quot;);
$domainids = $this-&gt;soapclient-&gt;call('getDomainId', array(), '');


Expected result:
----------------
something from the remote server

Actual result:
--------------
HTTP Response 401 Authentication Failed (Code HTTP)</pre>]]></description>
      <dc:date>2008-07-14T14:00:48+00:00</dc:date>
      <dc:creator>chammers &amp;#x61;&amp;#116; netcologne &amp;#x64;&amp;#111;&amp;#x74; de</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/11508">
      <title>SOAP: Feature/Change Request 11508 [Open] Generate proxy code for complex types</title>
      <link>http://pear.php.net/bugs/11508</link>
      <content:encoded><![CDATA[<pre>SOAP Feature/Change Request
Reported by dmichonneau
2007-07-03T09:34:52+00:00
PHP: 5.2.3 OS: Windows Package Version: 0.11.0

Description:
------------
Currently the code generator for the proxy only generates a class with all methods for the SOAP calls. These methods typically take input parameters and return a variable. It would be very useful that the complex types used in those parameters and returned variables are also generated as classes. Similar proxy generation tools in Java or .NET can do this, but I didn't find any implementation in PHP that could generate the classes code for the complex types. It allows developers to immmediately know what to set in the request and how to read the response by looking at the generated classes.</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Feature/Change Request
Reported by dmichonneau
2007-07-03T09:34:52+00:00
PHP: 5.2.3 OS: Windows Package Version: 0.11.0

Description:
------------
Currently the code generator for the proxy only generates a class with all methods for the SOAP calls. These methods typically take input parameters and return a variable. It would be very useful that the complex types used in those parameters and returned variables are also generated as classes. Similar proxy generation tools in Java or .NET can do this, but I didn't find any implementation in PHP that could generate the classes code for the complex types. It allows developers to immmediately know what to set in the request and how to read the response by looking at the generated classes.</pre>]]></description>
      <dc:date>2007-07-03T09:34:52+00:00</dc:date>
      <dc:creator>dmichonneau &amp;#x61;&amp;#116; actuate &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>SOAP Feature/Change Request</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/8086">
      <title>SOAP: Bug 8086 [Open] Unable to correctly parse a WSDL</title>
      <link>http://pear.php.net/bugs/8086</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by simone.m@...
2006-06-30T09:39:26+00:00
PHP: 4.4.1 OS: Linux Red Hat 9 Package Version: 0.9.4

Description:
------------
I'm trying to create a SOAP client from a WSDL created with Apache Axis version: 1.2.1. When I try to create an object directly from the proxy code, PEAR:SOAP returns me the following notice:

Notice: Undefined index: impl in /usr/local/php/lib/php/SOAP/WSDL.php on line 620

The the client doesn't work correctly, and I can't use the web service.

Test script:
---------------
require_once('SOAP/Client.php');
$client = new SOAP_WSDL('http://www.comune.modena.it/autenticationCig/wsdl/AutenticationCig.wsdl');

$proxy = $client-&gt;getProxy();

$params = array('ticketCig' =&gt; '123456');
$results = $proxy-&gt;getDatiUtenteCig($params);

Expected result:
----------------
The script above should create a working object based on the WSDL, but it doesn't work.

With Perl's SOAP::Lite it works correctly.

Actual result:
--------------
Notice: Undefined index: impl in /usr/local/php/lib/php/SOAP/WSDL.php on line 620</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by simone.m@...
2006-06-30T09:39:26+00:00
PHP: 4.4.1 OS: Linux Red Hat 9 Package Version: 0.9.4

Description:
------------
I'm trying to create a SOAP client from a WSDL created with Apache Axis version: 1.2.1. When I try to create an object directly from the proxy code, PEAR:SOAP returns me the following notice:

Notice: Undefined index: impl in /usr/local/php/lib/php/SOAP/WSDL.php on line 620

The the client doesn't work correctly, and I can't use the web service.

Test script:
---------------
require_once('SOAP/Client.php');
$client = new SOAP_WSDL('http://www.comune.modena.it/autenticationCig/wsdl/AutenticationCig.wsdl');

$proxy = $client-&gt;getProxy();

$params = array('ticketCig' =&gt; '123456');
$results = $proxy-&gt;getDatiUtenteCig($params);

Expected result:
----------------
The script above should create a working object based on the WSDL, but it doesn't work.

With Perl's SOAP::Lite it works correctly.

Actual result:
--------------
Notice: Undefined index: impl in /usr/local/php/lib/php/SOAP/WSDL.php on line 620</pre>]]></description>
      <dc:date>2008-07-15T23:05:02+00:00</dc:date>
      <dc:creator>simone &amp;#x64;&amp;#111;&amp;#x74; m &amp;#x61;&amp;#116; lynx2000 &amp;#x64;&amp;#111;&amp;#x74; it</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/7634">
      <title>SOAP: Bug 7634 [Open] E_ERROR and E_WARNING inside SoapObject::$methodname</title>
      <link>http://pear.php.net/bugs/7634</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by vitaly@...
2006-05-16T00:31:55+00:00
PHP: 4.4.2 OS: Linux Package Version: 0.9.4

Description:
------------
Hi everybody. 
I have a problem with error reporting inside an object which generate response for SOAP request. I mean object::method() which called from SOAP_Server::callMethod().
In my current configuration I have log_errors enabled in php.ini. So, all errors is (should be) logged. But any error which appear inside SOAP Object isn't logged by default.
Well. If I have E_WARNING than I can see error in SOAP Response, but if there is an E_ERROR, which can't be handled by SOAP_Server::_errorHandler(), that's real problem because I don't see it either in SOAP Response or log file (probably because of error muting @, I'm not sure). 
So, to solve this problem I've deleted @ before call to SOAP Object method, added ini_set('display_errors', false) to hide all errors and added writing to log file in SOAP_Server::_errorHandler() if option enabled in configuration.
Patch file solving this problem to expected result can be downloaded from http://vitaly.yakovenko.net/soap/SOAP_Server.patch . Put it in pear directory and `patch -p0 &lt; SOAP_Server.patch`. 
Hope this will help. 
Regards. Vitali.

Test script:
---------------
&lt;?php

// Uncomment line by line to see result
function HandleRequest()
{
    //include 'asdf.php'; // 1: should generate E_WARNING
    //require 'asdf.php'; // 2: should generate E_ERROR
    //parse error here    // 3: should generate E_PARSE
}
?&gt;

Expected result:
----------------
1: E_WARNING wrapped in SOAP Response and record in log file.
2: at least something saying that error happened
3: at leat something saying that error happened.

Actual result:
--------------
1: E_WARNING wrapped in SOAP Response without record in log file.
2: nothing at all!
3: record in log file</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by vitaly@...
2006-05-16T00:31:55+00:00
PHP: 4.4.2 OS: Linux Package Version: 0.9.4

Description:
------------
Hi everybody. 
I have a problem with error reporting inside an object which generate response for SOAP request. I mean object::method() which called from SOAP_Server::callMethod().
In my current configuration I have log_errors enabled in php.ini. So, all errors is (should be) logged. But any error which appear inside SOAP Object isn't logged by default.
Well. If I have E_WARNING than I can see error in SOAP Response, but if there is an E_ERROR, which can't be handled by SOAP_Server::_errorHandler(), that's real problem because I don't see it either in SOAP Response or log file (probably because of error muting @, I'm not sure). 
So, to solve this problem I've deleted @ before call to SOAP Object method, added ini_set('display_errors', false) to hide all errors and added writing to log file in SOAP_Server::_errorHandler() if option enabled in configuration.
Patch file solving this problem to expected result can be downloaded from http://vitaly.yakovenko.net/soap/SOAP_Server.patch . Put it in pear directory and `patch -p0 &lt; SOAP_Server.patch`. 
Hope this will help. 
Regards. Vitali.

Test script:
---------------
&lt;?php

// Uncomment line by line to see result
function HandleRequest()
{
    //include 'asdf.php'; // 1: should generate E_WARNING
    //require 'asdf.php'; // 2: should generate E_ERROR
    //parse error here    // 3: should generate E_PARSE
}
?&gt;

Expected result:
----------------
1: E_WARNING wrapped in SOAP Response and record in log file.
2: at least something saying that error happened
3: at leat something saying that error happened.

Actual result:
--------------
1: E_WARNING wrapped in SOAP Response without record in log file.
2: nothing at all!
3: record in log file</pre>]]></description>
      <dc:date>2014-12-29T17:32:29+00:00</dc:date>
      <dc:creator>vitaly &amp;#x61;&amp;#116; yakovenko &amp;#x64;&amp;#111;&amp;#x74; net</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/1701">
      <title>SOAP: Feature/Change Request 1701 [Verified] no documentation</title>
      <link>http://pear.php.net/bugs/1701</link>
      <content:encoded><![CDATA[<pre>SOAP Feature/Change Request
Reported by j8os7s8gkq6drmb@...
2004-06-22T08:42:49+00:00
PHP: Irrelevant OS: N/A Package Version: 

Description:
------------
There is no documentation for any pacakage past 0.7.4.  It would be most usefull to have a intro document that also covers among other things self generating wsdl, and the correct use of namespaces in parameters and mappings.

Reproduce code:
---------------
N/A

Expected result:
----------------
N/A

Actual result:
--------------
N/A</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Feature/Change Request
Reported by j8os7s8gkq6drmb@...
2004-06-22T08:42:49+00:00
PHP: Irrelevant OS: N/A Package Version: 

Description:
------------
There is no documentation for any pacakage past 0.7.4.  It would be most usefull to have a intro document that also covers among other things self generating wsdl, and the correct use of namespaces in parameters and mappings.

Reproduce code:
---------------
N/A

Expected result:
----------------
N/A

Actual result:
--------------
N/A</pre>]]></description>
      <dc:date>2008-03-22T10:21:05+00:00</dc:date>
      <dc:creator>j8os7s8gkq6drmb &amp;#x61;&amp;#116; jetable &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>SOAP Feature/Change Request</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/1404">
      <title>SOAP: Bug 1404 [Open] xsd:dateTime members in complex types are serialized as xsd:string</title>
      <link>http://pear.php.net/bugs/1404</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by clawrence@...
2004-05-14T02:47:25+00:00
PHP: 4.3.6 OS: redhat 7.2 Package Version: 0.9.4

Description:
------------
DateTime members of complex types when used as output from a SOAP operation are mis-reported by PEAR::SOAP (0.8RC3 beta) as being string types (see echoDate2() for details).

The echoDate1() operation correctly reports the dateTime datatype primitive in it's response.

Reproduce code:
---------------
&lt;?php
set_magic_quotes_runtime(0);
ini_set(&quot;magic_quotes_gpc&quot;, 0);

class SOAPDateWrap {
  var $datefied;

  function SOAPDateWrap ($datefied = NULL) {
    $this-&gt;datefied = $datefied;
  }
}

require_once 'SOAP/Value.php';

class SOAPEchoDateService {
  var $__dispatch_map = array();
  var $__typedef = array();

  function SOAPEchoDateService() {
    // Define the SOAPDateWrap Type
    $this-&gt;__typedef['{http://www.optimiser.com/soap}SOAPDateWrap'] = array('datefied'     =&gt; 'dateTime');
    // Define the echoDate1 operation
    $this-&gt;__dispatch_map['echoDate1'] = array('in' =&gt; array('inDate' =&gt; 'dateTime'), 'out' =&gt; array('outDate' =&gt; 'dateTime'));
    // Define the echoDate2 operation
    $this-&gt;__dispatch_map['echoDate2'] = array('in'  =&gt; array('inDate' =&gt; 'dateTime'), 'out' =&gt; array('outDateWrap' =&gt; '{http://www.optimiser.com/soap}SOAPDateWrap'));
  }

  function __dispatch($methodname) {
    if (isset($this-&gt;__dispatch_map[$methodname]))
      return $this-&gt;__dispatch_map[$methodname];
    return NULL;
  }

  function echoDate1($inDate) {
    $outDate = $inDate;
    return new SOAP_Value('outDate', 'dateTime', $outDate);
  }

  function echoDate2($inDate) {
    $outDate = $inDate;
    return new SOAP_Value('outDateWrap', '{http://www.optimiser.com/soap}SOAPDateWrap', new SOAPDateWrap($outDate));
  }
}

require_once 'Log.php';
require_once 'SOAP/Server.php';

$log = &amp;Log::singleton('file', '/tmp/echoDate.log', 'echoDate', array('mode' =&gt; 0666), LOG_INFO);
$server = new SOAP_Server;
$server-&gt;_auto_translation = true;
$soapclass = new SOAPEchoDateService();
$server-&gt;addObjectMap($soapclass,'urn:SOAPEchoDate');
if (isset($_SERVER['REQUEST_METHOD']) &amp;&amp;
    $_SERVER['REQUEST_METHOD'] == 'POST') {
  $log-&gt;log(&quot;[&quot;.getmypid().&quot;] REQUEST: \n&quot;.$HTTP_RAW_POST_DATA);
  ob_start();
  $server-&gt;service($HTTP_RAW_POST_DATA);
  $log-&gt;log(&quot;[&quot;.getmypid().&quot;] RESPONSE: \n&quot;.ob_get_contents());
  ob_end_flush();
} else {
  require_once 'SOAP/Disco.php';
  $disco = new SOAP_DISCO_Server($server,'SOAPEchoDate');
  header(&quot;Content-type: text/xml&quot;);
  if (isset($_SERVER['QUERY_STRING'])
      &amp;&amp; strcasecmp($_SERVER['QUERY_STRING'], 'wsdl') == 0) {
    echo $disco-&gt;getWSDL();
  } else {
    echo $disco-&gt;getDISCO();
  }
  exit;
}

?&gt;

Expected result:
----------------
The datefied member of the SOAPDateWrap complex type returned from the echoDate2() operation should be of type xsd:dateTime as follows:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;SOAP-ENV:Envelope  xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;
 xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;
 xmlns:ns4=&quot;http://www.optimiser.com/soap&quot;
 xmlns:ns5=&quot;urn:SOAPEchoDate&quot;
 SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
&lt;SOAP-ENV:Body&gt;

&lt;ns5:echoDate2Response&gt;
&lt;outDateWrap xsi:type=&quot;ns4:SOAPDateWrap&quot;&gt;
&lt;datefied xsi:type=&quot;xsd:dateTime&quot;&gt;2004-05-14T10:21:18.6939682+08:00&lt;/datefied&gt;&lt;/outDateWrap&gt;&lt;/ns5:echoDate2Response&gt;
&lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;


Actual result:
--------------
The datefied member of the SOAPDateWrap complex type returned from the echoDate2() operation is of type xsd:string as follows:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;SOAP-ENV:Envelope  xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;
 xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;
 xmlns:ns4=&quot;http://www.optimiser.com/soap&quot;
 xmlns:ns5=&quot;urn:SOAPEchoDate&quot;
 SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
&lt;SOAP-ENV:Body&gt;

&lt;ns5:echoDate2Response&gt;
&lt;outDateWrap xsi:type=&quot;ns4:SOAPDateWrap&quot;&gt;
&lt;datefied xsi:type=&quot;xsd:string&quot;&gt;2004-05-14T10:21:18.6939682+08:00&lt;/datefied&gt;&lt;/outDateWrap&gt;&lt;/ns5:echoDate2Response&gt;
&lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by clawrence@...
2004-05-14T02:47:25+00:00
PHP: 4.3.6 OS: redhat 7.2 Package Version: 0.9.4

Description:
------------
DateTime members of complex types when used as output from a SOAP operation are mis-reported by PEAR::SOAP (0.8RC3 beta) as being string types (see echoDate2() for details).

The echoDate1() operation correctly reports the dateTime datatype primitive in it's response.

Reproduce code:
---------------
&lt;?php
set_magic_quotes_runtime(0);
ini_set(&quot;magic_quotes_gpc&quot;, 0);

class SOAPDateWrap {
  var $datefied;

  function SOAPDateWrap ($datefied = NULL) {
    $this-&gt;datefied = $datefied;
  }
}

require_once 'SOAP/Value.php';

class SOAPEchoDateService {
  var $__dispatch_map = array();
  var $__typedef = array();

  function SOAPEchoDateService() {
    // Define the SOAPDateWrap Type
    $this-&gt;__typedef['{http://www.optimiser.com/soap}SOAPDateWrap'] = array('datefied'     =&gt; 'dateTime');
    // Define the echoDate1 operation
    $this-&gt;__dispatch_map['echoDate1'] = array('in' =&gt; array('inDate' =&gt; 'dateTime'), 'out' =&gt; array('outDate' =&gt; 'dateTime'));
    // Define the echoDate2 operation
    $this-&gt;__dispatch_map['echoDate2'] = array('in'  =&gt; array('inDate' =&gt; 'dateTime'), 'out' =&gt; array('outDateWrap' =&gt; '{http://www.optimiser.com/soap}SOAPDateWrap'));
  }

  function __dispatch($methodname) {
    if (isset($this-&gt;__dispatch_map[$methodname]))
      return $this-&gt;__dispatch_map[$methodname];
    return NULL;
  }

  function echoDate1($inDate) {
    $outDate = $inDate;
    return new SOAP_Value('outDate', 'dateTime', $outDate);
  }

  function echoDate2($inDate) {
    $outDate = $inDate;
    return new SOAP_Value('outDateWrap', '{http://www.optimiser.com/soap}SOAPDateWrap', new SOAPDateWrap($outDate));
  }
}

require_once 'Log.php';
require_once 'SOAP/Server.php';

$log = &amp;Log::singleton('file', '/tmp/echoDate.log', 'echoDate', array('mode' =&gt; 0666), LOG_INFO);
$server = new SOAP_Server;
$server-&gt;_auto_translation = true;
$soapclass = new SOAPEchoDateService();
$server-&gt;addObjectMap($soapclass,'urn:SOAPEchoDate');
if (isset($_SERVER['REQUEST_METHOD']) &amp;&amp;
    $_SERVER['REQUEST_METHOD'] == 'POST') {
  $log-&gt;log(&quot;[&quot;.getmypid().&quot;] REQUEST: \n&quot;.$HTTP_RAW_POST_DATA);
  ob_start();
  $server-&gt;service($HTTP_RAW_POST_DATA);
  $log-&gt;log(&quot;[&quot;.getmypid().&quot;] RESPONSE: \n&quot;.ob_get_contents());
  ob_end_flush();
} else {
  require_once 'SOAP/Disco.php';
  $disco = new SOAP_DISCO_Server($server,'SOAPEchoDate');
  header(&quot;Content-type: text/xml&quot;);
  if (isset($_SERVER['QUERY_STRING'])
      &amp;&amp; strcasecmp($_SERVER['QUERY_STRING'], 'wsdl') == 0) {
    echo $disco-&gt;getWSDL();
  } else {
    echo $disco-&gt;getDISCO();
  }
  exit;
}

?&gt;

Expected result:
----------------
The datefied member of the SOAPDateWrap complex type returned from the echoDate2() operation should be of type xsd:dateTime as follows:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;SOAP-ENV:Envelope  xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;
 xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;
 xmlns:ns4=&quot;http://www.optimiser.com/soap&quot;
 xmlns:ns5=&quot;urn:SOAPEchoDate&quot;
 SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
&lt;SOAP-ENV:Body&gt;

&lt;ns5:echoDate2Response&gt;
&lt;outDateWrap xsi:type=&quot;ns4:SOAPDateWrap&quot;&gt;
&lt;datefied xsi:type=&quot;xsd:dateTime&quot;&gt;2004-05-14T10:21:18.6939682+08:00&lt;/datefied&gt;&lt;/outDateWrap&gt;&lt;/ns5:echoDate2Response&gt;
&lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;


Actual result:
--------------
The datefied member of the SOAPDateWrap complex type returned from the echoDate2() operation is of type xsd:string as follows:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;SOAP-ENV:Envelope  xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;
 xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xmlns:SOAP-ENC=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;
 xmlns:ns4=&quot;http://www.optimiser.com/soap&quot;
 xmlns:ns5=&quot;urn:SOAPEchoDate&quot;
 SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
&lt;SOAP-ENV:Body&gt;

&lt;ns5:echoDate2Response&gt;
&lt;outDateWrap xsi:type=&quot;ns4:SOAPDateWrap&quot;&gt;
&lt;datefied xsi:type=&quot;xsd:string&quot;&gt;2004-05-14T10:21:18.6939682+08:00&lt;/datefied&gt;&lt;/outDateWrap&gt;&lt;/ns5:echoDate2Response&gt;
&lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;</pre>]]></description>
      <dc:date>2008-07-29T21:54:03+00:00</dc:date>
      <dc:creator>clawrence &amp;#x61;&amp;#116; optimiser &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/1312">
      <title>SOAP: Bug 1312 [Open] bad XML parsing with nested arrays</title>
      <link>http://pear.php.net/bugs/1312</link>
      <content:encoded><![CDATA[<pre>SOAP Bug
Reported by eric.citaire@...
2004-04-29T10:31:59+00:00
PHP: 4.3.4 OS: Linux Package Version: 

Description:
------------
When sending a nested array to a PEAR::SOAP WebService, some elments are objects, not arrays.


Reproduce code:
---------------
My PHP code:

&lt;?php

// ...
// here is the method declaration:

                $this-&gt;__typedef['{urn:something}Array']       = array(array('item'=&gt;'anyType'));
                $this-&gt;__dispatch_map['test']   = array('in'=&gt;array('anArray'=&gt;'{urn:something}Array'));

// ...

?&gt;

The XML code the client send:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;SOAP-ENV:Envelope xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;&gt;&lt;SOAP-ENV:Body xmlns:ns1=&quot;urn:something&quot;&gt;&lt;ns1:test SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;&lt;anArray soapenc:arrayType=&quot;xsd:anyType[4]&quot; xmlns:soapenc=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item soapenc:arrayType=&quot;xsd:string[0]&quot; xsi:type=&quot;soapenc:Array&quot; /&gt;&lt;item soapenc:arrayType=&quot;xsd:double[4]&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;1&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;5&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;0&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;6&lt;/item&gt;&lt;/item&gt;&lt;item soapenc:arrayType=&quot;xsd:double[][3]&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item soapenc:arrayType=&quot;xsd:double[3]&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;8&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;9&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;1&lt;/item&gt;&lt;/item&gt;&lt;item soapenc:arrayType=&quot;xsd:double[0]&quot; xsi:type=&quot;soapenc:Array&quot; /&gt;&lt;item soapenc:arrayType=&quot;xsd:double[6]&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;5&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;7&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;654&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;8&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;1&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;32&lt;/item&gt;&lt;/item&gt;&lt;/item&gt;&lt;item soapenc:arrayType=&quot;xsd:double[2]&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;54&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;57&lt;/item&gt;&lt;/item&gt;&lt;/anArray&gt;&lt;/ns1:test&gt;&lt;/SOAP-ENV:Body&gt;&lt;/SOAP-ENV:Envelope&gt;

Expected result:
----------------
array(4) {
  [0]=&gt;
  string(0) &quot;&quot;
  [1]=&gt;
  array(4) {
    [0]=&gt;
    float(1)
    [1]=&gt;
    float(5)
    [2]=&gt;
    float(0)
    [3]=&gt;
    float(6)
  }
  [2]=&gt;
  array(3) {
    [0]=&gt;
    array(3) {
      [0]=&gt;
      float(8)
      [1]=&gt;
      float(9)
      [2]=&gt;
      float(1)
    }
    [1]=&gt;
    float(0)
    [2]=&gt;
    array(6) {
      [0]=&gt;
      float(5)
      [1]=&gt;
      float(7)
      [2]=&gt;
      float(654)
      [3]=&gt;
      float(8)
      [4]=&gt;
      float(1)
      [5]=&gt;
      float(32)
    }
  }
  [3]=&gt;
  array(2) {
    [0]=&gt;
    float(54)
    [1]=&gt;
    float(57)
  }
}


Actual result:
--------------
array(1) {
  [&quot;anArray&quot;]=&gt;
  array(4) {
    [0]=&gt;
    string(0) &quot;&quot;
    [1]=&gt;
    array(4) {
      [0]=&gt;
      float(1)
      [1]=&gt;
      float(5)
      [2]=&gt;
      float(0)
      [3]=&gt;
      float(6)
    }
    [2]=&gt;
    object(stdClass)(1) {
      [&quot;item&quot;]=&gt;
      array(5) {
        [0]=&gt;
        float(8)
        [1]=&gt;
        float(9)
        [2]=&gt;
        float(1)
        [3]=&gt;
        string(0) &quot;&quot;
        [4]=&gt;
        array(6) {
          [0]=&gt;
          float(5)
          [1]=&gt;
          float(7)
          [2]=&gt;
          float(654)
          [3]=&gt;
          float(8)
          [4]=&gt;
          float(1)
          [5]=&gt;
          float(32)
        }
      }
    }
    [3]=&gt;
    array(2) {
      [0]=&gt;
      float(54)
      [1]=&gt;
      float(57)
    }
  }
}</pre>]]></content:encoded>
      <description><![CDATA[<pre>SOAP Bug
Reported by eric.citaire@...
2004-04-29T10:31:59+00:00
PHP: 4.3.4 OS: Linux Package Version: 

Description:
------------
When sending a nested array to a PEAR::SOAP WebService, some elments are objects, not arrays.


Reproduce code:
---------------
My PHP code:

&lt;?php

// ...
// here is the method declaration:

                $this-&gt;__typedef['{urn:something}Array']       = array(array('item'=&gt;'anyType'));
                $this-&gt;__dispatch_map['test']   = array('in'=&gt;array('anArray'=&gt;'{urn:something}Array'));

// ...

?&gt;

The XML code the client send:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;SOAP-ENV:Envelope xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;&gt;&lt;SOAP-ENV:Body xmlns:ns1=&quot;urn:something&quot;&gt;&lt;ns1:test SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;&lt;anArray soapenc:arrayType=&quot;xsd:anyType[4]&quot; xmlns:soapenc=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item soapenc:arrayType=&quot;xsd:string[0]&quot; xsi:type=&quot;soapenc:Array&quot; /&gt;&lt;item soapenc:arrayType=&quot;xsd:double[4]&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;1&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;5&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;0&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;6&lt;/item&gt;&lt;/item&gt;&lt;item soapenc:arrayType=&quot;xsd:double[][3]&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item soapenc:arrayType=&quot;xsd:double[3]&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;8&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;9&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;1&lt;/item&gt;&lt;/item&gt;&lt;item soapenc:arrayType=&quot;xsd:double[0]&quot; xsi:type=&quot;soapenc:Array&quot; /&gt;&lt;item soapenc:arrayType=&quot;xsd:double[6]&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;5&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;7&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;654&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;8&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;1&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;32&lt;/item&gt;&lt;/item&gt;&lt;/item&gt;&lt;item soapenc:arrayType=&quot;xsd:double[2]&quot; xsi:type=&quot;soapenc:Array&quot;&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;54&lt;/item&gt;&lt;item xsi:type=&quot;xsd:double&quot;&gt;57&lt;/item&gt;&lt;/item&gt;&lt;/anArray&gt;&lt;/ns1:test&gt;&lt;/SOAP-ENV:Body&gt;&lt;/SOAP-ENV:Envelope&gt;

Expected result:
----------------
array(4) {
  [0]=&gt;
  string(0) &quot;&quot;
  [1]=&gt;
  array(4) {
    [0]=&gt;
    float(1)
    [1]=&gt;
    float(5)
    [2]=&gt;
    float(0)
    [3]=&gt;
    float(6)
  }
  [2]=&gt;
  array(3) {
    [0]=&gt;
    array(3) {
      [0]=&gt;
      float(8)
      [1]=&gt;
      float(9)
      [2]=&gt;
      float(1)
    }
    [1]=&gt;
    float(0)
    [2]=&gt;
    array(6) {
      [0]=&gt;
      float(5)
      [1]=&gt;
      float(7)
      [2]=&gt;
      float(654)
      [3]=&gt;
      float(8)
      [4]=&gt;
      float(1)
      [5]=&gt;
      float(32)
    }
  }
  [3]=&gt;
  array(2) {
    [0]=&gt;
    float(54)
    [1]=&gt;
    float(57)
  }
}


Actual result:
--------------
array(1) {
  [&quot;anArray&quot;]=&gt;
  array(4) {
    [0]=&gt;
    string(0) &quot;&quot;
    [1]=&gt;
    array(4) {
      [0]=&gt;
      float(1)
      [1]=&gt;
      float(5)
      [2]=&gt;
      float(0)
      [3]=&gt;
      float(6)
    }
    [2]=&gt;
    object(stdClass)(1) {
      [&quot;item&quot;]=&gt;
      array(5) {
        [0]=&gt;
        float(8)
        [1]=&gt;
        float(9)
        [2]=&gt;
        float(1)
        [3]=&gt;
        string(0) &quot;&quot;
        [4]=&gt;
        array(6) {
          [0]=&gt;
          float(5)
          [1]=&gt;
          float(7)
          [2]=&gt;
          float(654)
          [3]=&gt;
          float(8)
          [4]=&gt;
          float(1)
          [5]=&gt;
          float(32)
        }
      }
    }
    [3]=&gt;
    array(2) {
      [0]=&gt;
      float(54)
      [1]=&gt;
      float(57)
    }
  }
}</pre>]]></description>
      <dc:date>2008-10-12T07:52:54+00:00</dc:date>
      <dc:creator>eric &amp;#x64;&amp;#111;&amp;#x74; citaire &amp;#x61;&amp;#116; laposte &amp;#x64;&amp;#111;&amp;#x74; net</dc:creator>
      <dc:subject>SOAP Bug</dc:subject>
    </item>
</rdf:RDF>
