2012-09-04 60 views
4

我有一個簡單的類,我需要馬歇爾。類被聲明爲:列表自動XmlRootElement包裝

@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提供的一些對象)和I可以與這樣的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> 

任何幫助理解。

回答

5

沒有創建新班級,這是不可能的。
單一的方式是

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

輸出

<users> 
    <xmlUsers> 
     //... 
    </xmlUsers> 
    <xmlUsers> 
     //... 
    </xmlUsers> 
</users> 
+0

感謝您的回答。 – user1294431