Title: Incorrect namespace utilization in parameters problem?

In trying to create an AXIS based client that consumes a .NET web service I have encountered an issue that deserves some attention.  It relates specifically to the Interoperability to .NET web services and possibly an incorrect implementation of the xml standards.

Please refer to this newsgroup posting to get some background on someone with a similar issue
http://groups.google.com/groups?hl=en&selm=Ou7935y2BHA.1940%40tkmsftngp05


In essence, axis formats SOAP requests to define a namespace alias on the element which details the SOAP method to call like this:

<SOAP-ENV:Body>
<ns1:EchoName xmlns:ns1="http://tempuri.org/">
 <name xsi:type="xsd:string">Fred</name>
</ns1:EchoName>
 </SOAP-ENV:Body>

Instead of defining the DEFAULT namespace for child elements, only an alias (ns1) is defined and thus the .NET SOAP service won't ever get to the 'name' parameter as it never is understood to be part of the namespace that the SOAP method is in.  This could be fixed by declaring the default namespace as:

        <EchoName xmlns="http://tempuri.org/">
Or prefixing all child elements (parameters) with the namespace alias ns1 as:
        <ns1:EchoName xmlns:ns1="http://tempuri.org/">
         <ns1:name xsi:type="xsd:string">Fred</name>
        </ns1:EchoName>

If there is a way to use Axis in such a manner, I cannot find it.  If not, then should we think about adding this behavior to correct the implementation? 

Does anyone have any comments or suggestions on this issue?

Aaron

Reply via email to