xjc(1) Java Webサービス・ツール xjc(1)

# 名前

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タスクもあります。http://jaxb.java.net/nonav/2.1.3/docs/xjcTask.htmlの Using the XJC with Antを参照してください

# オプション

•非標準オプションも参照してください

•非推奨で削除されたオプションも参照してください

-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*

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

-httpproxyfile file

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

-classpath arg

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

-catalog file

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

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

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

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

同じJavaパッケージにコンパイラされるスキーマはすべて、同時にXJCバインディング・コンパイラに送信される必要があります。別々にコンパイルすると、予想どおりに機能しません。

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

# 関連項目

•http://jaxb.java.net/nonav/2.2.3u1/docs/xjc.htmlの Binding Compiler (xjc)

•http://www.oracle.com/technetwork/articles/javase/index-140168.htmlの Java Architecture for XML Binding (JAXB)

2013年11月21日 JDK 8

---

Document: xjc(1) from openjdk-8 8.504-r3 (Chainguard OS)
Source: https://github.com/openjdk/jdk8u.git
