xjc(1)

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

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

xjc の起動

バインディングコンパイラを起動するには、使用するプラットフォームに応じた bin ディレクトリ内の xjc シェルスクリプト を 使用します。また、バインディングコンパイラを実行するための Ant タスクも用意されています。 xjc を Ant とともに使用する @
https://jaxb.dev.java.net/nonav/2.1.3/docs/xjcTask.htmlための手順を参照してください。

% 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』ドキュメントを参照するか、 カタログリゾルバの サンプルアプリケーションを調べてください。

    -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
        生成されたすべてのメソッドシグニチャーに 同期された キーワードが含められます。

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

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

        1.  「-p」コマンド行オプションがもっとも優先されます。

        2.  <jaxb:package> のカスタマイズ

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

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

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

    o   1 つの Java パッケージにコンパイルされるすべてのスキーマは、XJC バインディングコンパイラに同時に送信する必要があります。個別にコンパイルすることはできず、予期したとおりに動作しません。

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

関連項目

    o   コマンド行でのコンバータの実行 (XJC): [ コマンド行の命令 @
        https://jaxb.dev.java.net/nonav/2.1.3/docs/xjc.html、 xjc を Ant とともに使用する @
        https://jaxb.dev.java.net/nonav/2.1.3/docs/xjcTask.html]

    o   XML バインドのための Java アーキテクチャー (JAXB) @
        http://java.sun.com/javase/6/docs/technotes/guides/xml/jaxb/index.html