JAXB (Java Architecture for XML Binding - JSR 222)は、JavaのXMLバインディングの標準です。JAXBではXMLスキーマのコンセプトが100%カバーされており、EclipseLinkではJAXBの実装が多くの拡張機能とともに提供されています。JAXB仕様の詳細は、http://jcp.org/en/jsr/detail?id=222
を参照してください。
Oracle TopLinkには、EclipseLink、およびそのJAXBプロバイダであるEclipseLink MOXyが含まれています。
開発者は、EclipseLink MOXyコンポーネントを使用することによって、XMLスキーマおよびJSONドキュメントにJavaクラスを効率的にバインドできます。MOXyではJAXBが実装されるので、開発者は、注釈でマッピング情報を指定でき、マッピングをXML形式およびJSON形式で保存できます。
この章の内容は、次のとおりです。
EclipseLink MOXyをJAXBプロバイダとして使用する際には、既存のオブジェクト・モデルをXMLまたはJSONに変換するためのメタデータは不要です。(注釈、XMLまたはJSONを使用して)メタデータを提供できるのは、XMLまたはJSONの表現の微調整が必要なときのみです。
EclipseLink MOXyには、Javaクラス・モデルでスキーマをミラーリングしなくても、複雑なXML構造を処理できる高度なマッピングが多数含まれています。
XMLはデータの交換に広く使用される形式ですが、多くのアプリケーションでは、プログラム表現として、XMLよりオブジェクトのほうが優先的に使用されます。オブジェクト・レベルで操作するには、XMLデータをオブジェクト形式に変換する必要があります。XMLとオブジェクトのミスマッチは、オブジェクトとobject-xmlのインピーダンス・ミスマッチと呼ばれます。
JAXBでは、ドメインのようなオブジェクトを使用することによって、XMLデータと対話できます。DOMオブジェクトとは異なり、JAXBコンテンツ・モデルは、XMLスキーマに基づいてXML文書を洞察します。たとえば、顧客情報を含むXML文書がXMLスキーマで定義されている場合は、コンテンツ・モデルには、Customer、Address、PhoneNumberなどのオブジェクトが含まれます。XMLスキーマ内の各タイプには、対応するJavaクラスが割り当てられます。
(TopLinkに含まれている)EclipseLink MOXyを使用することによって、XMLスキーマまたはJSONドキュメントにJavaクラスを効率的にバインドできます。MOXyでは、注釈でマッピング情報を指定し、マッピングをXMLまたはJSONで保存できるようにすることによって、JAXBが実装されます。これらのマッピングを使用すれば、Javaクラス・モデルでスキーマをミラーリングしなくても、複雑なXML構造を管理できます。
Oracle TopLinkには、その永続性プロバイダとしてEclipseLinkが含まれており、これは、Java Persistence (JPA)仕様のリファレンス実装です。また、拡張機能も数多く含まれています。
詳細は、次を参照してください:
Oracle Technology Network (OTN)のOracle TopLink。
http://www.oracle.com/technetwork/middleware/toplink/overview/index.html
EclipseLink documentation center
http://www.eclipse.org/eclipselink/documentation/
コアなJAXBプラスEclipseLinkの拡張機能の詳細は、EclipseLink API参照ドキュメント(Javadoc)
http://www.eclipse.org/eclipselink/api/
Java Architecture for XML Binding (JAXB)の仕様
http://www.jcp.org/en/jsr/detail?id=222
多数のJAXBおよびEclipseLink MOXy機能の使用に関する例
http://wiki.eclipse.org/EclipseLink/Examples/MOXy
JAXBチュートリアル
http://www.oracle.com/technetwork/articles/javase/index-140168.html