# SchemaGen

## `schemagen` Overview

The current schema generator can process either Java source files or class files.

We also provide an Ant task to run the schema generator - see the instructions for .

## Launching `schemagen`

The schema generator can be launched using the appropriate `schemagen` shell script in the `bin` directory for your platform.

If your java sources/classes reference other classes, they must be accessable on your system CLASSPATH environment variable, or they need to be given to the tool by using the `-classpath`/ `-cp` options. Otherwise you will see errors when generating your schema.

- Solaris/Linux

      % path/to/jaxb/bin/schemagen.sh Foo.java Bar.java ...
      Note: Writing schema1.xsd

- Windows

      > path\to\jaxb\bin\schemagen.bat Foo.java Bar.java ...
      Note: Writing schema1.xsd

## `schemagen` Syntax

`schemagen` OPTION java files

    Usage: schemagen [-options ...] <java files>

    Options:
        -d <path>             : specify where to place processor and javac generated class files
        -cp <path>            : specify where to find user specified files
        -classpath <path>     : specify where to find user specified files
        -encoding <encoding>  : specify encoding to be used for annotation processing/javac invocation
        -episode <file>       : generate episode file for separate compilation
        -disableXmlSecurity   : disables XML security features when parsing XML documents
        -version              : display version information
        -fullversion          : display full version information
        -help                 : display this usage message

### Summary of Command Line Options

-d <dir>

  By default, the schema generator will generate the content in the current directory. Use this option to specify an alternate output directory. The output directory must already exist, the schema generator will not create it for you.

-encoding <encoding>

  Set the encoding name for generated sources, such as EUC-JP or UTF-8. If `-encoding` is not specified, the platform default encoding is used.

-classpath <arg>

  Specify where to find client application class files.

-episode

  Generates the "episode file", which is really just a &binding.spec.name; customization file (but with vendor extensions). When people develop additional schemas that depend on what this schemagen invocation produces, they can use this episode file to have their generated code refer to your classes.

-help

  Display a brief summary of the generator switches.

-version

  Display the compiler version information.

-fullversion

  Display the compiler full version information.

## Generated Resource Files

The current schema generator simply creates a schema file for each namespace referenced in your Java classes. There is no way to control the name of the generated schema files at this time. Use for that purpose.