Red Hat Training

A Red Hat training course is available for Red Hat Fuse

36.3. Generating Java Classes for Simple Types


By default, named simple types do not result in generated types unless they are enumerations. Elements defined using a simple type are mapped to properties of a Java primitive type.
There are instances when you need to have simple types generated into Java classes, such as is when you want to use type substitution.
To instruct the code generators to generate classes for all globally defined simple types, set the globalBindings customization element's mapSimpleTypeDef to true.

Adding the customization

To instruct the code generators to create Java classes for named simple types add the globalBinding element's mapSimpleTypeDef attribute and set its value to true.
Example 36.13, “in-Line Customization to Force Generation of Java Classes for SimpleTypes” shows an in-line customization that forces the code generator to generate Java classes for named simple types.

Example 36.13. in-Line Customization to Force Generation of Java Classes for SimpleTypes

<schema targetNamespace="" 
      <jaxb:globalBindings mapSimpleTypeDef="true" />
Example 36.14, “Binding File to Force Generation of Constants” shows an external binding file that customizes the generation of simple types.

Example 36.14. Binding File to Force Generation of Constants

<jaxb:bindings xmlns:jaxb=""
  <jaxb:bindings schemaLocation="types.xsd">
    <jaxb:globalBindings mapSimpleTypeDef="true" />
This customization only affects named simple types that are defined in the global scope.

Generated classes

The class generated for a simple type has one property called value. The value property is of the Java type defined by the mappings in Section 32.1, “Primitive Types”. The generated class has a getter and a setter for the value property.

Example 36.15. Simple Type for Customized Mapping

<simpleType name="simpleton">
  <restriction base="xsd:string">
    <maxLength value="10"/>

Example 36.16. Customized Mapping of a Simple Type

@XmlType(name = "simpleton", propOrder = {"value"})
public class Simpleton {

    protected String value;

    public String getValue() {
        return value;

    public void setValue(String value) {
        this.value = value;