Java JAXBXML映射为列表元素
我在为以下XML创建Java类时遇到问题: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类一起
<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(){...}
}