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の一つであり、 Java Web Services Development Pack (JWSDP)の一部であり、 WSITの基盤の一つでもあります。また、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には「schemagen 」ツールが含まれており、これは基本的に「 xjc 」の逆の操作、つまり注釈付きクラスのセットからXMLスキーマを作成することができます。
以下の表は、XML Schema (XSD) データ型と JAXB の Java データ型のマッピングを示しています。[ 4 ]
xsd:elementxsd:attribute