[Mono-devel-list] Problem using SoapHttpClientProtocol class with PHP webservice

Jörg Rosenkranz joergr at voelcker.com
Thu Oct 16 05:28:16 EDT 2003


Hi all,

I have a problem using SoapHttpClientProtocol.
I want to access a webservice written in PHP using NuSOAP
(http://dietrich.ganx4.com/nusoap). This webservice can be
accessed using MS.NET without problems.

Now I've tried to access it using Mono and ran into the problem that 
the return values aren't decoded. I've tracked this problem down to System.Xml.Serialization.XmlSerializationReaderInterpreter.
In the function ReadMessage it uses a call to XmlReader.IsStartElement
which returns false because the namespaces don't match.

The webservice defines a target namespace "urn:Raptor" in it's 
WSDL file. The received SOAP message looks like:

<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope 
	SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"  
	xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"  
	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/"  
	xmlns:si="http://soapinterop.org/xsd">
  <SOAP-ENV:Body>
    <addpersonResponse>
	  <return xsi:type="xsd:string">Ok,1066295083-Hans-Meier</return>
    </addpersonResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


XmlReader.IsStartElement uses following values for comparison:
localName = "addpersonResponse"
LocalName = "addpersonResponse"
namespaceName = "urn:Raptor"
NamespaceURI = ""

Is this a System.XML.Webservices bug, a System.XML.Serialization 
bug or a bug in the PHP webservice?

Jörg.



More information about the Mono-devel-list mailing list