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?