2014-11-04 6 views
2

나는 다음과 같은 코드가 있습니다jaxb로 세트를 마샬링하는 방법은?

<foos> 
    <foo> 
     <id>bar1</id> 
    </foo> 
    <foo> 
     <id>bar2</id> 
    </foo> 
</foos> 

내가 래퍼 클래스가 필요하십니까 :

@XmlRootElement(name = "foo") 
@XmlAccessorType(XmlAccessType.FIELD) 
public class Foo 
{ 

    @XmlElement 
    private String id; 

    ... 

} 

나는이에 Set<Foo> foos가 마샬링 할 수 있도록하고 싶습니다를? 그렇다면 어떻게 보이게 될까요? 내 특수 효과가 정확합니까? 마샬링 코드는 어떻게 보이게 할 것인가? 당신이 캡슐화하려면

+0

당신이 @XmlElementWrapper (이름 = "FOOS") , FOOS 설정과 시도나요;? – nomoa

답변

3

어떤 컬렉션은 직접 마샬 Set를 자신 만 클래스 내부 사용자의 설정을 포함 할 필요가 없습니다 수있는 방법으로 XmlElementWrapper

@XmlElementWrapper(name="foos") 
@XmlElement(name="foo") 
private Set<Foo> foos; 

를 사용합니다. 방금 마샬에 푸 세트를 원한다면 당신은이 같은 빈을 작성해야 :

@XmlRootElement(name = "foos") 
public class Foos { 
    @XmlElement(name="foo") 
    private Set<Foo> foo; 
} 
+0

어쩌면 나는 분명해야했다 : 기본적으로'Set '주위의 래퍼 인 별도의 클래스를 가질 수없는 것은 가능한 일인가? 마샬링 할 때'Set '을 래핑하는 방법에 대한 완전한 예제를 제공하여, 단지'Set'을 포함하는 별도의 클래스가 필요하지 않겠습니까? – carlspring

+0

오른쪽 ... 무슨 뜻인지 알 겠어. 이 작품! 감사! – carlspring

+0

@carlspring 불행히도 Set에서 직접이 작업을 수행 할 수는 없습니다. 클래스에 직접 포함시켜야합니다. – nomoa