2011-10-07 3 views
3

집합의 필드가있는 개체를 마샬링하고 있습니다. 구현은 정렬되지 않으므로 결과 XML 요소의 순서는 임의적입니다. 또한 마샬링 할 때마다 순서가 달라집니다.JAXB 집합의 강제 순서

marshaller에게 마샬링하는 동안 필드 내용을 정렬하는 방법을 알려주는 방법이 있습니까?

답변

0

SortedSet을 이용할 수 있습니다. 당신이 당신의 인스턴스에서 Set의 인스턴스를 초기화 할 경우 다음 JAXB 대신 새로운 하나를 만드는 것을 구현을 사용합니다 :

package forum7686859; 

import java.util.Set; 
import java.util.TreeSet; 

import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement 
public class Root { 

    //private Set<String> children = new HashSet<String>(); 
    private Set<String> children = new TreeSet<String>(); 

    public Set<String> getChildren() { 
     return children; 
    } 

    public void setChildren(Set<String> children) { 
     this.children = children; 
    } 

} 
+0

가 아니, 내가 정말 원하는 것이 아니다. 내 컬렉션이 항상 정렬되고 싶지 않습니다. 분류되지 않은 세트는 자연 그대로입니다. XML 출력의 요소 순서가 동일한 컬렉션에 대해 동일하다는 것을 보장하기 만하면됩니다. – Vladimir