Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们所说的JAXB默认行为是什么意思?_Jaxb_Marshalling_Unmarshalling - Fatal编程技术网

我们所说的JAXB默认行为是什么意思?

我们所说的JAXB默认行为是什么意思?,jaxb,marshalling,unmarshalling,Jaxb,Marshalling,Unmarshalling,我对JAXB非常陌生,对JAXB的默认行为感到困惑,我的理解是: 如果可能的话,JAXB尝试通过自动检测相关类来创建JAXBContext。例如,JAXB可以读取与预期不完全匹配的XML文档。这是JAXB解组器的默认行为。 例如,如果我们有一个Foo类: @XmlRootElement class Foo{ @XmlAttribute String name; @XmlElement String title; } Foo类是以下文档的代表性Java类: <foo nam

我对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();
JAXBElement root=um.unmarshal(新的StreamSource(新文件(“output.xml”)),
Foo.class);
Foo-Foo=root.getVlaue();
这是JAXB的默认行为吗?我明白了吗,还是我迷路了

这是JAXB的默认行为吗

是的,这是预期的JAXB行为。如果指定要解组的类,则将收到该类型的实例,该实例包装在保存根元素信息的
JAXBElement
实例中

了解更多信息