xjc(1)

名前
XML バインドのための Java(TM) アーキテクチャ
バインドコンパイラ (xjc) 仕様のバージョン: 2.0
リファレンス実装 (Reference Implementation、RI) のバージョン: 2.0 ea3
JAXB 2.0: リリースノート | XJC | XJCTask | SchemaGen | schemagenTask | サンプルアプリケーション | Changelog
JAXB 1.0.x: リリースノート | Changelog
JAXB RI 拡張: 実行時プロパティ | XJC カスタマイズ | プラグイン開発
JAXB RI スキーマ言語: W3C XML スキーマ | RELAX NG | DTD
JAXB コミュニティ: Java.net ホームページ @
http://jaxb.dev.java.net | Developer interest list | FAQ

  xjc の起動

バインディングコンパイラを起動するには、使用するプラットフォームに応じた bin ディレクトリ内の xjc シェルスクリプトを使用します。また、バインディングコンパイラを実行するための Ant タスクも用意されています。xjc を Ant とともに使用するための手順を参照してください。

    Solaris/Linux の場合

     % /path/to/jaxb/bin/xjc.sh -help

    WindowsNT/2000/XP の場合

     > c:\path\to\jaxb\bin\xjc.bat -help

    出力

    Usage: xjc [-options ...] <schema_file/URL/dir> ... [-b <bindinfo>] ...
    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>            : specify external bindings files (each <file> must have its own -b)
     -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 <file>: set the proxy string (same format as above).
     -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)
     -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

    jaxb-xjc.jar JAR ファイルの実行

    ほかの方法がすべて失敗した場合でも、jaxb-xjc.jar ファイルの実行は行えるはずです。

        Solaris/Linux の場合:
            % java -jar $JAXB_HOME/lib/jaxb-xjc.jar -help

        Windows の場合:
            > java -jar %JAXB_HOME%\lib\jaxb-xjc.jar -help

    これは「xjc.sh」や「xjc.bat」を実行するのと同じです。また、この場合、JVM パラメータを設定できます。

  コマンド行オプションの概要

-nv デフォルトでは、XJC バインディングコンパイラは、ソーススキーマを処理する前に厳密な検証を実行します。このオプションを使用すると、厳密なスキーマ検証を無効にします。これは、バインディングコンパイラが検証を一切実行しないということではありません。より厳密でない検証を実行するということです。

-extension
    デフォルトでは、XJC バインディングコンパイラは、JAXB 仕様の「Compatibility」の章で説明されている規則を厳密に強制します。付録 E.2 には、JAXB v1.0 で完全にはサポートされていない一連の W3C XML スキーマ機能が定義されています。場合によっては、このスイッチで有効になる「-extension」モードでそれらの機能が使用できるかもしれません。また、デフォルトの厳密なモードでは、仕様に定義されているバインディングカスタマイズのみが使用できます。「-extension」スイッチを指定すれば、JAXB Vendor Extension を使用できます。

-b <file>
    処理する外部バインディングファイルを 1 つまたは複数指定します。(バインディングファイルごとに「-b」スイッチを指定する必要があります。) 外部バインディングファイルの構文は非常に柔軟です。複数のスキーマのカスタマイズが含まれる 1 つのバインディングファイルを使用したり、それらのカスタマイズを複数のバインディングファイルに分割したりできます。次に例を示します。

    xjc schema1.xsd schema2.xsd schema3.xsd -b bindings123.xjb
    xjc schema1.xsd schema2.xsd schema3.xsd -b bindings1.xjb -b bindings2.xjb -b bindings3.xjb
また、コマンド行にスキーマファイルとバインディングファイルを指定する順番は任意です。

-d <dir>
    デフォルトでは、XJC バインディングコンパイラは、Java コンテンツクラスを現在のディレクトリに生成します。このオプションを使用すると、代替出力ディレクトリを指定できます。出力ディレクトリはあらかじめ存在している必要があります。XJC バインディングコンパイラは、このディレクトリを自動的に作成しません。

-p <pkg>
    このコマンド行オプション経由でターゲットパッケージを指定した場合、その指定内容は、パッケージ名に対するすべてのバインディングカスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます。

-httpproxy <proxy>
    HTTP/HTTPS プロキシを指定します。形式は [user[:password]@]proxyHost[:proxyPort] です。従来の -host および -port は、下位互換性のためにリファレンス実装でもサポートされていますが、推奨されなくなりました。このオプションで指定されたパスワードは、top コマンドを使用するユーザーなど、ほかのユーザーが表示できる引数であることに注意してください。セキュリティを高めるには、次の -httpproxyfile を使用してください。

-httpproxyfile <file>
    HTTP/HTTPS プロキシをファイル経由で指定します。形式は上記と同じですが、このファイル内に指定されたパスワードをほかのユーザーが表示することはできません。

-classpath <arg>
    <jxb:javaType> および <xjc:superClass> カスタマイズが使用するクライアントアプリケーションのクラスファイルの検索場所を指定します。

-catalog <file>
    外部エンティティー参照を解決するカタログファイルを指定します。 TR9401、XCatalog、および OASIS XML Catalog 形式がサポートされます。 詳細は、『XML Entity and URI Resolvers』ドキュメントを参照するか、 カタログリゾルバのサンプルアプリケーションを調べてください。

-readOnly
    デフォルトでは、XJC バインディングコンパイラは、生成する Java ソースファイルを書き込みから保護しません。このオプションを使用すると、XJC バインディングコンパイラは生成される Java ソースを強制的に読み取り専用にします。

-npa
    パッケージレベルの注釈を **/package-info.java に生成することを抑制します。 このスイッチを使用して生成するコードでは、これらの注釈が ほかの生成済みクラスに内部化されます。

-xmlschema
    入力スキーマを W3C XML スキーマ (デフォルト) と見なします。 このスイッチを指定しなくても、入力スキーマは W3C XML スキーマと見なされます。

-relaxng
    入力スキーマを RELAX NG として扱います (試験的、未サポート)。RELAX NG スキーマのサポートは JAXB Vendor Extension として提供されています。

-relaxng-compact
    入力スキーマを RELAX NG 圧縮構文として処理します (試験的、未サポート)。RELAX NG スキーマのサポートは JAXB Vendor Extension として提供されています。

-dtd
    入力スキーマを XML DTD として扱います (試験的、未サポート)。RELAX NG スキーマのサポートは JAXB Vendor Extension として提供されています。

-wsdl
    入力を WSDL として扱い、その内部のスキーマをコンパイルします (試験的、未サポート)。

-quiet
    進捗や警告など、コンパイラの出力を抑制します。

-verbose
    情報メッセージを出力したり特定のエラー発生時にスタックトレースを表示したりするなど、極めて冗長になります。

-help
    コンパイラスイッチの概要を表示します。

-version
    コンパイラのバージョン情報を表示します。

<schema file/URL/dir>
    コンパイル対象となる 1 つまたは複数のスキーマファイルを指定します。ユーザーがディレクトリを指定した場合、xjc はそのディレクトリを走査し、そこで見つかったすべてのスキーマファイルをコンパイルします。

  非推奨コマンド行オプションおよび削除されたコマンド行オプションの概要

-host & -port
    これらのオプションは非推奨となり、-httpproxy オプションで置き換えられました。これらのオプションは、下位互換性を確保する目的で引き続きサポートされますが、ドキュメントには記載されず、将来のリリースで削除される可能性もあります。

-use-runtime
    JAXB 2.0 仕様で移植性のあるランタイムが規定されたため、JAXB RI が **/impl/runtime パッケージを生成する必要がなくなりました。このため、このスイッチは不要となり、削除されました。

-source
    -source 互換性スイッチは、JAXB 2.0 の最初の Early Access 版で導入されました。我々は、JAXB 2.0 の今後のリリースからこのスイッチを削除することにしました。1.0.x コードを生成する必要がある場合には、1.0.x コードベースのインストールを使用してください。

-Xlocator & -Xsync-methods
    これらのスイッチは現時点では無効化されています。この機能は将来、個別のダウンロードとして提供される予定です。

  コンパイラの制限

通常は、関連するスキーマは、同じバインディングコンパイラスイッチを指定して 1 つの単位としてコンパイルするのがもっとも安全です。

xjc を実行するときは、次に示す制限に注意してください。 これらの制限のほとんどは、 xjc を何度か呼び出して複数のスキーマをコンパイルする場合にのみ適用されます。

    *   複数のスキーマを同時にコンパイルする場合は、 ターゲットの Java パッケージ名に次の優先順位の規則が 適用されることに注意してください。

        1.  「-p」コマンド行オプションがもっとも優先されます。

        2.  <jaxb:package> のカスタマイズ

        3.  targetNamespace が宣言されている場合は、仕様に定義されている targetNamespace -> Java パッケージ名のアルゴリズムを適用します。

        4.  targetNamespace が宣言されていない場合は、"generated" という名前のハードコードされたパッケージを使用します。

    *   名前空間ごとに複数の <jaxb:schemaBindings> を持つことは不正です。このため、1 つのターゲット名前空間内の 2 つのスキーマを、異なる Java パッケージにコンパイルすることはできません。

    *   1 つの Java パッケージにコンパイルされるすべてのスキーマは、 XJC バインディングコンパイラに同時に送信する必要があります。 個別にコンパイルすることはできず、 予期したとおりに動作しません。

    *   複数のスキーマファイルにまたがる要素置換グループは、同時にコンパイルする必要があります。

$Revision: 1.4 $
$Date: 2005/10/27 18:53:02 $