JAXB アプリケーションの xjc コマンド
Java™ Architecture for XML Binding (JAXB) ツールを使用して、xjc スキーマ・コンパイラー・ツールで XML スキーマから Java クラスを生成します。
JAXB は、XML-Java 間バインディングのテクノロジーです。これにより、 スキーマと Java オブジェクトの間、および XML インスタンス文書と Java オブジェクト・インスタンスの間の変換を行うことができます。JAXB テクノロジーは、ランタイム API と、XML 文書へのアクセスを簡単にする付随ツールから構成されています。 JAXB API およびツールを使用して、 Java クラスと XML スキーマの間のマッピングを確立することができます。 XML スキーマは、XML 文書のデータ・エレメントと構造を定義します。 JAXB テクノロジーは、XML 文書と Java オブジェクト間で双方向変換をできるようにするランタイム環境を提供します。 XML 文書に保管されているデータには、XML データ構造を理解していなくてもアクセスすることができます。
JAXB スキーマ・コンパイラーの xjc コマンド行ツールを使用して、XML スキーマ・ファイルから完全なアノテーションが付いた Java クラスを生成できます。 xjc スキーマ・コンパイラー・ツールを使用して、XML スキーマ定義 (XSD) から始めて、XSD スキーマで定義されたエレメントとタイプにマップする一連の JavaBeans を作成します。XML スキーマと Java クラス間のマッピングが存在するようになると、JAXB バインディング・ランタイム API を使用して、XML インスタンス文書と Java オブジェクトの間で変換を行うことができます。 その結果のアノテーション付き Java クラスには、マーシャルおよびアンマーシャル用の XML を構文解析するために JAXB ランタイムが必要とするすべての情報が含まれています。 生成された JAXB クラスは、Java API for XML Web Services (JAX-WS) アプリケーション内で、 または XML データの処理用の JAX-WS 以外の Java アプリケーション内で使用できます。


コマンド行から xjc ツールを使用する以外にも、 この JAXB ツールを Ant ビルド環境内で起動することができます。 Ant ビルド環境内で com.sun.tools.xjc.XJCTask Ant タスクを使用して xjc スキーマ・コンパイラー・ツールを起動します。 この Ant タスクが正しく機能するようにするには、ws_ant スクリプトを使用して Ant を起動する必要があります。

構文
コマンド行構文は次のとおりです。
![[Windows]](../images/windows.gif)
app_server_root\bin\xjc.bat [options] <schema_file/URL/directory_or_jar> ...[-b<binding_information>] ...
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
app_server_root/bin/xjc.sh [options] <schema_file/URL/directory_or_jar> ...[-b<binding_information>] ...
![[IBM i]](../images/iseries.gif)
app_server_root/bin/xjc [options] <schema_file/URL/directory_or_jar> ...[-b<binding_information>] ...
ディレクトリーを指定すると、ディレクトリー内のすべてのスキーマ・ファイルがコンパイルされます。
パラメーター
必須のパラメーターは、schema file/URL JAR ファイル名またはディレクトリーのロケーションのみです。 以下のパラメーターは、xjc コマンドではオプションです。
- -b <file_name or directory>
- 外部 JAX-WS ファイルまたは JAXB バインディング・ファイルを指定します。-b オプションを使用することで、複数の JAX-WS ファイルおよび JAXB バインディング・ファイルを指定できます。 ただし、各ファイルは、そのファイルそれぞれの -b オプションで指定しなければなりません。 ディレクトリーを指定すると、**/*.xjb が検索されます。
- -catalog <file_name>
- 外部エンティティー参照を解決するためのカタログ・ファイルを指定します。TR9401、XCatalog、および OASIS XML カタログ・フォーマットがサポートされています。
- -classpath <path>
- クラス・ファイルのロケーションを指定します。
- -d <directory>
- 生成済み出力ファイルを保管する場所を指定します。
- -dtd
- 入力を XML 文書タイプ定義 (DTD) として扱うように指定します。 このオプションは試験的なもので、サポートされていません。
- -extension
- JAXB 仕様で指定されていない機能のカスタム拡張を使用可能にするかどうかを指定します。拡張を使用すると、ポータブルではないアプリケーションになるか、または他の実装と相互運用されなくなることがあります。
- -help
- ヘルプ・メニューを表示します。
- -httpproxy <[user[:password]@]<proxyhost>:<proxyport>>
- HTTP または HTTPs プロキシーを指定します。
- -httpproxyfile <file_name>
- このパラメーターは、-httpproxy パラメーターに似ていますが、 ファイル内の引数を使用してパスワードを保護します。
- -no-header
- タイム・スタンプの付いたファイル・ヘッダーの生成を抑止するように指定します。
- -npa
- **/package-info.java パッケージ・レベルのアノテーションの生成を抑止するように指定します。
- -nv
- 入力スキーマに関する厳密な妥当性検査を行わないように指定します。
- -p <package_name>
- ターゲット・パッケージを指定します。
- -quiet
- xjc ツールからの出力を抑止するように指定します。
- -relaxng
- 入力を REgular LAnguage for XML Next Generation (RELAX NG) として扱うように指定します。 このオプションは試験的なもので、サポートされていません。
- -readOnly
- 生成したファイルを読み取り専用モードにするように指定します。
- -relaxng-compact
- 入力を REgular LAnguage for XML Next Generation (RELAX NG) 短縮構文として扱うように指定します。 このオプションは試験的なもので、サポートされていません。
- -target <version>
- 指定されているレベルの JAX-WS 仕様に準拠した出力を生成するように指定します。それぞれ JAXB 2.0 または JAX-WS 2.1 仕様に対する準拠コードをツールに生成させるためには、2.0 または 2.1 を指定します。 JAXB 2.1 仕様に対する準拠コードをツールに生成させるためには、2.1 を指定します。デフォルトのターゲット・バージョンは 2.2 で、JAXB 2.2 仕様の準拠コードが生成されます。
- Liberty プロファイルには target オプションが必要です。
- -verbose
- コンパイラーが実行している内容を出力するメッセージを指定します。
- -version
- バージョン情報を出力します。このオプションを指定した場合、 バージョン情報のみが出力され、通常のコマンド処理は行われません。
- -wsdl
- 入力を Web サービス記述言語 (WSDL) ファイルとして扱い、WSDL でスキーマをコンパイルするように指定します。 このオプションは試験的なもので、サポートされていません。
- -xmlschema
- 入力を World Wide Web Consortium (W3C) XML スキーマとして扱うように指定します。この値がデフォルトです。