xjc - XML バインドのための Java™ アーキテクチャー
バインディングコンパイラ

仕様バージョン: 2.1
リファレンス実装 (RI) バージョン: 2.1.3

xjc の起動

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

% xjc -help

出力

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

オプション

-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』ドキュメントを参照するか、catalog-resolver のサンプルアプリケーションを調べてください。
-readOnly
デフォルトでは、XJC バインディングコンパイラは、生成する Java ソースファイルを書き込みから保護しません。このオプションを使用すると、XJC バインディングコンパイラは生成される Java ソースを強制的に読み取り専用にします。
-npa
パッケージレベルの注釈を **/package-info.java に生成することを抑制します。このスイッチを使用して生成するコードでは、これらの注釈がほかの生成済みクラスに内部化されます。
-no-header
多少のメモとタイムスタンプを含むファイルヘッダーコメントの生成を抑制します。このオプションを使用すると、生成されたコードがわかりにくくなります。
-target 2.0
なんらかの JAXB 2.1 機能に依存するコードを生成しないようにします。これにより、生成されたコードを JAXB 2.0 ランタイム (JavaSE 6 など) で実行できます。
-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 はそのディレクトリを走査し、そこで見つかったすべてのスキーマファイルをコンパイルします。

非標準のコマンド行オプション

-Xlocator
生成されたコードでは、非整列化の後に Java Bean インスタンスに含まれるソース XML に関する SAX Locator 情報が公開されます。
-Xsync-methods
生成されたすべてのメソッドシグニチャーに synchronized キーワードが含められます。
-mark-generated
生成されたコードに注釈 @javax.annotation.Generated を付けます。
-episode <file>
コンパイルごとに指定されたエピソードファイルを生成します。

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

-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 コードベースのインストールを使用してください。

コンパイラの制限

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

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

関連項目


Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.