4

我有一个简单的类,我需要编组。该类声明为:

@XmlRootElement  
public class XMLUser...

这是我得到的:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xmlUser>
    <login>myLogin</login>
    <password>myPass</password>  
    <role name="role1"/>  
    <role name="role2"/>  
    <role name="role3"/>  
</xmlUser>

现在我想在一个文件中拥有多个用户,但不需要自己创建一个包装类,有点像使用@XmlElementWrapper,但用于一个类而不是一个字段。我不知道这是否可能。

这样我就可以编组一个列表(或 jaxb 提供的一些对象),我最终可以得到一个这样的 xml(<users>自动生成的标签):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<users>
    <xmlUser>
        <login>login1</login>
        <password>pass2</password>
        <role name="role1"/>
        <role name="role2"/>
    </xmlUser>
    <xmlUser>
        <login>login2</login>
        <password>pass2</password>
        <role name="role1"/>
        <role name="role3"/>
    </xmlUser>
</users>

任何帮助表示赞赏。

4

1 回答 1

5

不创建新类是不可能的。
单路是

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Users 
{
   @XmlElement(name = "xmlUsers")
   List<XmlUser> users = new ArrayList<XmlUser>();
}  

输出

<users>
    <xmlUsers>
       //...
    </xmlUsers>
    <xmlUsers>
       //...
    </xmlUsers>
</users>
于 2012-09-04T07:51:44.213 回答