Hitachi

Cosminexus V11 アプリケーションサーバ Cosminexus XML Processor ユーザーズガイド


2.5.1 csmxjcコマンド(XML SchemaからJavaへバインディングする)

〈この項の構成〉

(1) 形式

csmxjc [オプション [オプション引数] ] ... 入力スキーマ文書

オプションは省略できます。また,オプションは必ずスキーマ文書より前に指定してください。

(2) 機能

XML SchemaからJavaへバインディングするスキーマコンパイラです。

(3) オプション

-b <外部バインディングファイル>

外部バインディングファイルを1つ指定します。外部バインディングファイル名の指定方法については,「コマンドのファイル名・ディレクトリ名に指定できる文字,パス区切り文字,パスの指定方法」を参照してください。

省略した場合は,外部バインディングファイルを使用しないでjavaクラスを生成します。

-d <出力先ディレクトリ>

Javaソースの出力先ディレクトリを指定します。ディレクトリ名の指定方法については,「コマンドのファイル名・ディレクトリ名に指定できる文字,パス区切り文字,パスの指定方法」を参照してください。

省略した場合は,カレントディレクトリが出力先ディレクトリになります。

-mark-generated

生成したJavaソースに@javax.annotation.Generatedアノテーションを追加します。

省略した場合は,Javaソースに@javax.annotation.Generatedアノテーションを追加しません。

Javaソースに追加される@javax.annotation.Generatedアノテーションの書式を次に示します。斜体の文字には,Javaソースを生成するたびに異なる値が入ります。

@Generated(value = "com.cosminexus.jaxb.tools.xjc.Driver", date = "yyyy-MM-ddTHH:mm:ssRFC822タイムゾーン")

@javax.annotation.Generatedアノテーションの要素とXML Processorで設定される値を次の表に示します。

表2‒5 @javax.annotation.Generatedアノテーションの要素とXML Processorで設定される値

要素名

説明

value

スキーマコンパイラの完全修飾クラス名

com.cosminexus.jaxb.tools.xjc.Driver

date

スキーマからJavaソースを生成した日時

yyyy-MM-ddTHH:mm:ssRFC822タイムゾーン

注※

出力フォーマットの詳細についてはjava.text.SimpleDateFormatクラスの「日付/時刻パターン」を参照してください。

(4) 入力スキーマ文書

入力スキーマ文書のファイル名を1つ指定できます。ファイル名に指定できる文字,パス区切り文字,パスの指定方法については「コマンドのファイル名・ディレクトリ名に指定できる文字,パス区切り文字,パスの指定方法」を参照してください。

(5) 出力Javaソース

出力Javaソースのフォーマット

スキーマコンパイラが出力するJavaソースのフォーマットの概要を次の図に示します。

図2‒10 スキーマコンパイラが出力するJavaソースのフォーマットの概要

[図データ]

出力Javaソースのフォーマットの詳細を次に示します。

  1. ヘッダ部

    XML Processorで生成されたことを示すヘッダです。次のヘッダが挿入されます。

    //
    // This file was generated by Cosminexus XML Processor 09-50
    // Any modifications to this file will be lost upon recompilation of the source schema.
    //
  2. package文,import文記述部

    ソースに必要なpackage文やimport文が生成されます。生成されるpackage文,import文の内容はスキーマコンパイラに入力されたスキーマ文書に依存します。

  3. javadoc部

    入力スキーマ文書から生成したクラスについてjavadocの内容が自動生成されます。javadocの内容はスキーマコンパイラに入力されたスキーマ文書に依存します。

  4. Javaクラス本体

    入力スキーマ文書から生成したクラスが生成されます。Javaクラス本体の内容はスキーマコンパイラに入力されたスキーマ文書に依存します。

出力Javaソースのパッケージと出力先

出力Javaソースのパッケージ名と出力先について次に示します。

出力Javaソースのパッケージ名は次の優先順位で決定されます。Javaソースの出力先はカレントディレクトリ,または-dオプションで指定されたディレクトリを基準ディレクトリとして,次の規則を順番に適用して決定されます。

  1. カスタムバインディングによるパッケージ名の指定がある場合

    カスタムバインディング(jaxb:package要素)で指定されたパッケージ名が出力Javaソースのパッケージ名になります。パッケージ名をディレクトリ名に変換し,基準ディレクトリの下に作成します。作成したディレクトリにJavaソースを出力します。

  2. 入力スキーマ文書にtargetNamespace属性が指定されている場合

    入力スキーマ文書に記述された対象名前空間から,JAXB仕様書に基づき出力Javaソースのパッケージ名を生成します。生成したパッケージ名をディレクトリ名に変換し,基準ディレクトリの下に作成します。作成したディレクトリにJavaソースを出力します。

  3. 入力スキーマ文書にカスタムバインディングによるパッケージ名の指定がなく,targetNamespace属性の指定もない場合

    Javaソースのパッケージ名は"generated"になります。基準ディレクトリの下に"generated"という名称のディレクトリを作成し,作成したディレクトリにJavaソースを出力します。

出力先のディレクトリに同名のJavaソースが存在する場合は上書きされます。

(6) 戻り値

  0:

  正常終了しました。

  0以外の値:

  異常終了しました。

(7) 注意事項

Cosminexus 09-80以降で実行する場合,csmxjcコマンドを実行する前に環境変数CSMJAXB_VM_OPTSを次のように設定してください。

set "CSMJAXB_VM_OPTS=--add-opens java.base/java.lang=ALL-UNNAMED --add-modules=java.activation"