JAXB Model (Auto) Creation

Previous - Next

Before you can develop a REST client you need to generate a JAXB model for the remote service. The model classes can be generated from an XML Schema specifying the service's response XML. Often a Schema is not provided, however it can usually be automatically generated from a sample response.

As example we use the GoGreen REST API to retrieve (top 10 product) documents:


This URL returns XML by default but you can specify JSON as well:


Copy REST Response XML to Project

Save the XML response as an XML file in your project:

If you need to work with an external RESTful API which supports JSON only, convert the saved JSON respons to XML using an online tool such as http://www.utilities-online.info/xmltojson/

Generate XML Schema

You can now generate an XML Schema from model.xml. Many IDEs (e.g. IntelliJ) have built-in tools to do this, or you can use the online  XSD/XML Schema Generator at freeformatter.com:

Online XSD Generator

Save the Schema in your project:

You can tweak the Schema to your specific needs.

Generate JAXB Java Classes from XML Schema

Finally, generate JAXB classes from the Schema. Again, many IDEs offer this functionality built-in or through a plugin, or you can use the command line tool xjc.

If you use xjc, create a package org.example.jaxb in the site module of your project ( site/src/main/java/org/example/jaxb) and run the following command from your project's root directory:

xjc site/src/main/resources/model.xsd -d site/src/main/java/org/example/jaxb

You will see the following output:

parsing a schema...
compiling a schema...

The generated Java classes will be placed in the package org.example.jaxb.generated.

Move the two classes to org.example.jaxb and remove the generated directory.

Previous - Next

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?

    We rely on cookies

    to optimize our communication and to enhance your customer experience. By clicking on the Accept and Close button, you agree to the collection of cookies. You can also adjust your preferences by clicking on Manage Preferences. For more information please see our Privacy policy.

    Manage cookies
    Accept & close

    Cookies preferences

    Accept & close