進化したJAXB 2.0でJavaからXMLを操作する
翻訳校正:原井彰弘
JAXBを用いると、XMLドキュメントのXSDスキーマをもとにしてXMLからJavaBeansへのバインディングが行えるようになる。JAXB 2.0ではこれがより簡単になっている。
Java Architecture for XML Binding (JAXB) 1.0によって、JavaアプリケーションからXMLコンテンツを操作することはより簡単になった。
JAXBを用いると、XMLドキュメントのXSDスキーマをもとにしてXMLからJavaBeansオブジェクトへのバインディングが行えるようになり、Javaプログラマが簡単かつ自然な方法でXMLを扱えるようになるのである。JAXBはすでに大規模で著名なスキーマの処理にも用いられており、正しく動作することが確認されている。
JAXB 2.0では新機能が追加され、より多様な環境のもとでJAXBアプリケーションの開発やデプロイが行えるようになった。一方で、JAXB 2.0はJAXB 1.0と後方互換性もあり、過去に開発されたアプリケーションを利用することも可能になっている。
JAXB 2.0のセットアップ方法
JAXB 2.0の実装はJava Web Services Developer Pack (Java WSDP) 2.0に含まれている。そのため、JAXB 2.0を利用するにはまずJava WSDP 2.0をダウンロードする必要がある。また、JAXB 2.0では(JDK 5.0の新機能である)ジェネリクスが用いられている。従って、JDK 5.0がインストールされていない場合はインストールする必要がある。
JAXB 2.0の新機能
JAXBの最新バージョンには、XMLドキュメントのマーシャリングおよびアンマーシャリングを補助する機能が新たに加えられている。XMLドキュメントのマーシャリングとは、XMLスキーマをもとに生成したJavaのクラスを用いて、XMLドキュメントを作成することである。一方、アンマーシャリングとは、XMLドキュメントをJavaでの表現形式に変換し、要素や属性値を取得することを意味する。
JAXB 2.0では、JavaのオブジェクトをXMLドキュメントやXMLスキーマに変換することが可能になる。それ以外にも、JAXB 2.0には以下のような新機能や利点がある。
- 実行時に必要とされるライブラリのサイズが小さくなり、その結果メモリの消費量も減少した
- スキーマから生成されるJavaのクラスの数が、JAXB 1.0と比較して大きく減らされた。たとえば、トップレベルのcomplexTypeに関しては、今まではインタフェースと実装クラスが生成されたが、JAXB 2.0では値クラスが生成される。また、トップレベルの各要素に関しても、今まではインタフェースと実装クラスが生成されていたが、JAXB 2.0ではFactoryクラスメソッドが生成されるようになっている
- XMLスキーマに完全対応した
- ジェネリクスに対応した
- JAXP 1.3の妥当性検証機能によって置き換えられたため、UnMarshallerインタフェースのsetValidating()メソッドが非推奨になった
- javax.xml.bind.annotationパッケージを用いたJavaからXMLへのバインディング機能がサポートされた
JAXB 2.0の動作メカニズム
JAXB 2.0を用いたXMLドキュメントの処理方法を理解するために、ここでは「バインディングコンパイラ」と「バインディングランタイムフレームワーク」について注目しよう。これら2つのコンポーネントはJAXBの中核となっており、バインディングコンパイラはXMLスキーマからJavaクラス群を生成する役割を、一方バインディングランタイムフレームワークはマーシャリングやアンマーシャリング、妥当性検証の役割を担っている。
バインディングコンパイラ
JAXBバインディングコンパイラ(xbj)を用いると、XMLスキーマからJavaのクラスを生成することが可能になる。XMLスキーマが、その構造に合致するJavaのクラス群に変換されるのである。この変換の際、各クラスにはXMLスキーマとの対応を示すJAXBアノテーションが付加され、一致したXMLドキュメントの処理を行う場合にランタイムフレームワークによって利用される。
また、マーシャリング機能とアンマーシャリング機能は、XMLデータをJavaのオブジェクトとして簡単に操作できる機能を提供する。これらの機能を用いると、Simple API for XML Processing(SAX)やDocument Object Model(DOM)はもちろんのこと、XMLスキーマの細かい仕様すら理解していなくてもXMLデータを操作できるようになる。
次ページに示すのは、サンプルのXMLドキュメントである。これから、このドキュメントを例に処理を行う方法を説明する。
- 5人の推薦記事
- 0人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(0)
- ホワイトペーパー
- 話題のタグ
グーグル、JavaScriptプログラミングツールをリリース
Windowsの歴史 Windows Server 2008編:同じカーネルを持つ「Vista」とは対照的に早くから支持を得たサーバOS
Windowsの歴史 Windows Server 2003 R2編:安定性と先進性の両立目指す「R2」の先駆けとなったOS
モジラ、「Firefox 3.6」の第1ベータ版をリリース
大丈夫?あなたの会社のセキュリティ対策
進むストレージ環境の見直し
【最終警告】パンデミック対策特集
企業ITシステムの企画、構築、運用のイロハ
―エン・ジャパン厳選求人☆毎週更新―
100万円で実現!中小企業の情報漏えい対策
最大32個のセンサーが電力を徹底管理!