XML データ・バインディングのための JAXB の使用
Java™ Architecture for XML Binding (JAXB) は、Java クラスおよび XML スキーマを簡単かつ手軽にマップする方法を提供し、Web サービスをシンプルに開発できるようにする、Java テクノロジーです。JAXB は xjc スキーマ・コンパイラー、schemagen スキーマ・ジェネレーター、 およびランタイム・フレームワークを提供して、Java オブジェクトから XML 文書へのマーシャルおよび その逆のアンマーシャルをサポートします。
このタスクについて
JAXB は、XML-Java 間バインディングのテクノロジーです。これにより、 スキーマと Java オブジェクトの間、および XML インスタンス文書と Java オブジェクト・インスタンスの間の変換を行うことができます。JAXB テクノロジーは、ランタイム API と、XML 文書へのアクセスを簡単にする付随ツールから構成されています。 JAXB API およびツールを使用して、 Java クラスと XML スキーマの間のマッピングを確立することができます。 XML スキーマは、XML 文書のデータ・エレメントと構造を定義します。 JAXB テクノロジーは、XML 文書と Java オブジェクト間で双方向変換をできるようにするツールを提供します。 XML 文書に保管されているデータには、XML データ構造を理解していなくてもアクセスすることができます。
JAXB は、この製品において Java API for XML Web Services (JAX-WS) のツールおよび実装で使用される、デフォルトのデータ・バインディング・テクノロジーです。 JAX-WS アプリケーション内で使用するために、JAXB オブジェクトを開発することができます。 また、Java アプリケーション内で XML を操作するために、XML データ・バインディング・テクノロジーを利用する便利な方法として、JAX-WS プログラミング・モデルから独立させて JAXB を使用することもできます。


JAXB は xjc スキーマ・コンパイラー・ツール、schemagen スキーマ・ジェネレーター・ツール、およびランタイム・フレームワークを提供します。 xjc スキーマ・コンパイラー・ツールでは、XML スキーマ定義 (XSD) から開始して、 XSD スキーマに定義されたエレメントおよびタイプにマッピングする JavaBeans セットを作成できます。 また、JavaBeans のセットから開始し、schemagen スキーマ・ジェネレーター・ツールを使用して XML スキーマを作成することもできます。 スキーマ・コンパイラーまたはスキーマ・ジェネレーター・コマンド行ツールのいずれかを使用した後、XML 文書を Java オブジェクトとの間で双方向に変換し、その結果である Java クラスを使用して Web サービスのアプリケーションをアセンブルすることができます。
コマンド行からツールを使用する以外にも、 これらの JAXB ツールを Ant ビルド環境内で起動することができます。 Ant ビルド環境内で com.sun.tools.xjc.XJCTask Ant タスクを使用して xjc スキーマ・コンパイラー・ツールを起動します。 Ant ビルド環境内で com.sun.tools.jxc.SchemaGenTask Ant タスクを使用して schemagen スキーマ・ジェネレーター・ツールを起動します。 これらの Ant タスクでは、com.ibm.jaxb.tools.jar ファイル および com.ibm.jaxws.tools.jar ファイルがクラスパスに存在していなければなりません。
JAXB のアノテーションを付けたクラスと成果物には、JAXB ランタイム API が XML インスタンス文書を処理するために必要とする、すべての情報が含まれています。 JAXB ランタイム API は、JAXB オブジェクトの XML ファイルへのマーシャルと、XML 文書の JAXB クラス・インスタンスへのアンマーシャルを使用可能にします。 JAXB バインディング・パッケージ javax.xml.bind は、 コンテンツ・クラスと一緒に直接使用される抽象クラスおよびインターフェースを定義します。 さらに、パッケージはマーシャル API およびアンマーシャル API を定義します。
オプションで、 JAXB バインディングのカスタマイズを使用して、デフォルト生成されるタイプ・マッピングをオーバーライドすることもできます。 JAXB バインディングをカスタマイズするには、ソース・スキーマ内でインラインのアノテーションを使用するか、 または、外部バインディング・カスタマイズ・ファイルを使用して、カスタマイズ内容を JAXB バインディング・コンパイラー xjc に渡 して、Java タイプ・マッピングを制御します。あるいは、 Java アノテーション を既存の Java クラスに追加して スキーマ・ジェネレーター schemagen に渡し、それによってスキーマまたは XML タイプ・マッピング を制御することもできます。バインディングのカスタマイズに関するオプション および Java アノテーションについては、JAXB 仕様を参照してください。
JAXB を使用して、データ・オブジェクトを以下の方法で操作することができます。
手順
- Java クラスから XML スキーマを生成します。 スキーマ・ジェネレーターの schemagen コマンドを使用して、 Java クラスから XML スキーマを生成します。
- XML スキーマから Java クラスを生成します。 スキーマ・コンパイラーの xjc コマンドを使用して、 XML スキーマから JAXB のアノテーションを付けた Java クラスを作成します。
- XML 文書をマーシャルおよびアンマーシャルします。 XML スキーマと Java クラスの間のマッピングが存在するようになってから、 JAXB バインディング・ランタイムを使用して、XML インスタンス文書と Java オブジェクトの間で双方向に変換します。