Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/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
Java JAXBXML映射为列表元素_Java_Xml_Jaxb - Fatal编程技术网

Java JAXBXML映射为列表元素

Java JAXBXML映射为列表元素,java,xml,jaxb,Java,Xml,Jaxb,我在为以下XML创建Java类时遇到问题: <Users> <User id="1"> <Name>Test</Name> </User> <User id="2"> <Name>Test2</Name> </User> </Users> 试验 测试2 我将Jaxb(javax.xml)与一个Users类一起

我在为以下XML创建Java类时遇到问题:

<Users>
    <User id="1">
        <Name>Test</Name>
    </User>
    <User id="2">
        <Name>Test2</Name>
    </User>
</Users>

试验
测试2
我将Jaxb(javax.xml)与一个Users类一起使用,该类包含User对象的映射(映射,其中字符串是用户id)。在本例中,User包含Id和Name,其中Id是User元素的属性,Id是User中的元素

我已经看过了,但是所有的示例和指南都关注于在用户周围有一个根元素(见下文)


试验
测试2

是否可以删除根元素数据库,只让用户,其中包含许多用户元素?

适配器将在具有列表的用户(JAXB可以处理的)和具有映射的用户映射之间进行转换,但它将不得不为一个领域进行装配——因此用户周围的额外级别

您可以(额外做一点工作)在类中保存一个映射和一个列表,并让JAXB处理该列表。在编组之前和反编组之后,需要调用转换方法,但应用程序可以使用映射

@XmlRootElement(name="Users")
@XmlAccessorType(XmlAccessType.FieLD)
public class Users {
    @XmlElement( name = "user", required = true )
    private List<User> user = ...
    public List<User> getUser(){...}
    @XmlTransient
    private Map<Integer,User> id2user = ...
    public void putUser( User user ){ ... }
    public User getUser( Integer is ){ ... }

    public void map2list(){...}
    public void list2map(){...}
}
@XmlRootElement(name=“Users”)
@XmlAccessorType(XmlAccessType.FieLD)
公共类用户{
@xmlement(name=“user”,required=true)
私有列表用户=。。。
公共列表getUser(){…}
@XmlTransient
私有映射id2user=。。。
公共无效putUser(用户){…}
公共用户getUser(整数为){…}
public void map2list(){…}
public void list2map(){…}
}

如何将
用户
对象存储在
用户
对象中?
@XmlRootElement(name="Users")
@XmlAccessorType(XmlAccessType.FieLD)
public class Users {
    @XmlElement( name = "user", required = true )
    private List<User> user = ...
    public List<User> getUser(){...}
    @XmlTransient
    private Map<Integer,User> id2user = ...
    public void putUser( User user ){ ... }
    public User getUser( Integer is ){ ... }

    public void map2list(){...}
    public void list2map(){...}
}