jaxbjaxbを使い始める


備考

このセクションでは、jaxbの概要と開発者がなぜそれを使用したいのかを概説します。

また、jaxb内の大きなテーマについても言及し、関連するトピックにリンクする必要があります。 jaxbのドキュメンテーションは新しいものなので、それらの関連トピックの初期バージョンを作成する必要があります。

XSDからのコード生成

JAXBは、XSDで定義されたモデルからクラスを生成するために使用できます。そして、このXSDに対して作成されたXML文書をJavaインスタンスとして直接読み取ることができ、これらのインスタンスをXML文書として逆に保存することができます。

SimpleModel.xsdという名前のファイルに保存された次のXSDを取得します

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://myCorp/schemas/simpleModel"
 xmlns:simple="http://myCorp/schemas/simpleModel"
 elementFormDefault="qualified"
 attributeFormDefault="unqualified">
 
 <complexType name="Person">
     <sequence>
         <element name="FirstName" type="string"/>
         <element name="LastName" type="string"/>
         <element name="DateOfBirth" type="dateTime"/>
     </sequence>
 </complexType>
 
</schema>
 

JAXBを使用して、このコマンドラインを使用してこのXSDに一致するクラスを自動的に生成できます(JDKのbinフォルダがパス上にある場合)

xjc SimpleModel.xsd
 

これにより、XSDのネームスペース(ここではmycorp.schemas.simplemodel)に基づくパッケージが次のクラスで生成されます。

  • ObjectFactory.java
  • package-info.java
  • Person.java

ObjectFactoryは、生成されたクラスのインスタンスを作成するために使用されます。いくつかのケースでは、これは簡単なラッパーのような

new Person();
 

しかし、より複雑なケースでは、インスタンスの周りに適切なラッパーを作成して、XMLとの間でオブジェクトを適切に整列化および非整列化する欠落したリンクを提供します。

package-info.javaには一般的なXSDに関する情報が含まれています。

他のすべてのファイルは、XSDで説明されているモデルから派生したクラスです。ここでは、モデルにはオブジェクトが1つしかないため、 Person.javaしかありません。

他のコマンドライン引数 JaxbとXJCを使用すると、生成されたコードに大きな力が与えられます。 XJCはまた、beyoondに行くためにプラグインを使用または作成する方法を提供し、次のようなことを行います:

  • 生成されたコードにインタフェースを実装したり、クラスを拡張したりしてください。
  • クラスとtoString、hashcode、equalsなどを自動的に生成します。
  • xml型(単純または複合)とJavaTypeの間で自動的にマップします。
  • 生成されたコードにカスタムコードまたはアノテーションを挿入します。

そしてはるかに多く

また、他のツールを使ってxjc、Mavenプラグイン(少なくとも私が知っているのは4つ)、Antタスクなどとやりとりすることができます。これらのツールでは、リファレンス実装の難しいコマンドライン。

インストールまたはセットアップ

JAXBリファレンス実装(JAXB-RI)は、JDK 6アップデート3以降、Java開発キットに含まれています。

特定のバージョンのJDKに含まれるJAXB-RIのバージョンの詳細については、 非公式のJAXBガイドを参照してください。