SOAP and .NET: <env: vs <soap:

I am interacting with a client's SOAP interface, and they provided me
with a WSDL however the create_rpc_driver method doesn't get it quite
right.

Thanks to input on these forums I've *almost* got it right.

Here is my code:
    @soap = SOAP::RPC::Driver.new(SOAP_URL,NS,action)
    @soap.wiredump_dev = STDOUT
    @soap.add_document_method('getAllVideos',action,
      [XSD::QName.new(NS,'getAllVideos')],
      [XSD::QName.new(NS,'getAllVideosResult')])

I have to do it that way with the namespaces so they come out right for
.NET (I think).

Here is my generated request:
POST [[snip]] HTTP/1.1
SOAPAction: "[[snip]]"
Content-Type: text/xml; charset=utf-8
User-Agent: SOAP4R/1.5.5 (/187, ruby 1.8.6 (2007-09-24) [x86_64-linux])
Content-Length: 424
Host: 66.230.202.184

<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <env:Body>
    <getAllVideos xmlns="[[snip]]">
      <UserName>username</UserName>
      <password>password</password>
    </getAllVideos>
  </env:Body>
</env:Envelope>

And the request I wish I had:
POST [[snip]] HTTP/1.1
Host: 66.230.202.184
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "[[snip]]"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getAllVideos xmlns="[[snip]]">
      <UserName>username</UserName>
      <password>password</password>
    </getAllVideos>
  </soap:Body>
</soap:Envelope>

The ONLY difference is that ruby namespaced the envelope and body as
"env" while the client uses "soap".

I am told that this does not matter for soap, but this is the only
difference. If it truly does not matter then I will have to blame my
client, and in that case I want to be absolutely sure that I am right.

By the way, the error on the client side is that one of the variables is
nil. I am guessing this is because he searches for an xml node named
"soap:Envelope" or something.

Thanks.

···

Date: Wed, 13 Feb 2008 16:17:51 GMT
--
Posted via http://www.ruby-forum.com/.