1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00
Files
archived-php-src/ext/soap/tests/bug69280.wsdl
Niels Dossche 476706165a Fix bug #69280: SoapClient classmap doesn't support fully qualified class name (#14398)
There's a hash table that maps type names to class name, but names with
a leading backslash are not supported. The engine has logic to strip
away the leading backslash that we should replicate here.

It works by checking if we need to make an actual copy in case an
unexpected (e.g. invalid data or leading backslash) situations are
detected. Upon making a copy we normalize the data in the table.

Furthermore, previously the code assumed that the key was always valid
and that the structure was a non-packed hash table. This isn't
necessarily the case. The new code fixes this as well.

Closes GH-14398.
2024-06-01 13:29:26 +02:00

47 lines
1.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:s0="http://tempuri.org/" name="TestWS" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<xs:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="AbstractClass">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="prop" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="RealClass1">
<xs:complexContent mixed="false">
<xs:extension base="s0:AbstractClass">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="prop1" type="xs:string" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
</types>
<message name="TestMethodSoapIn">
<part name="parameters" element="RealClass1" />
</message>
<portType name="TestWSSoap">
<operation name="TestMethod">
<input message="s0:TestMethodSoapIn" />
</operation>
</portType>
<binding name="TestWSSoap" type="s0:TestWSSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="TestMethod">
<soap:operation soapAction="http://tempuri.org/TestMethod" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="TestWS">
<port name="TestWSSoap" binding="s0:TestWSSoap">
<soap:address location="http://tempuri.org/" />
</port>
</service>
</definitions>