プライマリ・コンテンツに移動
Java Platform, Standard Editionツール・リファレンス
リリース10
E94992-01
目次へ移動
目次

前
次

xjc

xjcシェル・スクリプトは、XMLスキーマ・ファイルをコンパイルして、完全注釈付きJavaクラスにする場合に使用します。

形式

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

これは、xjcコマンド行オプションです。「xjcコマンドのオプション」を参照してください。

schema file/URL/dir/jar

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

これは、コンパイル対象となる1つ以上のスキーマ・ファイルを指定します。ディレクトリを指定した場合、xjcコマンドはすべてのスキーマ・ファイルでそのディレクトリをスキャンし、それらをコンパイルします。

-b bindinfo

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

注意:

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

説明

プラットフォームのbinディレクトリにある適切なxjcシェル・スクリプトを使用して、バインディング・コンパイラを起動します。バインディング・コンパイラを実行するAntタスクも用意されています。

xjcコマンドのオプション

-nv

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

デフォルトでは、xjcバインディング・コンパイラは、ソース・スキーマを処理する前に厳密な検証を実行します。

-extension

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

-b file/dir

このオプションは、処理対象となる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バインディング・コンパイラでは作成されません。

デフォルトでは、xjcバインディング・コンパイラは、Javaコンテンツ・クラスを現在のディレクトリに生成します。

-p pkg

このコマンド行オプションを使用してターゲット・パッケージを指定した場合は、その指定によって、パッケージ名に対するすべてのバインディング・カスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムがオーバーライドされます。

-m name

このオプションは、指定のJavaモジュール名を使用してmodule-info.javaを生成します。

-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形式をサポートします。

-readOnly

このオプションは、xjcバインディング・コンパイラが生成されたJavaソースに読取り専用マークを付けるように強制します。

デフォルトでは、xjcバインディング・コンパイラは、生成するJavaソース・ファイルを書き込みから保護しません。

-npa

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

-no-header

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

-target [2.0|2.1]

このオプションは、指定されたJAXWS仕様のバージョンに従ってコードを生成します。デフォルトは2.2です。使用できる値は、2.02.1および2.2です。

-encoding encoding

このオプションは、生成されるソース・ファイルの文字エンコーディングを指定します。

-enableIntrospection

このオプションを使用すると、BeanイントロスペクションAPIを有効にするブール型のgetterおよびsetterを正しく生成できます。

-disableXmlSecurity

このオプションは、XML文書の解析時のXMLセキュリティ機能を無効にします。

-contentForWildcard

このオプションは、複数のxs:any導出要素を持つタイプのコンテンツ・プロパティを生成します。

-xmlschema

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

-dtd

このオプションは、入力スキーマをXML DTDとして処理します(試験的でサポート対象外)。RELAX NGスキーマのサポートはJAXB Vendor Extensionとして提供されています。

-wsdl

このオプションは、入力をWSDLとして処理し、その内部のスキーマをコンパイルします(試験的でサポート対象外)。

-verbose

このオプションは、情報メッセージを出力したりエラーの発生時にスタック・トレースを表示するなど、詳細出力を追加で生成します。

-quiet

このオプションは、進捗情報や警告など、コンパイラの出力を抑制します。

-help

このオプションは、コンパイラ・スイッチの簡単なサマリーを表示します。

-version

このオプションは、コンパイラのバージョン情報を表示します。

-fullversion

このオプションは、フル・バージョン情報を表示します。

xjcコマンドの拡張機能

-Xpropertyaccessors

このオプションでは、生成されたクラスに対してFIELDではなく、XmlAccessType PROPERTYを使用します。

-mark-generated

このオプションは、生成されたコードに注釈@javax.annotation.Generatedを付けます。

-Xinject-code

このオプションは、生成されたコードに指定のJavaコードを挿入します。

-episode file

このオプションは、個々のコンパイルごとに指定されたエピソード・ファイルを生成します。

-XLocator

このオプションにより、生成されたコードでは、アンマーシャリング後にJava Beanインスタンスに含まれるソースXMLに関するSimple API for XML (SAX) Locator情報が公開されます。

-Xsync-methods

このオプションは、生成されたすべてのメソッド・シグニチャにsynchronizedキーワードが含められます。

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

-hostおよび-port

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

-use-runtime

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

-source

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

xjcコマンドのコンパイラの制限事項

通常は、関連するすべてのスキーマを、同じバインディング・コンパイラ・スイッチを指定して1つの単位としてコンパイルするのが最も安全です。xjcコマンドを実行するときは、次のリストに示す制限に注意してください。このような問題のほとんどは、xjcコマンドを複数回呼び出して複数のスキーマをコンパイルする場合にのみ当てはまります。

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

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

  2. jaxb:packageのカスタマイズがある場合。

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

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

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

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

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