2012-08-16 6 views
2

에서 이름 충돌이있을 때 경고를 얻을하는 방법 : 다음의 클래스와나는 다음과 같은 XML했다 JAXB

<parameters> 
    <parameter >value1</param> 
    <parameter >value2</param> 
</parameters> 

: (? 예외)

@XmlRootElement 
public class Parameters { 
    @XmlElement public String parameter; 
} 

내가 경고를 얻을 수있는 방법이의 오브젝트에 XML을 언 마샬링 할 때의 중복 값?

답변

2

스키마 유효성 확인을해야합니다. 스키마에서 중복을 허용하면 String에서 Collection 유형으로 전환해야합니다.

스키마가없는 경우 schemagen 도구를 사용하여 Java 클래스에서 생성 할 수 있습니다. runtime에 스키마를 생성하고 JaxbContext과 함께 캐시 한 다음 유효성 검사에 사용할 수도 있습니다.

+0

자바 클래스 만 사용하여 중복을 피할 수 있습니까? – oshai

+0

답변을 업데이트 했으므로이 유형의 검증을 다른 방법으로 수행 할 수 있다고 생각하지 않습니다. – tibtof

+1

+1 - 다음 문서는 비 정렬 화 작업 중에 스키마 유효성 검사를 활용하는 방법을 보여줍니다. http://blog.bdoughan.com/2010/12/jaxb-and-marshalunmarshal-schema.html –