Thanks again Andreas. Based on what you said, I was able to find that the wsdd was incorrect for that particular service. It is not spitting out the correct XML, and axis2 is happy with it.
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: "Andreas Veithen" <[email protected]> > Cc: [email protected] > Sent: Tuesday, May 12, 2009 5:11:43 PM GMT -07:00 US/Canada Mountain > Subject: Re: axis 2 unexpected Subelement (BUG???) > > Thanks Andreas, I think I get it now. Right, element b is in fact the > same namespace of a, just the contents are of a different namespace. > Right? > > 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 5:00:23 PM GMT -07:00 US/Canada > Mountain > > Subject: Re: axis 2 unexpected Subelement (BUG???) > > > > --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-- > > > > ... and the namespace is the targetNamespace of the schema where > the > > element has been declared > > (http://APASProxy.ServiceContracts/2007/04), > > not the namespace of the type (http://APASProxy.DataTypes/2007/04). > > The type doesn't determine the name of the element, only its > content > > model. > > > > If you are still not convinced, think about the following element > > declaration: > > > > <element name="a"> > > <complexType> > > <sequence> > > <element name="b" type="string"/> > > </sequence> > > </complexType> > > </element> > > > > According to your reasoning, the element b should have namespace > > http://www.w3.org/2001/XMLSchema. This is definitely not true. > > > > Andreas > > > > On Wed, May 13, 2009 at 00:38, Trenton D. Adams > <[email protected]> > > wrote: > > > 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. > > >> >> >> > --- > > >> >> > > > >> > > > >
