jxb:globalBindings element documentation: To illustrate all global controllable settings, listed all attributes with their default values except for @fixedAttributeAsConstantProperty and @collectionType. @fixedAttributeAsConstantProperty set to true indicates that all fixed attributes should be bound to Java constants. By default, fixed attributes are just mapped to either simple or collection property, which ever is more appropriate. @collectionType set to java.util.Vector specifies that all lists in the generated implementation classes should be represented internally as vectors. If @typesafeEnumBase was set to"xsd:string", it is a global way to specify that all simple type definitions deriving directly or indirectly from "xsd:string" and having enumeration facets should be bound to a typesafe enum. The typesafeEnumClass customization in simple type definition of USState would be redundant with this suggested change. If @typesafeEnumBase was set to empty string, "", no simple type definitions would ever be bound to a typesafe enum class by default binding. jxb:schemaBindings documentation: child element jxb:package specifes a java package for the Java representation generated for this schema. child element jxb:nameXmlTransform/jxb:elementName specifies that all Java element interfaces generated should have "Element" appended to names generated by default. For this schema, customization results in element interfaces CommentElement and PurchaseOrderElement being generated. Default binding would generate element interface Comment and PurchaseOrderElement. jxb:nameXmlTransform has children elements for the symbol space typeName, anonymousTypeName and modelGroupName. Package level documentation for generated package primer.myPo.]]> A <b>Purchase Order</b> consists of addresses and items. USAddress.]]> JAXB customization documentation: jaxb:property @generateIsSetMethod results in additional property methods,isSetQuantity and unsetQuantity, being generated to to be able to distinguish between schema defaulted value and values occuring explicitly within an instance document. By default, JAXB specification maps an xsd:positiveInteger to a java.math.BigInteger. Since this simpleType is constrained to be a value between 0..100, it is more natural for the Java program to map this to a "short" Java datatype. This is a localized way to map this simple type definition to a typesafe enum class. See jxb:globalBindings @typesafeEnumBase above for a global way to accomplish this for all simple type definitions similar to this one. Legal zip codes are limited to 5 digits, extended Zip Code not supported. JAXB customization: jaxb:javaType binding declaration overrides default binding of this type to a java.lang.Integer. The constraint facets for this type restrict the valid values of this type to easily fit within Java primitive datatype int. Given the value range of an xsd:integer, it is mapped to java.math.BigInteger by default. When one considers the constaining facets for this type are between 10000..99999, it is safe to bind this simple type directly to the Java datatype "int" using the following customization.