JAXBContextのJavadocから:
クライアントアプリケーションは通常、これらのいずれかを使用してこのクラスの新しいインスタンスを取得します
newInstanceメソッドには2つのスタイルがありますが、他にも特殊な形式があります。
利用可能な方法:
JAXBContext.newInstance( "com.acme.foo:com.acme.bar")
JAXBContextインスタンスは、コロンで区切られたJavaパッケージのリストから初期化されます
名前。各Javaパッケージには、JAXBマップクラス、スキーマ派生クラス、および/または
ユーザー注釈付きクラス。さらに、javaパッケージにはJAXBパッケージアノテーションが含まれている場合があります
それを処理する必要があります。(JLS 3rd Editionのセクション7.4.1。パッケージの注釈を参照してください)。
JAXBContext.newInstance(com.acme.foo.Foo.class)
JAXBContextインスタンスは、パラメーターとして渡されたクラスで初期化され、
これらのクラスから静的に到達可能なクラス。newInstance(Class ...)を参照してください
詳細については。
共有コンテキストを使用して、パッケージ名のリストで初期化できます。
コード例:
package test.jaxb.one;
@XMLRootElement
@XMLType(name = "test.jaxb.one.SimpleObject")
@XMLAccessorType(XMLAccessType.FIELD)
public class SimpleObject implements Serializable {
private static final long serialVersionUID = 54536613717262557148L;
@XmlElement(name = "Name")
private String name;
// Constructor, Setters/Getters
}
そしてこれ:
package test.jaxb.two;
@XMLRootElement
@XMLType(name = "test.jaxb.two.SimpleObject")
@XMLAccessorType(XMLAccessType.FIELD)
public class SimpleObject implements Serializable {
private static final long serialVersionUID = -4073071224211934153L;
@XmlElement(name = "Name")
private String name;
// Constructor, Setters/Getters
}
ついに:
public class JAXBTest {
@Test
public void testContextLoad() throws Exception {
final JAXBContext context = JAXBContext
.newInstance("test.jaxb.one:test.jaxb.two");
Assert.assertNotNull(context);
}
}