Java - Jaxb - Xjc - JAXB (schema|binding) compiler)

Usage

Usage: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...
If dir is specified, all schema files in it will be compiled.
If jar is specified, /META-INF/sun-jaxb.episode binding file will be compiled.
Options:
  -nv                :  do not perform strict validation of the input schema(s)
  -extension         :  allow vendor extensions - do not strictly follow the
                        Compatibility Rules and App E.2 from the JAXB Spec
  -b <file/dir>      :  specify external bindings files (each <file> must have its own -b)
                        If a directory is given, **/*.xjb is searched
  -d <dir>           :  generated files will go into this directory
  -p <pkg>           :  specifies the target package
  -httpproxy <proxy> :  set HTTP/HTTPS proxy. Format is [user[:password]@]proxyHost:proxyPort
  -httpproxyfile <f> :  Works like -httpproxy but takes the argument in a file to protect password
  -classpath <arg>   :  specify where to find user class files
  -catalog <file>    :  specify catalog files to resolve external entity references
                        support TR9401, XCatalog, and OASIS XML Catalog format.
  -readOnly          :  generated files will be in read-only mode
  -npa               :  suppress generation of package level annotations (**/package-info.java)
  -no-header         :  suppress generation of a file header with timestamp
  -target 2.0        :  behave like XJC 2.0 and generate code that doesnt use any 2.1 features.
  -xmlschema         :  treat input as W3C XML Schema (default)
  -relaxng           :  treat input as RELAX NG (experimental,unsupported)
  -relaxng-compact   :  treat input as RELAX NG compact syntax (experimental,unsupported)
  -dtd               :  treat input as XML DTD (experimental,unsupported)
  -wsdl              :  treat input as WSDL and compile schemas inside it (experimental,unsupported)
  -verbose           :  be extra verbose
  -quiet             :  suppress compiler output
  -help              :  display this help message
  -version           :  display version information


Extensions:
  -Xlocator          :  enable source location support for generated code
  -Xsync-methods     :  generate accessor methods with the 'synchronized' keyword
  -mark-generated    :  mark the generated code as @javax.annotation.Generated
  -episode <FILE>    :  generate the episode file for separate compilation

Example

xjc -p myPackage mySchema.xsd

where the options:

  • -p define the package destination name

Binding

Xjb

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings
	version="2.1"
	xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:hj="http://hyperjaxb3.jvnet.org/ejb/schemas/customizations"
	xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
	jaxb:extensionBindingPrefixes="hj orm">

	<jaxb:globalBindings generateIsSetMethod="true">
                    <jaxb:javaType name="java.lang.String" xmlType="xs:token"
                        parseMethod="formatter.StringAdapter.parseString"
                        printMethod="formatter.StringAdapter.printString"/>
                    <jaxb:javaType name="java.lang.Long" xmlType="xs:unsignedInt" />
                    <jaxb:javaType name="java.lang.Integer" xmlType="xs:integer" />
                    <jaxb:javaType name="java.lang.Boolean" xmlType="xs:boolean" />
        </jaxb:globalBindings>
	
	<jaxb:bindings schemaLocation="xudml1.xsd" node="/xs:schema">
		<jaxb:schemaBindings>
			<jaxb:package name="com.gerardnico.biserver"/>
		</jaxb:schemaBindings>
	</jaxb:bindings>
	
	<!--<jaxb:bindings schemaLocation="xudml1.xsd" node="/xs:schema">
		.../second xsd
	</jaxb:bindings>-->
	
</jaxb:bindings>

Default Package definition for the creation of the adapter

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/2001/XMLSchema"
	xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0">
	<annotation>
		<appinfo>
			<jaxb:schemaBindings>
				<jaxb:package name="org.acme.foo" />
			</jaxb:schemaBindings>
		</appinfo>
	</annotation>
</schema>

Powered by ComboStrap