ヘッダーをスキップ
Oracle XML Developer's Kitプログラマーズ・ガイド
10gリリース3(10.1.3)
B28611-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

6 JAXB Class Generatorの使用

この章の内容は次のとおりです。

JAXBの概要

Java Architecture for XML Binding(JAXB)は、XMLデータとJavaオブジェクト間をマップするAPIとツールから構成されています。これは、JCP(Java Community Process)の推奨によるJSR-31「The Java Architecture for XML Binding (JAXB)」バージョン1.0を実装しています。JSRは、JCPのJava Specification Requestです。

JAXBコンパイラでは、XML Schemaに対応するインタフェースおよび実装クラスを生成します。このクラスを使用して、XML文書の読取り、操作および再作成が可能です。JAXBコンパイラでは、XML Schemaに対応するJavaクラスと、XMLデータへのアクセスに必要なインタフェースを生成します。Javaクラスは拡張可能で、基礎となるXMLデータ構造に関する特別な知識がなくてもXMLデータにアクセスできます。


注意:


XML Class GeneratorからJAXB Class Generatorへの切替え

XMLデータのオブジェクト・バインディング機能を使用するには、新しいアプリケーションではJAXB Class Generatorを使用するよう求められます。現在、Oracle9i Class Generator for Javaは使用されていません。ただし、Oracle9i Class Generatorランタイムはリリース10.1に含まれており、10.xリリースの期間はサポートされます。

JAXBを使用したアンマーシャリング、マーシャリングおよび検証

アンマーシャリングとは、XML文書からJavaによって生成されたクラス・オブジェクトにデータを移動することと定義されています。各オブジェクトは、入力文書内のスキーマ・コンポーネントのインスタンスから導出されます。DTDには継承の弱点があるため、JAXBではサポートされませんが、DTDをJAXBで使用されるXML Schemaに変換できます。

マーシャリングとは、Javaクラスのインスタンスのコンテンツ・ツリーを全検索することによって、JavaオブジェクトからXML文書を作成することと定義されています。

検証とは、コンテンツがJava表現で変更する場合のマーシャリングの前提条件です。検証では、コンテンツ・ツリーがスキーマで定義された制約を満たしているかどうかを検証します。ツリーは、ツリーをマーシャリングする際にソース・スキーマに従って有効なXML文書が生成されるときに、有効であると定義されます。アンマーシャリングにエラーのない検証が含まれる場合、その入力文書とコンテンツ・ツリーは有効です。ただし、アンマーシャリング時の検証は不要です。

検証は次の状況で実行されます。

JAXB Class Generatorの使用

JAXBアプリケーションを構築するには、XML Schemaファイルで開始します。次の手順を実行してJAXBアプリケーションを構築して使用します。

  1. XML Schemaファイルをバインディング・コンパイラに発行して、Javaソース・ファイルを生成します。orajaxbと呼ばれるコマンドライン・ユーティリティを介して、バインディング・コンパイラを起動できます。

  2. JDK 1.3以上を使用してJavaソース・コードをコンパイルします。

  3. クラスとバインディング・フレームワークを使用して、Javaアプリケーションを次のように作成します。

    • ドキュメントからデータをアンマーシャリングするか、作成したクラスをインスタンス化することで、XML Schemaに対して有効なXMLデータを表すオブジェクト・ツリーを構築する。

    • データにアクセスし変更する。

    • オプションで、XML Schemaで表現された制約と比較し、データへの変更を検証する。

    • データを新規XML文書にマーシャリングする。


      関連資料:

      JAXBの詳細は、http://java.sun.com/xml/jaxb/faq.htmlを参照してください。

JAXBでサポートされていない機能

Oracleリリースは、次の機能をサポートしていません。

JAXB Class Generatorコマンドライン・インタフェース

JAXB Class Generatorコマンドライン・インタフェースには、次の方法でアクセスします。

oracle.xml.jaxb.orajaxb [-options]

表6-1に、オプションを示します。

表6-1 JAXB Class Generatorコマンドライン・インタフェース

オプション 説明

-help

ヘルプ・メッセージ・テキストの出力

-version

バージョン番号の出力

-outputDir OutputDir

Javaソースの生成先ディレクトリ

-schema SchemaFile

入力スキーマ・ファイル

-targetPkg targetPkg

ターゲット・パッケージ名

-interface

インタフェースのみを生成


JAXBとJAXPの比較

次に、JAXBの特長の概要を示します。

次の場合にJAXBを使用します。

JAXBの詳細は、次の関連資料を参照してください。


関連資料:

  • コード例は、XDKのダウンロードや、$INSTALL_HOME/xdk/demo/java/jaxbのJAXBコードにあります。

  • JAXBを使用するためのドキュメントと例は、http://java.sun.com/xml/jaxb/を参照してください。

  • JAXB APIの詳細は、『Oracle XML APIリファレンス』を参照してください。


特定のXMLプロセッサの実装に依存しないAPIを使用して、アプリケーションでXML文書の解析および変換を可能にするJava API for XML Processing(JAXP)は、Oracleで実装されています。


関連項目:

「JAXPの使用」

次の場合にJAXPを使用します。