Java Platform, Standard Editionツール・リファレンス
目次      

xjc

XMLスキーマ・ファイルをコンパイルして、完全注釈付きJavaクラスにします。

形式

xjc [ options ] schema file/URL/dir/jar ... [-b bindinfo ] ...

options

コマンド行オプション。「オプション」を参照してください。

schema file/URL/dir/jar ...

XMLスキーマ・ファイルの場所です。dirが指定されている場合は、その中にあるすべてのスキーマ・ファイルがコンパイルされます。jarが指定されている場合は、/META-INF/sun-jaxb.episodeバインディング・ファイルがコンパイルされます。

-b bindinfo

バインディング・ファイルの場所です。

説明

ユーザーのプラットフォームのbinディレクトリにある適切なxjcシェル・スクリプトを使用して、バインディング・コンパイラを起動します。バインディング・コンパイラを実行するAntタスクも用意されています。次のサイトで「Using the XJC with Ant」を参照してください。
http://jaxb.java.net/nonav/2.1.3/docs/xjcTask.html

オプション

-nv

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

-extension

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

-b file

処理する外部バインディング・ファイルを1つまたは複数指定します。バインディング・ファイルごとに-bスイッチを指定する必要があります。外部バインディング・ファイルの構文には柔軟性があります。複数のスキーマに対応したカスタマイズを含む単一のバインディング・ファイルを使用することも、そのカスタマイズを複数のバインディング・ファイルに分割することもできます(例: 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

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

-httpproxyfile file

ファイルを使用してHTTPまたはHTTPSプロキシを指定します。形式は-httpproxyオプションと同じですが、このファイル内に指定されたパスワードを他のユーザーが表示することはできません。

-classpath arg

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

-catalog file

外部エンティティ参照を解決するカタログ・ファイルを指定します。TR9401、XCatalogおよびOASIS XML Catalog形式がサポートされます。次のサイトで「XML Entity and URI Resolvers」を参照してください。
http://xerces.apache.org/xml-commons/components/resolver/resolver-article.html

-readOnly

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

-npa

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

-no-header

多少のメモとタイムスタンプを含むファイル・ヘッダー・コメントの生成を抑制します。このオプションを使用すると、生成されたコードとdiffコマンドとの互換性が高くなります。

-target 2.0

なんらかのJAXB 2.1機能に依存するコードを生成しないようにします。これにより、生成されたコードをJAXB 2.0ランタイム環境(Java SE 6など)で実行できます。

-xmlschema

入力スキーマをW3C XMLスキーマとして処理します(デフォルト)。このスイッチを指定しない場合、入力スキーマはW3C XMLスキーマと同様に処理されます。

-relaxing

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

-relaxing-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コマンドを複数回呼び出して複数のスキーマをコンパイルする場合にのみ適用されます。

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

  1. -pオプションがもっとも優先されます。

  2. jaxb:packageのカスタマイズです。

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

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

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

同じJavaパッケージにコンパイルされるスキーマはすべて、同時にXJCバインディング・コンパイラに送信される必要があります。個別にコンパイルできないため、期待どおりに動作しません。

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

関連項目

目次      

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