Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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
Java 使用JAXB解组xml文件时使用的策略是什么?_Java_Xml_Jaxb_Jaxb2 - Fatal编程技术网

Java 使用JAXB解组xml文件时使用的策略是什么?

Java 使用JAXB解组xml文件时使用的策略是什么?,java,xml,jaxb,jaxb2,Java,Xml,Jaxb,Jaxb2,假设这些就是这些对象 @XmlRootElement @XmlAccessorType(XmlAccessType.PROPERTY) public class Root{ private Collection<Item> items; @XmlElement(name="item") @XmlElementWrapper(name="items") public void setItems(Collection<Item> items

假设这些就是这些对象

@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Root{

    private Collection<Item> items;

    @XmlElement(name="item")
    @XmlElementWrapper(name="items")
    public void setItems(Collection<Item> items){
        this.items = items
    }
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
公共类根{
私人收藏物品;
@xmlement(name=“item”)
@xmlementwrapper(name=“items”)
公共作废集合项目(集合项目){
this.items=项目
}
}

@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
公共类项目{
私人收藏物品;
@xmlement(name=“item”)
公共作废集合项目(集合项目){
this.items=项目
}
}
我可以使用类似于此示例的结构来解组xml文件

<root>
    <items>
        <item>
            <item>
                <item></item>
                <item></item>
            </item>
            <item></item>
            <item></item>
        </item>
        <item></item>
        <item></item>
    <items>
</root>

实际问题是。当解组器调用
Root.setItems(items)
时,是否保证此
集合中每个
项的每个属性都已完全初始化?是否可以更改解组器构建对象图的方式(从上到下或从下到上)

提前感谢。

回答您的问题 实际问题是。当解组器调用 setItems(items)是否保证每个项的每个属性 此集合中的数据是否已完全初始化

是否可以更改解编程序构建 对象图(从上到下或从下到上)

没有

JAXB为何以这种方式工作 JAXB(JSR-222)实现将利用SAX或StAX解析器来高效地处理XML。这些解析器对XML文档进行深度优先遍历。因此,JAXB将以同样的方式填充对象。在JAXB知道集合中有第二个要处理的项之前,将完全处理与集合中第一个项对应的对象

<root>
    <items>
        <item>
            <item>
                <item></item>
                <item></item>
            </item>
            <item></item>
            <item></item>
        </item>
        <item></item>
        <item></item>
    <items>
</root>