You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Murrell, Aaron" <Aa...@hp.com> on 2002/05/13 19:25:10 UTC

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%40tkmsftngp0
5


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