RE: Problem with empty tags

Martin Gainty <[email protected]>
Newsgroups gmane.text.xml.axis.user
Message-ID <[email protected]>


From: [email protected]
To: [email protected]
CC: [email protected]
Subject: Re: Problem with empty tags
Date: Fri, 5 Dec 2014 13:00:34 +0000







Hi, I managed to fix my problem.




I am still using ADB, but I added databindingname=“xmlbeans”
as a parameter to axis2-wsdl2java
The new generated code handles empty tags now :)

MG>wanted to make sure your parser parsed RequestType, ResponseType Elements before attempted extension 
MG>by other elements...xmlbeans has a tendency to go overboard with "hundreds of generated classes"
MG>the good news is that each xmlbean is constructed as a discrete atomic unit before the next bean is constructed
MG>if your ADB RequestType and ResponseType XML elements are discrete atomic units (and not jumbled together)
MG>this would be considered a bug in ADB 
MG>if you file a bug report I will make sure this problem is addressed
MG>Takk,




Regards,
Tomas










From: Tomas Andersen <[email protected]>

Date: Thursday 4 December 2014 09:54

To: "[email protected]" <[email protected]>

Cc: "[email protected]" <[email protected]>

Subject: Re: Problem with empty tags








Thank you for the suggestion, but still axis won’t handle the XML.

I tried to modify the xsd to this:





<xsd:complexType name="HjemmelResponseType">
  <xsd:annotation>
    <xsd:documentation>Type som inneholder informasjon om en skjermingshjemmel ved response</xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="SkjermingskodeResponseType">
      <xsd:sequence>
        <xsd:element name="Navn" type="cct:navn">
          <xsd:annotation>
            <xsd:documentation>Angir navnet på hjemmelen.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="Beskrivelse" type="cct:tekst">
          <xsd:annotation>
            <xsd:documentation>Beskrivelse av hjemmel.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>



but still I get this error message:
org.apache.axis2.databinding.ADBException: Unexpected subelement {urn:no:vegvesen:saksarkiv:felles:typer:1}Hjemmel
When part of the response is on the form


               <Skjerming>
                  <Kode>
                     <Navn>U</Navn>
                     <Beskrivelse>Ugradert</Beskrivelse>
                     <Hjemmel/>
                  </Kode>
               </Skjerming>






Any ideas? Will it help to try to use something else to generate the clientcode  instead of ADB? JiBX?





Regards,

Tomas Andersen




















Hi



I am having a problem with a generated client from a WSDL.
I am using Apache Axis2/Java 1.6.2



We are communicating with a SOAP Service which is returning the following XML structure:

               <Skjerming>
                  <Kode>
                     <Navn>U</Navn>
                     <Beskrivelse>Ugradert</Beskrivelse>
                     <Hjemmel/>
                  </Kode>
               </Skjerming>


MG>take a look at this ResponseType



   <xs:complexType name="ResponseType">

        <xs:sequence>

            <xs:element name="integer1" type="xs:unsignedInt"/>

            <xs:element name="integer2" type="xs:unsignedInt"/>

        </xs:sequence>

    </xs:complexType>

 <!-- the endtag for xs:complexType is here -->

<!-- we may now reference the tag ResponseType in further declarations -->



    <xs:complexType name="UpdateResponseType">

        <xs:complexContent>

<!-- this declaration says for my current UpdateResponseType tag i will extend from predefined ResponseType -->

<!-- the parser has already parsed ResponseType so any tags downstream will be able to extend from it as seen here -->

            <xs:extension base="def:ResponseType">

                <xs:choice>

                    <xs:element name="updateResponseChoice" type="xs:unsignedInt"/>

                    <xs:element name="updateResponseChoice2" type="xs:unsignedInt"/>

                </xs:choice>

            </xs:extension>

        </xs:complexContent>

    </xs:complexType>

MG>



MG>your definition of the 2 responseTypes are jumbled together so the parser is unable to make the distinction between

MG>HjemmelResponseType and  
SkjermingskodeResponseType




The tag named Hjemmel is causing AXIS2 problems. I get a ADBException: Unexpected subelement



The XSD describes the tag like this:




<xsd:complexType name="SkjermingskodeResponseType">
  <xsd:annotation>
    <xsd:documentation>Type som inneholder informasjon om skjermingskode ved response</xsd:documentation>
  </xsd:annotation>
  <xsd:sequence>
    <xsd:element name="Navn" type="cct:navn">
      <xsd:annotation>
        <xsd:documentation>Angir navnet på skjermingskoden.</xsd:documentation>
      </xsd:annotation>
    </xsd:element>
    <xsd:element name="Beskrivelse" type="cct:tekst">
      <xsd:annotation>
        <xsd:documentation>Beskrivelse av avskjermingskoden.</xsd:documentation>
      </xsd:annotation>
    </xsd:element>
    <xsd:element name="Hjemmel" type="HjemmelResponseType">
      <xsd:annotation>
        <xsd:documentation>Angir hjemmel som skal benyttes.</xsd:documentation>
      </xsd:annotation>
    </xsd:element>
  </xsd:sequence>
</xsd:complexType>



<xsd:complexType name="HjemmelResponseType">
  <xsd:annotation>
    <xsd:documentation>Type som inneholder informasjon om en skjermingshjemmel ved response</xsd:documentation>
  </xsd:annotation>
  <xsd:sequence>
    <xsd:element name="Navn" type="cct:navn">
      <xsd:annotation>
        <xsd:documentation>Angir navnet på hjemmelen.</xsd:documentation>
      </xsd:annotation>
    </xsd:element>
    <xsd:element name="Beskrivelse" type="cct:tekst">
      <xsd:annotation>
        <xsd:documentation>Beskrivelse av hjemmel.</xsd:documentation>
      </xsd:annotation>
    </xsd:element>
  </xsd:sequence>
</xsd:complexType>



If i mock the SOAP Service and replaces the <Hjemmel/> tag with the following XML everything works ok:




               <Skjerming>
                  <Kode>
                     <Navn>U</Navn>
                     <Beskrivelse>Ugradert</Beskrivelse>



MG>Here your new tag Hjemmel is being declared with no extensions or relationships to other tags


                     <Hjemmel>
                      <Navn>A</Navn>
                      <Beskrivelse>AAA</Beskrivelse>
                     </Hjemmel>

MG>end tag Hjemmel




                  </Kode>
               </Skjerming>









Is there a way to be able to handle empty elements on the form <tag/> as a client using axis2?
Both for subtrees and for leaf-elements? If I put in a <tag/> for a leaf I get a Nullpointerexception because AXIS2 fails with toString on this element.



Best Regards,



Tomas Andersen

Senior Consultant

+47 91 87 32 77





Tønne Huitfeldts
 Plass 2  |  N-1767 Halden  |  NORWAY

www.morecom.no <www.morecom.no>




------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

The one common undertaking and universal instrument of the great majority of the human race is the United Nations. A patient, constructive long-term use of its potentialities can bring a real and secure peace to the world.

- Trygve Lie.......................... Former Secretary General of United Nations





Disclaimer: This e-mail is bound by the terms and conditions described atwww.morecom.no/mail-disclaimer.html <http://www.morecom.no/mail-disclaimer.html>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.