JAXB xjc ツールを使用した XML スキーマ・ファイルからの JAXB クラスの生成
Java Architecture for XML Binding (JAXB) xjc ツールを使用して、 XML スキーマ・ファイルを完全なアノテーションが付いた Java クラスにコンパイルします。
始める前に
このタスクについて
JAXB API およびツールを使用して、XML スキーマと Java クラスの間のマッピングを確立します。 XML スキーマは、XML 文書内のデータ・エレメントと関係を記述します。 データ・マッピングまたはバインディングが存在するようになったら、 XML 文書と Java オブジェクトとの間で双方向に変換できます。 XML 文書に保管されているデータには、XML データ構造を理解していなくてもアクセスすることができます。
既存の Web サービス記述言語 (WSDL) ファイルから開始するトップダウン開発により Web サービスを作成するには、wsimport ツールを使用して、WSDL ファイルから開始する場合の Java API for XML-Based Web Services (JAX-WS) アプリケーションの成果物を生成します。アプリケーションの Java 成果物が生成された後、JAXB スキーマ・コンパイラー xjc コマンド行ツールを使用して、XML スキーマ・ファイルから完全なアノテーションが付いた Java クラスを生成できます。 その結果のアノテーション付き Java クラスには、マーシャルおよびアンマーシャル用の XML を構文解析するために JAXB ランタイムが必要とするすべての情報が含まれています。 生成された JAXB クラスは、Java API for XML Web Services (JAX-WS) アプリケーション内で、 または XML データの処理用の他の Java アプリケーション内で使用できます。


コマンド行から xjc ツールを使用する以外にも、 この JAXB ツールを Ant ビルド環境内で起動することができます。 Ant ビルド環境内で com.sun.tools.xjc.XJCTask Ant タスクを使用して xjc スキーマ・コンパイラー・ツールを起動します。 この Ant タスクが正しく機能するようにするには、ws_ant スクリプトを使用して Ant を起動する必要があります。

手順
- JAXB スキーマ・コンパイラーの xjc コマンドを使用して、 JAXB のアノテーション付き Java クラスを生成します。 スキーマ・コンパイラーは、app_server_root¥bin¥ ディレクトリーにあります。 スキーマ・コンパイラーは、コンパイルに使用されたバインディング・オプションにより、 Java ソース・ファイルと Java プロパティー・ファイルを含むパッケージのセットを生成します。
- (オプション) カスタム・バインディング宣言を使用して、 デフォルトの JAXB マッピングを変更します。 XML スキーマ・ファイルまたは別個のバインディング・ファイルのいずれかにバインディング宣言を定義します。 xjc コマンドに -b オプションを使用して、 カスタム・バインディング・ファイルを受け渡すことができます。
- 生成済み JAXB オブジェクトをコンパイルします。 生成済み成果物をコンパイルするには、 Thin Client for JAX-WS with WebSphere Application Server をクラスパスに追加します。
タスクの結果
例
- 以下の bookSchema.xsd スキーマ・ファイルを一時ディレクトリーにコピーします。
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="CatalogData"> <xsd:complexType > <xsd:sequence> <xsd:element name="books" type="bookdata" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="bookdata"> <xsd:sequence> <xsd:element name="author" type="xsd:string"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="genre" type="xsd:string"/> <xsd:element name="price" type="xsd:float"/> <xsd:element name="publish_date" type="xsd:dateTime"/> <xsd:element name="description" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:string"/> </xsd:complexType> </xsd:schema>
- コマンド・プロンプトを開きます。
- スキーマ・ファイルがあるディレクトリーから、JAXB スキーマ・コンパイラーの xjc コマンドを実行します。
xjc スキーマ・コンパイラー・ツールは、
app_server_root¥bin¥
ディレクトリーにあります。
xjc コマンドを実行すると、以下の JAXB Java ファイルが生成されます。
generated¥Bookdata.java generated¥CatalogdData.java generated¥ObjectFactory.java
- Java アプリケーション内の生成済み JAXB オブジェクトを使用して、生成済み JAXB クラスを介して XML コンテンツを操作します。
xjc コマンドについて詳しくは、 JAXB Reference implementation のドキュメンテーションを参照してください。