Hi Andrew,
I just looked at the code of SimpleSOAP. In SOAPonHTTP.cpp you can
find the following code:
// Find the start of the SOAP message.
nPos = KszMessage.find( g_KszSOAP );
The g_KszSOAP constant is defined as follows:
const std::string g_KszSOAP = "<SOAP";
SimpleSOAP indeed assumes that the namespace prefix of the root
element of the message starts with "SOAP" (which of course is not
required by any specification)! Sorry to say that, but you should
seriously consider migrating your code from SimpleSOAP to something
less braindead...
Regards,
Andreas
On 11 Jan 2008, at 21:26, Andrew Wood wrote:
Hi
The server, which I've wrote myself, uses the C++ based SimpleSOAP
framework. It may be a fault with the server but I cant see what it
may be.
This is the complete SOAP sent by Axis to call a method getString,
which takes a single string parameter on an object called Test.. to
me it looks perfectly OK..
POST /Test HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related,
text/*
User-Agent: Axis/1.4
Host: 10.0.1.4:2000
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 385
<?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>
<getString soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/
">
<name
xsi:type="xsd:string">Andrew</name>
</getString>
</soapenv:Body>
</soapenv:Envelope>
Regards
Andrew
On 11 Jan 2008, at 19:52, Andreas Veithen wrote:
@Andrew: The value of the namespace prefix (soapenv or SOAP-ENV)
indeed doesn't matter. The only thing that is relevant is the
namespace URI it is bound to (http://schemas.xmlsoap.org/soap/envelope/
). Do you have any idea what Web service framework the server uses?
Regards,
Andreas
On 11 Jan 2008, at 20:39, Alastair FETTES wrote:
Hi Andrew.
Theoretically soapenv should be perfectly acceptable.
Irregardless of
what the prefix is, as long as the actual namespace is the same it
should recognize things appropriately.