Hello,
I have spent nearly a day trying to work out why this is happening.
Im using the wsdl file below:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="Contact" targetNamespace="https://secure.powertext.co.uk/SOAP/def" xmlns:xsd1="https://secure.powertext.co.uk/SOAP/types.dtd" xmlns:tns="https://secure.powertext.co.uk/SOAP/def" xmlns:wsdl="http://schemas.xmlsoap.org/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">
<wsdl:types>
<xsd:schema targetNamespace="https://secure.powertext.co.uk/SOAP/types.dtd">
<xsd:complexType name="ContactDataArray">
<xsd:complexContent>
<xsd:restriction base="soapenc:Array">
<xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="string[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="unsubscribeContactRequest">
<wsdl:part name="username" type="xsd:string"></wsdl:part>
<wsdl:part name="password" type="xsd:string"></wsdl:part>
<wsdl:part name="unsubDataArray" type="xsd1:ContactDataArray"></wsdl:part>
</wsdl:message>
<wsdl:message name="unsubscribeContactResponse">
<wsdl:part name="unsubscribeContactResponse" type="xsd:string"></wsdl:part>
</wsdl:message>
<wsdl:portType name="ContactManagerPort">
<wsdl:operation name="unsubscribeContact">
<wsdl:input message="tns:unsubscribeContactRequest"></wsdl:input>
<wsdl:output message="tns:unsubscribeContactResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ContactManagerBinding" type="tns:ContactManagerPort">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="unsubscribeContact">
<soap:operation
soapAction="http://soap.powertext.co.uk/unsubscribeContact" />
<wsdl:input>
<soap:body use="encoded"
namespace="https://secure.powertext.co.uk/SOAP"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</wsdl:input>
<wsdl:output>
<soap:body use="encoded"
namespace="https://secure.powertext.co.uk/SOAP"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ContactManager">
<wsdl:port name="ContactManagerPort" binding="tns:ContactManagerBinding">
<soap:address location="http://soap.powertext.co.uk/Contact.php" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
When using NuSOAP the above WSDL parses fine and the correct data is returned.
When using PHP5's SOAP client it just hangs there waiting for data. However, if i change:
<wsdl:part name="unsubDataArray" type="xsd1:ContactDataArray"></wsdl:part>
to:
<wsdl:part name="unsubDataArray" type="tns:ContactDataArray"></wsdl:part>
it works fine for PHP5's client and fails for NuSOAP with the error:
"got wsdl error: https://secure.powertext.co.uk/SOAP/def:ContactDataArray (ContactDataArray) is not a supported type."
Whats going on here?. It must be some sort of name space issue. Has anyone had the same problem?
Mark.