Dino, Is the issue same as in JIRA bug AXIS-1366? (http://issues.apache.org/jira/browse/AXIS-1366)
Or should we create a new issue for it? thanks, dims On Fri, 11 Mar 2005 12:41:41 -0800, Dino Chiesa <[EMAIL PROTECTED]> wrote: > Yes ! Ack! > > I have seen this before. > > When the schema does not declare an elementFormDefault , > .NET assumes it is one way, > And AXIS assumes it is the other. > > This is a bug in one or the other.(I don't know what a schema parser is > expected to do with EFD is missing). > > The workaround is to specify elementFormDefault, one way or the other, > in the schema. > > Good catch, Anne! > > > -----Original Message----- > From: Richard Wallis [mailto:[EMAIL PROTECTED] > Sent: Friday, March 11, 2005 1:29 PM > To: Anne Thomas Manes > Cc: Dino Chiesa > Subject: RE: Empty namespace - again > > Anne, > > Please award yourself a gold star! The elementFormDefault="qualified" > solved it, and 18:24 on a Friday night in an empty office after a [very] > long week. ;-} > > I've copied this to Dino for his interest. > > Many thanks again, > > Richard. > > > -----Original Message----- > > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > > Sent: 11 March 2005 18:10 > > To: Richard Wallis > > Subject: Re: Empty namespace - again > > > > I'm surprised that .NET got confused by this, because normally it > > handles valid schema definitions. Perhaps Dino can shead some light on > > > it. But here's a work around. Add the elementFormDefault="qualified" > > attribute to the scehma definition, which will make the <return> > > element namespace qualified. > > > > <wsdl:definitions xmlns:impl="urn:LookupBorrower" > > xmlns:intf="urn:LookupBorrower" > > xmlns:apachesoap="http://xml.apache.org/xml-soap" > > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" > > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > > targetNamespace="urn:LookupBorrower"> > > <wsdl:types> > > <xsd:schema targetNamepsace="urn:LookupBorrower" > > elementFormDefault="qualified"> > > <xsd:element name="echoString"> > > <xsd:complexType> > > <xsd:sequence> > > <xsd:element name="inputString" type="xsd:string"/> > > </xsd:sequence> > > </xsd:complexType> > > </xsd:element> > > <xsd:element name="echoResponse"> > > <xsd:complexType> > > <xsd:sequence> > > <xsd:element name="return" type="xsd:string"/> > > </xsd:sequence> > > </xsd:complexType> > > </xsd:element> > > </xsd:schema> > > </wsdl:types> > > <wsdl:message name="echoStringRequest"> > > <wsdl:part name="parameters" element="intf:echoString"/> > > </wsdl:message> <wsdl:message name="echoStringResponse"> > > <wsdl:part name="parameters" > > element="intf:echoResponse"/> </wsdl:message> <wsdl:portType > > name="LookupBorrower"> > > <wsdl:operation name="echoString"> > > <wsdl:input message="impl:echoStringRequest"/> > > <wsdl:output message="impl:echoStringResponse"/> > > </wsdl:operation> > > </wsdl:portType> > > <wsdl:binding name="LookupBorrowerSoapBinding" > > type="impl:LookupBorrower"> > > <wsdlsoap:binding style="document" > > transport="http://schemas.xmlsoap.org/soap/http"/> > > <wsdl:operation name="echoString"> > > <wsdl:input> > > <wsdlsoap:body use="literal"/> > > </wsdl:input> > > <wsdl:output> > > <wsdlsoap:body use="literal"/> > > </wsdl:output> > > </wsdl:operation> > > </wsdl:binding> > > <wsdl:service name="LookupBorrowerService"> > > <wsdl:port name="LookupBorrower" > > binding="impl:LookupBorrowerSoapBinding"> > > <wsdlsoap:address > > > > location="http://localhost:8080/axis/services/LookupBorrower"/> > > </wsdl:port> > > </wsdl:service> > > </wsdl:definitions> > > > > > > On Fri, 11 Mar 2005 17:56:50 -0000, Richard Wallis > > <[EMAIL PROTECTED]> wrote: > > > Anne, > > > > > > I did, but it didn't! > > > > > > Here is my bit of C# built in Visual C#.net pulling in the Web > > > reference of my wsdl as supplied by my Axis server: > > > > > > static void Main(string[] args) > > > { > > > ConsoleApplication1.rjwpc.LookupBorrowerService srv = new > > > ConsoleApplication1.rjwpc.LookupBorrowerService(); > > > String ret = srv.echoString("Hi there"); > > > Console.WriteLine("Response: "+ret); } > > > > > > It ret is set to null after the echoString() call. Digging > > in to the > > > auto created C# code I get the following: > > > > > > /// <remarks/> > > > [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", > > > RequestNamespace="urn:LookupBorrower", > > > ResponseNamespace="urn:LookupBorrower", > > > Use=System.Web.Services.Description.SoapBindingUse.Literal, > > > > > ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrappe > > > d) > > > ] > > > [return: System.Xml.Serialization.XmlElementAttribute("return")] > > > public string echoString(string inputString) { > > > object[] results = this.Invoke("echoString", new object[] > > > {inputString}); > > > return ((string)(results[0])); > > > } > > > > > > The ResponseNamespace="urn:LookupBorrower" makes me wonder > > what NS it > > > is looking for 'return' to be in. > > > Debug shows 'results' is a one element array with that > > element being > > > null. > > > > > > I'm getting more confused by the hour. > > > > > > Richard. > > > > > > P.S. I'm not too concerned about XMLSpy either! > > > > > > > > > > -----Original Message----- > > > > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > > > > Sent: 11 March 2005 17:36 > > > > To: Richard Wallis > > > > Subject: Re: Empty namespace - again > > > > > > > > I don't understand what XMLSpy is complaining about, but > > there are a > > > > number of known errors in XMLSpy. Perhaps it's just complaining > > > > because I used the same namespace for both the WSDL and > > the schema > > > > (which is acceptable). > > > > > > > > But there's nothing wrong with the second point. .NET will not > > > > object to the fact that <return> is unqualified, because > > that's what > > > > the schema says it should be. .NET was objecting to the fact that > > > > the child element of the SOAP Body was unqualified. > > > > > > > > Try. You'll see. > > > > > > > > Anne > > > > > > > > > > > > On Fri, 11 Mar 2005 17:01:42 -0000, Richard Wallis > > > > <[EMAIL PROTECTED]> wrote: > > > > > Hi Anne, > > > > > > > > > > Thanks for this, but two problems: > > > > > 1. My copy of XMLSpy complains "Message part 'parameters' > > > > (in Message > > > > > echoStringRequest) - parameter intf:echoString: NS > > prefix does not > > > > > refer to this schema!" > > > > > > > > > > But more importantly, > > > > > 2. The problem still persists but nested 1 level down, > > > > 'return' still > > > > > has xmlns="": > > > > > > > > > > <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> > > > > > <echoStringResponse xmlns="urn:LookupBorrower"> > > > > > <return xmlns="">Hello mum</return> > > > > > </echoStringResponse> > > > > > </soapenv:Body> > > > > > </soapenv:Envelope> > > > > > > > > > > Richard. > > > > > > > > > > > -----Original Message----- > > > > > > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > > > > > > Sent: 11 March 2005 15:56 > > > > > > To: [email protected] > > > > > > Subject: Re: Empty namespace - again > > > > > > > > > > > > Richard, > > > > > > > > > > > > This is not a valid doc/literal WSDL document. You need to > > > > > > define the WSDL differently depending on whether you want > > > > > > rpc/encoded, rpc/literal, of doc/literal. > > > > > > > > > > > > Here's how you should define your WSDL if you'd like > > to create a > > > > > > doc/literal service conforming to the "wrapped" > > > > > > programming convention (which offers the best > > > > interoperability with > > > > > > .NET). > > > > > > > > > > > > <wsdl:definitions xmlns:impl="urn:LookupBorrower" > > > > > > xmlns:intf="urn:LookupBorrower" > > > > > > xmlns:apachesoap="http://xml.apache.org/xml-soap" > > > > > > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" > > > > > > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > > > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > > > > > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > > > > > > targetNamespace="urn:LookupBorrower"> > > > > > > <wsdl:types> > > > > > > <xsd:schema targetNamepsace="urn:LookupBorrower"> > > > > > > <xsd:element name="echoString"> > > > > > > <xsd:complexType> > > > > > > <xsd:sequence> > > > > > > <xsd:element name="inputString" > > type="xsd:string"/> > > > > > > </xsd:sequence> > > > > > > </xsd:complexType> > > > > > > </xsd:element> > > > > > > <xsd:element name="echoResponse"> > > > > > > <xsd:complexType> > > > > > > <xsd:sequence> > > > > > > <xsd:element name="return" type="xsd:string"/> > > > > > > </xsd:sequence> > > > > > > </xsd:complexType> > > > > > > </xsd:element> > > > > > > </xsd:schema> > > > > > > </wsdl:types> > > > > > > <wsdl:message name="echoStringRequest"> > > > > > > <wsdl:part name="parameters" element="intf:echoString"/> > > > > > > </wsdl:message> > > > > > > <wsdl:message name="echoStringResponse"> > > > > > > <wsdl:part name="parameters" > > element="intf:echoResponse"/> > > > > > > </wsdl:message> > > > > > > <wsdl:portType name="LookupBorrower"> > > > > > > <wsdl:operation name="echoString"> > > > > > > <wsdl:input message="impl:echoStringRequest"/> > > > > > > <wsdl:output message="impl:echoStringResponse"/> > > > > > > </wsdl:operation> > > > > > > </wsdl:portType> > > > > > > <wsdl:binding name="LookupBorrowerSoapBinding" > > > > > > type="impl:LookupBorrower"> > > > > > > <wsdlsoap:binding style="document" > > > > > > transport="http://schemas.xmlsoap.org/soap/http"/> > > > > > > <wsdl:operation name="echoString"> > > > > > > <wsdl:input> > > > > > > <wsdlsoap:body use="literal"/> > > > > > > </wsdl:input> > > > > > > <wsdl:output> > > > > > > <wsdlsoap:body use="literal"/> > > > > > > </wsdl:output> > > > > > > </wsdl:operation> > > > > > > </wsdl:binding> > > > > > > <wsdl:service name="LookupBorrowerService"> > > > > > > <wsdl:port name="LookupBorrower" > > > > > > binding="impl:LookupBorrowerSoapBinding"> > > > > > > <wsdlsoap:address > > > > > > > > > > > > > > location="http://localhost:8080/axis/services/LookupBorrower"/> > > > > > > </wsdl:port> > > > > > > </wsdl:service> > > > > > > </wsdl:definitions> > > > > > > > > > > > > > > > > > > On Fri, 11 Mar 2005 15:37:34 -0000, Richard Wallis > > > > > > <[EMAIL PROTECTED]> wrote: > > > > > > > Here is the whole doc. > > > > > > > > > > > > > > For information I have tested this with all 4 possible > > > > > > combinations of > > > > > > > document/rpc & literal/encoded and the work fine > > axis to axis. > > > > > > > The problem is that .net doesn't like xmlns="" or encoded. > > > > > > > > > > > > > > <wsdl:definitions xmlns:impl="urn:LookupBorrower" > > > > > > > xmlns:intf="urn:LookupBorrower" > > > > > > > xmlns:apachesoap="http://xml.apache.org/xml-soap" > > > > > > > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" > > > > > > > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > > > > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > > > > > > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > > > > > > > targetNamespace="urn:LookupBorrower"> > > > > > > > <wsdl:message name="echoStringRequest"> > > > > > > > <wsdl:part name="inputString" > > > > type="xsd:string"/> > > > > > > > </wsdl:message> > > > > > > > <wsdl:message name="echoStringResponse"> > > > > > > > <wsdl:part name="return" type="xsd:string"/> > > > > > > > </wsdl:message> > > > > > > > <wsdl:portType name="LookupBorrower"> > > > > > > > <wsdl:operation name="echoString" > > > > > > > parameterOrder="inputString"> > > > > > > > <wsdl:input > > > > > > message="impl:echoStringRequest"/> > > > > > > > <wsdl:output > > > > > > message="impl:echoStringResponse"/> > > > > > > > </wsdl:operation> > > > > > > > </wsdl:portType> > > > > > > > <wsdl:binding name="LookupBorrowerSoapBinding" > > > > > > > type="impl:LookupBorrower"> > > > > > > > <wsdlsoap:binding style="document" > > > > > > > transport="http://schemas.xmlsoap.org/soap/http"/> > > > > > > > <wsdl:operation name="echoString"> > > > > > > > <wsdl:input> > > > > > > > <wsdlsoap:body use="literal" > > > > > > > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > > > > > > > namespace="urn:LookupBorrower"/> > > > > > > > </wsdl:input> > > > > > > > <wsdl:output> > > > > > > > <wsdlsoap:body use="literal" > > > > > > > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > > > > > > > namespace="urn:LookupBorrower"/> > > > > > > > </wsdl:output> > > > > > > > </wsdl:operation> > > > > > > > </wsdl:binding> > > > > > > > <wsdl:service name="LookupBorrowerService"> > > > > > > > <wsdl:port name="LookupBorrower" > > > > > > > binding="impl:LookupBorrowerSoapBinding"> > > > > > > > <wsdlsoap:address > > > > > > > > > location="http://localhost:8080/axis/services/LookupBorrower"/> > > > > > > > </wsdl:port> > > > > > > > </wsdl:service> > > > > > > > </wsdl:definitions> > > > > > > > > > > > > > > Regards, > > > > > > > Richard. > > > > > > > > -----Original Message----- > > > > > > > > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > > > > > > > > Sent: 11 March 2005 15:22 > > > > > > > > To: [email protected] > > > > > > > > Subject: Re: Empty namespace - again > > > > > > > > > > > > > > > > Please provide the rest of the WSDL document. > > > > > > > > > > > > > > > > Can we assume that you have defined the <return> element > > > > > > in the WSDL? > > > > > > > > > > > > > > > > Anne > > > > > > > > > > > > > > > > > > > > > > > > On Fri, 11 Mar 2005 15:00:29 -0000, Richard Wallis > > > > > > > > <[EMAIL PROTECTED]> wrote: > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > This combination in the WSDL used as input to wsdl2java: > > > > > > > > > > > > > > > > > > <wsdlsoap:binding style="document" ........... > > > > > > > > > <wsdlsoap:body use="literal" ......... > > > > > > > > > > > > > > > > > > Results in an empty namespace thus: > > > > > > > > > > > > > > > > > > <soapenv:Body> > > > > > > > > > <return xmlns="">Hello World</return> > > > > > > > > > </soapenv:Body> > > > > > > > > > > > > > > > > > > Following many threads on this list it is clear > > that this > > > > > > > > is a problem. > > > > > > > > > > > > > > > > > > If you are trying to consume an axis service in .net it > > > > > > > > appears to be > > > > > > > > > a 'show stopper'. I have tried use="encoded" but .net > > > > > > > > rejects it, and > > > > > > > > > also style="rpc" but still get xmlns="". > > > > > > > > > > > > > > > > > > As yet I have not been able to identify a work > > > > around for this. > > > > > > > > > Although there seems to some hints of a bug fix > > for this > > > > > > > > > in the pipeline, it is still a problem in 1.2RC3. > > > > > > > > > > > > > > > > > > Questions: > > > > > > > > > 1. Is there a work around for this so > > that I can > > > > > > > > > at > > > > > > > > least use > > > > > > > > > my axis service in .net? > > > > > > > > > > > > > > > > > > 2. Is there a fix for this that will appear in > > > > > > the next RC? > > > > > > > > > > > > > > > > > > > > > > > > > > > Richard Wallis > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- Davanum Srinivas - http://webservices.apache.org/~dims/
