1

私はJAXBを初めて使用し、JAXBのデフォルトの動作について混乱しています。私が理解していることは次のとおりです。

JAXB は、関連するクラスを自動検出することにより、可能であれば JAXBContext を作成しようとします。たとえば、JAXB は、期待されるものと完全に一致しない XML ドキュメントを読み取ることができます。これは、JAXB unmarshaller のデフォルトの動作です。たとえば、Foo クラスがあるとします。

@XmlRootElement
class Foo{
  @XmlAttribute
  String name;
  @XmlElement
  String title;
}

Foo クラスは、次のドキュメントの代表的な Java クラスです。

<foo name=” element-value”&gt;
    <title>some title</title>
</foo>

次に、要素のコンテンツが Foo クラスによって表される次のドキュメントの XML インスタンスがあるとします。

<anotherTagName  name=”element-value”&gt;
    <title>some title</title>
</anotherTagName>

これを Foo クラスに非整列化できます。次のように、'expectedType' 引数を取る非整列化メソッドのバージョンを使用します。

JAXBElement<Foo> root = um.unmarshal(new StreamSource(new File(“output.xml”)),   
                                     Foo.class);
 Foo foo = root.getVlaue();

それはJAXBのデフォルトの動作ですか?私は要点を理解していますか、それとも迷っていますか?

4

1 に答える 1