#34643 [Asn->Csd]: wsdl default value
ID: 34643
Updated by: dmitry@php.net
Reported By: camka at email dot ee
-Status: Assigned
+Status: Closed
Bug Type: SOAP related
Operating System: linux
PHP Version: 5CVS-2005-09-26 (snap)
Assigned To: dmitry
New Comment:
The bug is fixed in CVS HEAD, PHP_5_1 and PHP_5_0.
The wsdl file in report has mistakes. The fixed file can be found in
CVS: ext/soap/tests/bugs/bug34643.wsdl
Previous Comments:
------------------------------------------------------------------------
[2005-09-26 23:18:52] tony2001@php.net
Dmitry, check it out, please.
------------------------------------------------------------------------
[2005-09-26 22:11:25] camka at email dot ee
the same behaviour with the latest snapshot.
------------------------------------------------------------------------
[2005-09-26 17:43:31] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
------------------------------------------------------------------------
[2005-09-26 13:28:20] camka at email dot ee
Description:
------------
I want to set default value for the parameter passed to the remote
function in wsdl file. When working in non-wsdl mode, the default value
on server side is initiated with no problems. But when using wsdl file
for client/server initialization, the default value is processed
strange way.
Reproduce code:
---------------
======= srv.php ==========
class fp
{
public function get_it($opt = 'zzz')
{
return $opt;
}
}
$srv = new SoapServer('wsdl.wsdl');
$srv->setClass('fp');
$srv->handle();
======= client.php ==========
...
$cl = new SoapClient('wsdl.wsdl', $options);
var_dump($cl->__getFunctions());
echo $cl->get_it();
======== wsdl.wsdl ==========
<?xml version='1.0' encoding='UTF-8'?>
<definitions name="wsdl" targetNamespace="urn:wsdl"
xmlns:typens="urn:wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:wsdl">
<xsd:element name="opt" default="zzz" />
</xsd:schema>
</types>
<message name="get_it">
<part name="opt" type="typens:opt"/>
</message>
<message name="get_itResponse">
<part name="return" type="xsd:string"/>
</message>
<portType name="fpPortType">
<operation name="get_it">
<documentation>
Enter description here...
</documentation>
<input message="typens:get_it"/>
<output message="typens:get_itResponse"/>
</operation>
</portType>
<binding name="fpBinding" type="typens:fpPortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="get_it">
<soap:operation soapAction="urn:fpAction"/>
<input>
<soap:body namespace="urn:wsdl" use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body namespace="urn:wsdl" use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="wsdlService">
<port name="fpPort" binding="typens:fpBinding">
<soap:address location="**********/>
</port>
</service>
</definitions>
======== SOAP request ==============
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="urn:wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:get_it>
<opt
xsi:nil="1"/>
</ns1:get_it>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
=========== SOAP Response =========
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="urn:wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:get_itResponse>
<return xsi:nil="1"/>
</ns1:get_itResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Expected result:
----------------
array(1) {
[0]=>
string(27) "string get_it(opt $opt)"
}
zzz
Actual result:
--------------
array(1) {
[0]=>
string(27) "string get_it(UNKNOWN $opt)"
}
NULL
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=34643&edit=1
Thread (13 messages)
- camka at email dot ee
- sniper@php.net#34643 [Opn->Fbk]: wsdl default value
- camka at email dot ee#34643 [Fbk->Opn]: wsdl default value
- tony2001@php.net#34643 [Opn->Asn]: wsdl default value
- dmitry@php.net#34643 [Asn->Csd]: wsdl default value
- camka at email dot ee#34643 [Csd]: wsdl default value
- camka at email dot ee#34643 [Csd->Opn]: wsdl default value
- sniper@php.net#34643 [Opn->Csd]: wsdl default value
- camka at email dot ee#34643 [Csd->Opn]: wsdl default value
- sniper@php.net#34643 [Opn->Fbk]: wsdl default value
- camka at email dot ee#34643 [Fbk->Opn]: wsdl default value
- sniper@php.net#34643 [Opn->Asn]: wsdl default value
- dmitry@php.net#34643 [Asn->Csd]: wsdl default value