Java Architecture for XML BindingJAXB)は、Javaのクラスを XMLで表現可能にする仕様である。JAXBには主に2つの機能がある。すなわち、JavaのオブジェクトをXMLにシリアライズすることと、逆にXMLからJavaオブジェクトにデシリアライズすることである。言い換えれば、JAXBはメモリ上のデータをXML形式に変換して保存することができ、そのためにプログラム内の各クラスにXMLロード/セーブルーチンを実装する必要がない。

JAXBは仕様が複雑で頻繁に変更される場合に特に便利である。その場合、Javaの定義の変更に合わせてXML Schemaの定義を更新することは、時間もかかるしバグを作りこみやすい作業となる。

JAXBはJakarta EEのAPIの一種であり、Java Web Services Development Pack (JWSDP) の一部でもある。WSITの基盤の一部にもなっている。JAXBはJava 1.6にも含まれている。

JAXB 1.0は、Java Community ProcessのJSR 31において2003年に開発された。続いて2006年、JAXB 2.0がJSR 222において開発され、2017年9月にMaintenance Release 3がリリースされている。リファレンス実装はjava.netにCDDLライセンスで公開されている。

利用

"xjc" ツールは、XML Schemaや他のスキーマファイル形式(Java 1.6では、RELAX NG、XML DTD が実験的にサポートされている)をクラス表現に変換するのに使われる。クラス群は、javax.xml.bind.annotation.* の名前空間(例えば@XmlRootElementや@XmlElement)からアノテーションを使ってマークアップされる。XMLリストシーケンスは、java.util.Listの属性を使って表現される。マーシャルとアンマーシャルを行うコードはJAXBContextのインスタンスを通して生成される。

さらに、JAXBには "schemagen" ツールがある。これは基本的に "xjc" の逆を行うもので、アノテーション付きのクラス群のコードからXML Schemaを生成する。

データ型の既定バインディング

Javaのデータ型の種類はXML Schemaのものより豊富である。以下の表はJAXBにおいて、XMLのデータ型をどのようにJavaのデータ型にマッピングしているかを示したものである。

脚注

関連項目

  • XMLBeans – Apacheソフトウェア財団によるJAXBと類似・関連する技術

参考文献

  • Generate an XML Document from an Object Model with JAXB 2

外部リンク

  • JAXB home page on Project GlassFish
  • 従来の JAXB home page
  • JaxMe – Apacheソフトウェア財団によるJAXBのオープンソース実装
  • EclipseLink MOXy – Eclipse FoundationによるJAXBのオープンソース実装
  • JSR 222 (JAXB 2.0)
  • JSR 31 (JAXB 1.0)
  • JAXB chapter of the Java EE 5 Tutorial
  • JAXB Wizard

Java Development Kit Java Architecture For XML Binding Java Runtime

PPT JAXB (Java Architecture for XML Binding) PowerPoint Presentation

JAXB The Java Architecture for XML Binding Notes

PPT JAXB (Java Architecture for XML Binding) PowerPoint Presentation

Binding