Hi Andrea, This is really confusing. How can GetHostInstitutionResult not depend on it's type? If it doesn't depend on it's type, then why have a "type"?
As far as I can tell, elementFormDefault="qualified" doesn't imply anything about having the same namespace af the parent. All it tells parsers and validators, is that if you set it to "qualified" then all of your XML elements in a document, related to that schema, MUST be prefixed with a namespace prefix. From w3c schools... --QUOTE-- This fragment: elementFormDefault="qualified" indicates that any elements used by the XML instance document which were declared in this schema must be namespace qualified. --QUOTE-- I have tested this locally with perl validation, and it is correct. If I have formElementDefault="qualified", then this is invalid and fails the xml validation... <document xmlns:blah="blah"> <a_blah_element> </a_blah_element> </document> But this is correct, and would succeed on xml validation... <document xmlns:blah="blah"> <blah:a_blah_element> </blah:a_blah_element> </document> The qualification setting has nothing to do with what you said "it must have the namespace of the schema in which it is declared". The GetHostInstitutionResult type was declared in a different schema, and that is the namespace that it should have. So, the XML returned by the service is indeed correct, but the stub code generated is incorrect. It should be qualifying it, which it is, but with the "type" that the element was declared with in the WSDL. I hope that makes some sense. Thanks. Trenton D. Adams Systems Analyst/Web Software Engineer Navy Penguins at your service! Athabasca University (780) 675-6195 :wq! ----- "Andreas Veithen" <[email protected]> wrote: > From: "Andreas Veithen" <[email protected]> > To: "Trenton D. Adams" <[email protected]> > Cc: [email protected] > Sent: Tuesday, May 12, 2009 12:39:34 PM GMT -07:00 US/Canada Mountain > Subject: Re: axis 2 unexpected Subelement (BUG???) > > The namespace of GetHostInstitutionResult doesn't depend on its type. > Since it appears in a sequence and elementFormDefault="qualified", it > must have the namespace of the schema in which it is declared, i.e. > "http://APASProxy.ServiceContracts/2007/04", exactly as the generated > code expects it. > > Andreas > > On Tue, May 12, 2009 at 20:29, Trenton D. Adams <[email protected]> > wrote: > > Okay, thanks Andreas. I'm not sure I understand completely. The > GetHostInstitutionResult is supposed to be of the schema type > "http://APASProxy.DataTypes/2007/04", no??? > > > > Anyhow, here's the items you mentioned... > > <wsdl:types> > > <schema elementFormDefault="qualified" > targetNamespace="http://APASProxy.ServiceContracts/2007/04" > xmlns="http://www.w3.org/2001/XMLSchema"> > > > > If the WSDL is wrong, I'm then wondering if this was an axis1 bug, > as according to the wsdl comment, it was generated by axis 1.4. > > > > Thanks. > > > > Trenton D. Adams > > Systems Analyst/Web Software Engineer > > Navy Penguins at your service! > > Athabasca University > > (780) 675-6195 > > :wq! > > > > ----- "Andreas Veithen" <[email protected]> wrote: > > > >> From: "Andreas Veithen" <[email protected]> > >> To: [email protected], "Trenton D. Adams" > <[email protected]> > >> Sent: Tuesday, May 12, 2009 12:07:21 PM GMT -07:00 US/Canada > Mountain > >> Subject: Re: axis 2 unexpected Subelement (BUG???) > >> > >> It is not. The fact that GetHostInstitutionResult is of type > >> tns1:RegisteredEducationalInstitution doesn't tell anything about > the > >> namespace of GetHostInstitutionResult. This depends on the > >> targetNamespace and elementFormDefault of the schema, which you > don't > >> show in your post. > >> > >> Andreas > >> > >> On Tue, May 12, 2009 at 19:55, Trenton D. Adams > <[email protected]> > >> wrote: > >> > Okay, I figured out what is happening. Is this an axis bug? > >> > > >> > It is putting the incorrect schema into the stub code... > >> > if (reader.isStartElement() > && > >> new > >> > javax.xml.namespace.QName("http://APASProxy.ServiceContracts/2007/04","GetHostInstitutionResult").equals(reader.getName())){ > >> > > >> > > >> > object.setGetHostInstitutionResult(RegisteredEducationalInstitution.Factory.parse(reader)); > >> > > >> > reader.next(); > >> > > >> > } // End of if for expected > property > >> start element > >> > > >> > else { > >> > > >> > } > >> > > >> > That "ServiceContracts" should read "DataTypes". The wsdl says > >> this... > >> > <?xml version="1.0" encoding="UTF-8"?> > >> > <wsdl:definitions > >> targetNamespace="http://APASProxy.ServiceContracts/2007/04" > >> xmlns:apachesoap="http://xml.apache.org/xml-soap" > >> xmlns:impl="http://APASProxy.ServiceContracts/2007/04" > >> xmlns:intf="http://APASProxy.ServiceContracts/2007/04" > >> xmlns:tns1="http://APASProxy.DataTypes/2007/04" > >> xmlns:tns2="http://_04._2007.APASProxy.DataTypes" > >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > >> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" > >> xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > >> > <!--WSDL created by Apache Axis version: 1.4 > >> > ... > >> > ... > >> > <element name="GetHostInstitutionResponse"> > >> > <complexType> > >> > <sequence> > >> > <element name="GetHostInstitutionResult" > >> type="tns1:RegisteredEducationalInstitution"/> > >> > </sequence> > >> > > >> > </complexType> > >> > </element> > >> > > >> > You will notice that tns1 is correctly linked to the DataTypes > >> schema, and not the ServiceContracts schema. > >> > > >> > > >> > Trenton D. Adams > >> > Systems Analyst/Web Software Engineer > >> > Navy Penguins at your service! > >> > Athabasca University > >> > (780) 675-6195 > >> > :wq! > >> > > >> > ----- "Trenton D. Adams" <[email protected]> wrote: > >> > > >> >> From: "Trenton D. Adams" <[email protected]> > >> >> To: [email protected], "Trenton D. Adams" > >> <[email protected]> > >> >> Sent: Tuesday, May 12, 2009 10:56:12 AM GMT -07:00 US/Canada > >> Mountain > >> >> Subject: Re: axis 2 unexpected Subelement > >> >> > >> >> Oops, I was wrong, it wasn't the code below failing, it was the > >> second > >> >> attempt using the wsdl2java classes that failed... > >> >> > >> >> final APASQueueServiceStub service; > >> >> service = new APASQueueServiceStub(); > >> >> APASQueueServiceStub.GetHostInstitution hostInst; > >> >> hostInst = new > >> APASQueueServiceStub.GetHostInstitution(); > >> >> APASQueueServiceStub.GetHostInstitutionResponse resp > = > >> >> service.GetHostInstitution(hostInst); > >> >> System.out.println("Institution: " + > >> >> > >> >> > >> > resp.getGetHostInstitutionResult().getEducationalInstitutionName()); > >> >> > >> >> I can post the WSDL if you like. > >> >> > >> >> Trenton D. Adams > >> >> Systems Analyst/Web Software Engineer > >> >> Navy Penguins at your service! > >> >> Athabasca University > >> >> (780) 675-6195 > >> >> :wq! > >> >> > >> >> ----- "Trenton D. Adams" <[email protected]> wrote: > >> >> > >> >> > From: "Trenton D. Adams" <[email protected]> > >> >> > To: "axis-user" <[email protected]> > >> >> > Sent: Tuesday, May 12, 2009 9:49:05 AM GMT -07:00 US/Canada > >> >> Mountain > >> >> > Subject: axis 2 unexpected Subelement > >> >> > > >> >> > Hi Guys, > >> >> > > >> >> > I can't figure out why I'm getting this error; is there > >> something > >> >> > wrong with the service's XML output? > >> >> > > >> >> > ServiceClient client; > >> >> > client = new ServiceClient(); > >> >> > Options options = new Options(); > >> >> > options.setTo(new > >> >> > > >> >> > >> > EndpointReference("https://apasproxy.athabascau.ca/axis/services/APASQueueService")); > >> >> > client.setOptions(options); > >> >> > OMElement request; > >> >> > OMFactory factory; > >> >> > factory = OMAbstractFactory.getOMFactory(); > >> >> > request = factory.createOMElement(new > >> >> > QName("http://APASProxy.DataTypes/2007/04/", > >> >> "GetHostInstitution")); > >> >> > OMElement response; > >> >> > response = client.sendReceive(request); > >> >> > System.out.println(response.toString()); > >> >> > > >> >> > <GetHostInstitutionResponse > >> >> > > >> >> > >> > xmlns="http://APASProxy.DataTypes/2007/04/"><ns1:GetHostInstitutionResult > >> >> > > >> >> > >> > xmlns:ns1="http://APASProxy.DataTypes/2007/04"><ns1:SourceId>48002000</ns1:SourceId><ns1:EducationalInstitutionName>Athabasca > >> >> > > >> >> > >> > University</ns1:EducationalInstitutionName></ns1:GetHostInstitutionResult></GetHostInstitutionResponse> > >> >> > org.apache.axis2.AxisFault: > >> >> org.apache.axis2.databinding.ADBException: > >> >> > Unexpected subelement GetHostInstitutionResult > >> >> > at > org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) > >> >> > at > >> >> > > >> >> > >> > servicecontracts.apasproxy._2007._04.APASQueueServiceStub.fromOM(APASQueueServiceStub.java:35302) > >> >> > at > >> >> > > >> >> > >> > servicecontracts.apasproxy._2007._04.APASQueueServiceStub.GetHostInstitution(APASQueueServiceStub.java:2467) > >> >> > at ca.athabascau.apas.APAS.main(APAS.java:70) > >> >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > >> Method) > >> >> > at > >> >> > > >> >> > >> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > >> >> > at > >> >> > > >> >> > >> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > >> >> > at java.lang.reflect.Method.invoke(Method.java:597) > >> >> > at > >> >> > > >> > com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) > >> >> > Caused by: java.lang.Exception: > >> >> > org.apache.axis2.databinding.ADBException: Unexpected > subelement > >> >> > GetHostInstitutionResult > >> >> > at > >> >> > > >> >> > >> > servicecontracts.apasproxy._2007._04.APASQueueServiceStub$GetHostInstitutionResponse$Factory.parse(APASQueueServiceStub.java:12645) > >> >> > at > >> >> > > >> >> > >> > servicecontracts.apasproxy._2007._04.APASQueueServiceStub.fromOM(APASQueueServiceStub.java:35226) > >> >> > ... 7 more > >> >> > Caused by: org.apache.axis2.databinding.ADBException: > Unexpected > >> >> > subelement GetHostInstitutionResult > >> >> > at > >> >> > > >> >> > >> > servicecontracts.apasproxy._2007._04.APASQueueServiceStub$GetHostInstitutionResponse$Factory.parse(APASQueueServiceStub.java:12639) > >> >> > ... 8 more > >> >> > > >> >> > Process finished with exit code 0 > >> >> > > >> >> > > >> >> > > >> >> > Trenton D. Adams > >> >> > Systems Analyst/Web Software Engineer > >> >> > Navy Penguins at your service! > >> >> > Athabasca University > >> >> > (780) 675-6195 > >> >> > :wq! > >> >> > > >> >> > __ > >> >> > This communication is intended for the use of the > recipient > >> to > >> >> > whom it > >> >> > is addressed, and may contain confidential, personal, and > or > >> >> > privileged > >> >> > information. Please contact us immediately if you are not > >> the > >> >> > intended > >> >> > recipient of this communication, and do not copy, > >> distribute, > >> >> or > >> >> > take > >> >> > action relying on it. Any communications received in > error, > >> or > >> >> > subsequent reply, should be deleted or destroyed. > >> >> > --- > >> > > >
