2012-09-04 2 views
4

나는 마셜에 필요한 간단한 클래스가 있습니다.목록 용 자동 XmlRootElement 래퍼

<?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> 

가 지금은 하나 개의 파일에 있지만 래퍼 클래스 자신을 만들 필요없이 여러 사용자를 갖고 싶어, 종류의 사용과 같은 :

여기
@XmlRootElement 
public class 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> 

.

답변

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