I have also come accross this problem. (axis client to .NET) My problem was that axis was using prefixes, and .NET would NOT work unless using a default namespace and NO prefixes.
Although, it worked fine when i didnt have to pass any parameters. My solution was to make my own SoapEnvelope (from strings) and make a call using that rather than let axis make to envelope iteself. A messy workaround! .NET was a real pain in the ass to intergrate with! Daniel. > -----Original Message----- > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > Sent: 19 August 2004 13:01 > To: [EMAIL PROTECTED] > Subject: RE: Wrapped style and elementFormDefault="unqualified" > > > Frans, > > What error are you receiving from .NET? As you say, the two messages are > semantically equivalent, and .NET doesn't care whether you use a prefixed > namespace or a default namespace. Perhaps there are subelements in Node2 > that should not be namespace prefixed? That would make sense and be > consistent with Leena's error. > > - Anne > > -----Original Message----- > From: Frans Flippo [mailto:[EMAIL PROTECTED] > Sent: Thursday, August 19, 2004 4:42 AM > To: [EMAIL PROTECTED] > Subject: Re: Wrapped style and elementFormDefault="unqualified" > > Hi folks, > > Has anybody found a solution to this? I'm having a similar issue, but in > my case it's an Axis client accessing a .Net server. Axis is using a > default namespace whereas the .Net server on the other side is expecting > an explicit namespace, e.g.: > > Axis generates: > > <?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> > <Node1 xmlns="http://www.winterthur.nl/schema/example"> > <Node2>Node2 content</Node2> > </Node1> > </soapenv:Body> > </soapenv:Envelope> > > .Net expects: > > <?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> > <ns1:Node1 xmlns:ns1="http://www.winterthur.nl/schema/example"> > <ns1:Node2>Node2 content</ns1:Node2> > </ns1:Node1> > </soapenv:Body> > </soapenv:Envelope> > > (The nodes aren't actually called Node1 and Node2, but I can't show the > actual message). > > Of course, both messages are semantically equivalent, but apparently the > .Net server doesn't understand that. > > Is there any way to tell axis to not use a default namespace when > creating its xml? Is there something in the WSDL that could > influence this? > > Thanks, > Frans > > > Leena Janardanan wrote: > > >Hi all, > > I am having interoperabilty problems when invoking an Axis > wrapped style > web service from a .Net client. Trying not to clutter with too much > information here : > > > >My schema that defines the return types has > ELEMENTFORMDEFAULT="UNQUALIFIED". However, I notice that when my custom > serializer class is called, the root element of the response looks like > this: > > > ><ComplexProcResponse xmlns="urn:DotNetTest:pkg1"> > > > >Which defines "urn:DotNetTest:pkg1" as the default namespace for all the > elements. Therefore, .Net complains when it recieves the > response, by saying > that : > > > >Element '{urn:DotNetTest:pkg1}Prop1' is unexpected according to content > model of parent element '{urn:DotNetTest:pkg1}Concept1'. > >Expecting: Prop1, Prop2. > > > >This is what is returned from Axis : > ><ComplexProcResponse xmlns="urn:DotNetTest:pkg1"> > ><Concept1Array xmlns:pkg1="urn:DotNetTest:pkg1"> > > <Concept1><Prop1>a</Prop1><Prop2>b</Prop2></Concept1> > > <Concept1><Prop1>c</Prop1><Prop2>d</Prop2></Concept1> > > <Concept1><Prop1>e</Prop1><Prop2>f</Prop2></Concept1> > ></Concept1Array> > ></ComplexProcResponse> > > > > > >Whereas, this is what should be : > > <ns1:ComplexProcResponse > soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:ns1="urn:DotNetTest:pkg1"> > ><pkg1:Concept1Array xmlns:pkg1="urn:DotNetTest:pkg1"> > > <pkg1:Concept1><Prop1>a</Prop1><Prop2>b</Prop2></pkg1:Concept1> > > <pkg1:Concept1><Prop1>c</Prop1><Prop2>d</Prop2></pkg1:Concept1> > > <pkg1:Concept1><Prop1>e</Prop1><Prop2>f</Prop2></pkg1:Concept1> > ></pkg1:Concept1Array> > > > >Note: In my schema, Concept1Array and Concept1 are defined as qualified. > Only Prop1 and Prop2 are unqualified, by default. > > > >The following XML is generated by my serializer and written to > the context > (context.writeString()): > ><pkg1:Concept1Array xmlns:pkg1="urn:DotNetTest:pkg1"> > > <pkg1:Concept1><Prop1>a</Prop1><Prop2>b</Prop2></pkg1:Concept1> > > <pkg1:Concept1><Prop1>c</Prop1><Prop2>d</Prop2></pkg1:Concept1> > > <pkg1:Concept1><Prop1>e</Prop1><Prop2>f</Prop2></pkg1:Concept1> > ></pkg1:Concept1Array> > > > >Therefore, if the root element ComplexProcResponse didn't have > the default > namespace, all would be well. > > > > > > > >The wsdd entry for my web service looks like this: > > > ><service name="pkg1_doc" style="wrapped" use="literal"> > > <operation name="ComplexProc" qname="ns8:ComplexProc" > returnQName="ns8:Concept1Array" returnType="ns8:Concept1ArrayType" > xmlns:ns8="urn:DotNetTest:pkg1"/> > > <parameter name="allowedMethods" value="*"/> > > <parameter name="className" value="DotNetTest.pkg1.WSBroker"/> > > <wsdlFile>wsdl/DotNetTest_pkg1_doc.wsdl</wsdlFile> > > > > <typeMapping > deserializer="com.blackpearl.service.websphere.ParamDeserializerFactory" > encodingStyle="" qname="ns9:Concept1ArrayType" > serializer="com.blackpearl.service.websphere.ResultSerializerFactory" > type="java:com.blackpearl.service.datamodel.ResultWrapper" > xmlns:ns9="urn:DotNetTest:pkg1"/> > > </service> > > > > > >Is there any way to turn this off ? Any parameter that I can set ? OR, is > there way to do this in my custom serializer class ? Or is there a way to > make Axis use the schemas that define my types ? Axis doesn't > seem to do any > validation against schemas at all. > >Any help is appreciated, > > Thanks in advance, > > Leena. > > > > > > > > > -- > Quinity : Your Partner In eBusiness Solution Delivery > > Biltstraat 449 > 3572 AW Utrecht > P.O. Box 13097 > 3507 LB Utrecht > The Netherlands > > Telephone: (+31) (0)30 2335999 > Fax : (+31) (0)30 2335998 > WWW : http://www.quinity.com > ================================================================ > The information transmitted is intended only for the person or > entity to which it is addressed and may contain confidential > and/or privileged material. Any review, retransmission, > dissemination or other use of, or taking of any action in > reliance upon, this information by persons or entities other > than the intended recipient is prohibited. If you received > this in error, please contact the sender and delete the material > from any computer. Quinity is neither liable for the proper and > complete transmission of the information contained in this > communication nor for any delay in its receipt. > ================================================================ > > >