Jakarta XMLバインディング
| Jakarta XMLバインディング | |
|---|---|
| リポジトリ |
|
| 書かれた | ジャワ |
| Webサイト | projects.eclipse.org/projects/ee4j.jaxb-impl |
Jakarta XML Binding(JAXB、旧称Java Architecture for XML Binding)は、Java EE開発者がJavaクラスをXML表現にマッピングできるようにするソフトウェアフレームワークです。JAXBは、 JavaオブジェクトをXMLに変換する機能と、その逆、つまりXMLをJavaオブジェクトに逆変換する機能という2つの主要な機能を提供します。つまり、JAXBを使用すると、プログラムのクラス構造にXMLの読み込みおよび保存ルーチンを実装することなく、任意のXML形式でメモリにデータを保存および取得できます。これは、.NET Frameworkの および に似ています。xsd.exeXmlSerializer
JAXBは、仕様が複雑で変化が激しい場合に特に役立ちます。このような場合、XMLスキーマ定義を定期的に変更してJava定義との同期を維持するのは時間がかかり、エラーが発生しやすくなります。
JAXBは、Jakarta EEプラットフォーム(旧Java EE)のAPIの1つであり、 Java Web Services Development Pack (JWSDP)の一部であり、 WSITの基盤の1つです。また、 Java SEプラットフォーム(バージョンJava SE 6~10)にも含まれていました。Java SE 11以降、JAXBは削除されました。詳細については、JEP 320を参照してください。
JAXB 1.0は、 Java Community Processの下でJSR 31として開発され、2003年にリリースされました。[1] 2006年にはJAXB 2.0がJSR 222の下でリリースされ、メンテナンスリリース2は2009年12月にリリースされました。[2]これらの仕様の リファレンス実装は、 java.netのCDDLオープンソースライセンスの下で利用可能でした。
使用法
ツール「xjc 」は、 XMLスキーマやその他のスキーマファイルタイプ(Java 1.6以降、RELAX NG、XML DTD、WSDLが試験的にサポートされています)をクラス表現に変換するために使用できます。[3]クラスはjavax.xml.bind.annotation.*名前空間の注釈(@XmlRootElementや@XmlElementなど)を使用してマークアップされます。XMLリストシーケンスはjava.util.List型の属性によって表されます。マーシャラーとアンマーシャラーはJAXBContextのインスタンスを通じて作成されます。
さらに、JAXB には、基本的に「 xjc 」の逆を実行し、注釈付きクラスのセットから XML スキーマを作成できる 「 schemagen 」ツールが含まれています。
デフォルトのデータ型バインディング
以下の表は、XMLスキーマ(XSD)データ型とJAXBにおけるJavaデータ型のマッピングを示しています。[4]
| XMLスキーマタイプ | Javaデータ型 |
|---|---|
xsd:string | java.lang.String |
xsd:integer | java.math.BigInteger |
xsd:positiveInteger | 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:unsignedLong | java.math.BigDecimal |
xsd:time | javax.xml.datatype.XMLGregorianCalendar |
xsd:date | javax.xml.datatype.XMLGregorianCalendar |
xsd:g | javax.xml.datatype.XMLGregorianCalendar |
xsd:anySimpleType[5] | java.lang.Object |
xsd:anySimpleType[6] | java.lang.String |
xsd:duration | javax.xml.datatype.Duration |
xsd:NOTATION | javax.xml.namespace.QName |
バージョン
- Java SE 9: JAXB 2.3.0 [7] (モジュール内
java.xml.bind; このモジュールは非推奨とマークされています[8] ) - Java SE 8: JAXB 2.2.8 [9]
- Java SE 7: JAXB 2.2.3 (JSR 222、メンテナンスリリース2) [10]
- Java SE 6: JAXB 2.0 (JSR 222) [11]
参照
- XMLデータバインディング
- ジBX
- XMLBeans – Apache Software FoundationのJAXBに類似した補完的な技術
- TopLink – JAXB 1.0をサポートするOracleのオブジェクトからリレーショナルおよびオブジェクトからXMLへのマッパー
- EclipseLink MOXy – Eclipse Foundationによる JAXB およびオブジェクト XML マッピング サービスのオープンソース実装
- Liquid XML Studio – XMLデータバインディングコード生成のための商用ツール
参考文献
- ^ 「JSR: Java仕様要求。JSR 31: XMLデータバインディング仕様」 。 2011年2月15日閲覧。
- ^ 「JSR: Java仕様要求。JSR 222: XMLバインディングのためのJavaアーキテクチャ(JAXB)2.0」 。 2011年2月15日閲覧。
- ^ 「xjc - XMLバインディングのためのJavaアーキテクチャ」 。 2011年2月15日閲覧。
- ^ 「JAXB データ バインディングの使用: 標準データ型マッピング」。
- ^ このタイプの
xsd:element - ^ このタイプの
xsd:attribute - ^ 「どの JAXB RI がどの JDK に含まれていますか?」
- ^ 「非推奨モジュール java.xml.bind」。
- ^ “Jaxb 2.2.8 (JDK 8)”. 2015年5月12日時点のオリジナルよりアーカイブ。2015年3月1日閲覧。
- ^ 「Java SE 7: Java XMLテクノロジーの機能強化」 。 2012年3月21日閲覧。
- ^ 「Java SE 6: 機能と拡張機能」 。 2012年3月21日閲覧。
外部リンク
- 公式サイト Project GlassFishのリファレンス実装
- 以前のJAXBホームページは2017年5月4日にWayback Machineにアーカイブされています
- オリジナルのJAXBホームページは2005年7月9日にWayback Machineにアーカイブされています
- JAXBチュートリアル 2013年3月23日、Wayback MachineにWolfgang Launによってアーカイブされました
- JSR 222 (JAXB 2.0)
- JSR 31 (JAXB 1.0)
- Java EE 5 チュートリアル - XML スキーマと Java クラスのバインディング Java EE 5 チュートリアルの JAXB の章
- JAXBウィザードは2012年5月31日にWayback Machineにアーカイブされました
- JAXBチュートリアル
記事
- JAXB 2.0はJavaでのXMLバインディングを改善します
- XML と Java テクノロジ: データバインディング、パート 2: パフォーマンス