コンテンツにスキップ

Java Architecture for XML Binding

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。演歌ビニール (会話 | 投稿記録) による 2016年2月22日 (月) 13:58個人設定で未設定ならUTC)時点の版 (外部リンク)であり、現在の版とは大きく異なる場合があります。

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

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

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

JAXB 1.0 は、Java Community Process において JSR 31 として開発された。2006年現在、JAXB 2.0 が JSR 222 として開発されている。リファレンス実装は 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 のデータ型にマッピングしているかを示したものである。

XML Schema 型 Java データ型
xsd:string java.lang.String
xsd:integer java.math.BigInteger
xsd:int int
xsd:long long
xsd:short short
xsd:decimal java.math.BigDecimal
xsd:float float
xsd:double double
xsd:boolean boolean
xsd:byte byte
xsd:QName javax.xml.namespace.QName
xsd:dateTime javax.xml.datatype.XMLGregorianCalendar
xsd:base64Binary byte[]
xsd:hexBinary byte[]
xsd:unsignedInt long
xsd:unsignedShort int
xsd:unsignedByte short
xsd:time javax.xml.datatype.XMLGregorianCalendar
xsd:date javax.xml.datatype.XMLGregorianCalendar
xsd:g javax.xml.datatype.XMLGregorianCalendar
xsd:anySimpleType java.lang.Object
xsd:anySimpleType java.lang.String
xsd:duration javax.xml.datatype.Duration
xsd:NOTATION javax.xml.namespace.QName

関連項目

参考文献

外部リンク