我对 JAXB 很陌生,我对 JAXB 的默认行为感到困惑,我的理解是:
如果可能,JAXB 会尝试通过自动检测所涉及的类来创建 JAXBContext。例如,JAXB 可以读取与预期不完全匹配的 XML 文档。这是 JAXB 解组器的默认行为。例如,如果我们有一个 Foo 类:
@XmlRootElement
class Foo{
@XmlAttribute
String name;
@XmlElement
String title;
}
Foo 类是以下文档的代表性 Java 类:
<foo name=” element-value”>
<title>some title</title>
</foo>
然后,如果我们有以下文档的 XML 实例,其中元素的内容由 Foo 类表示。
<anotherTagName name=”element-value”>
<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 的默认行为吗?我明白了还是我迷路了?