Browse Source
Fixed bug #36908 (wsdl default value overrides value in soap request).
migration/RELEASE_1_0_0
Fixed bug #36908 (wsdl default value overrides value in soap request).
migration/RELEASE_1_0_0
3 changed files with 103 additions and 4 deletions
-
10ext/soap/php_encoding.c
-
46ext/soap/tests/bugs/bug36908.phpt
-
51ext/soap/tests/bugs/bug36908.wsdl
@ -0,0 +1,46 @@ |
|||
--TEST-- |
|||
Bug #36908 (wsdl default value overrides value in soap request) |
|||
--SKIPIF-- |
|||
<?php |
|||
if (!extension_loaded('soap')) die('skip soap extension not available'); |
|||
?> |
|||
--INI-- |
|||
soap.wsdl_cache_enabled=0 |
|||
--FILE-- |
|||
<?php |
|||
class PublisherService { |
|||
function add($publisher) { |
|||
return $publisher->region_id; |
|||
} |
|||
} |
|||
$input = |
|||
'<?xml version="1.0" encoding="UTF-8"?> |
|||
<soapenv:Envelope |
|||
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" |
|||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
|||
<soapenv:Body> |
|||
<ns1:add xmlns:ns1="urn:PublisherService" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> |
|||
<publisher href="#id0"/> |
|||
</ns1:add> |
|||
<multiRef xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" |
|||
xmlns:ns3="http://soap.dev/soap/types" id="id0" soapenc:root="0" |
|||
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" |
|||
xsi:type="ns3:publisher"> |
|||
<region_id href="#id5"/> |
|||
</multiRef> |
|||
<multiRef xmlns:ns5="http://soap.dev/soap/types" |
|||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id5" |
|||
soapenc:root="0" |
|||
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" |
|||
xsi:type="xsd:long">9</multiRef> |
|||
</soapenv:Body> |
|||
</soapenv:Envelope>'; |
|||
ini_set('soap.wsdl_cache_enabled', false); |
|||
$server = new SoapServer(dirname(__FILE__)."/bug36908.wsdl"); |
|||
$server->setClass("PublisherService"); |
|||
$server->handle($input); |
|||
?> |
|||
--EXPECT-- |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:PublisherService" 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:addResponse><out xsi:type="xsd:string">9</out></ns1:addResponse></SOAP-ENV:Body></SOAP-ENV:Envelope> |
|||
@ -0,0 +1,51 @@ |
|||
<?xml version="1.0"?> |
|||
<wsdl:definitions 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:api="http://soap.dev/soap/PublisherService" |
|||
xmlns:types="http://soap.dev/soap/types" |
|||
targetNamespace="http://soap.dev/soap/PublisherService"> |
|||
<wsdl:types> |
|||
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
|||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" |
|||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" |
|||
xmlns:types="http://soap.dev/soap/types" |
|||
targetNamespace="http://soap.dev/soap/types"> |
|||
<xsd:complexType name="publisher"> |
|||
<xsd:all> |
|||
<xsd:element name="region_id" type="xsd:long" default="52"/> |
|||
</xsd:all> |
|||
</xsd:complexType> |
|||
</xsd:schema> |
|||
</wsdl:types> |
|||
<wsdl:message name="addInput"> |
|||
<wsdl:part name="publisher" type="types:publisher"/> |
|||
</wsdl:message> |
|||
<wsdl:message name="addOutput"> |
|||
<wsdl:part name="out" type="xsd:string"/> |
|||
</wsdl:message> |
|||
<wsdl:portType name="PublisherServicePortType"> |
|||
<wsdl:operation name="add"> |
|||
<wsdl:input message="api:addInput"/> |
|||
<wsdl:output message="api:addOutput"/> |
|||
</wsdl:operation> |
|||
</wsdl:portType> |
|||
<wsdl:binding name="PublisherServiceBinding" type="api:PublisherServicePortType"> |
|||
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> |
|||
<wsdl:operation name="add"> |
|||
<soap:operation soapAction="urn:PublisherService#add" style="rpc"/> |
|||
<wsdl:input> |
|||
<soap:body use="encoded" namespace="urn:PublisherService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> |
|||
</wsdl:input> |
|||
<wsdl:output> |
|||
<soap:body use="encoded" namespace="urn:PublisherService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> |
|||
</wsdl:output> |
|||
</wsdl:operation> |
|||
</wsdl:binding> |
|||
<wsdl:service name="PublisherService"> |
|||
<wsdl:port name="PublisherServicePort" binding="api:PublisherServiceBinding"> |
|||
<soap:address location="http://soap.dev/soap//publisher_test.php"/> |
|||
</wsdl:port> |
|||
</wsdl:service> |
|||
</wsdl:definitions> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue