進化した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)
- ホワイトペーパー
- 企画特集
SOA、BPM、SaaS −今、企業に必要なこと
ロリポップ!がリニューアル
集積度も性能も、業界最高水準のブレードPC
ストレージメディア特設サイト開設
そのストレージで仮想化に対応できますか?
【徹底対談】運用管理ツールの賢い使い方
パンデミック対策特集
ESBでIT投資の無駄を劇的に解消する
御社のログ活用しませんか!?
仮想環境を実現するソリューション特集
今注目の「サジェスト検索」−デモ掲載中
インターネット上の悪意を未然に防ぐには?
セキュリティ&ユーザ事例【SIer Club】
◆エン・ジャパン厳選求人☆毎週更新◆
中小企業のセキュリティリスクとは?
- ■ストレージ容量50%削減保証■
- エンタープライズにおけるSUSEの強み
- サービス・ドリヴン・データセンター
- サーバー監視・運用のコストを削減するには
- 話題のタグ
Windows 7はLinuxへの切替が簡単:注目の仮想ディスクフォーマット「VHD」
iPhone OS 3.0で変わった「絵文字」
OSSのクラウド基盤「Eucalyptus」を使う(4)--インストール〜ノード構築
俳優経験者が指南する「人前で上手く話すためのティップス10選」
「うるまでるびペイント」登場:絵は上手下手ではなく制作過程に楽しみが
待てば回路の日和あり--「iPhone 3GS」発売、しかし――