2014-11-24 1 views
1

해당 XML 유효합니까? ?다른 곳의 같은 xml 요소

<xml> 
    <foo/> 
    <foo/> 
    <bar/> 
    <bar/> 
    <foo/> 
    <bar/> 
</xml> 

그것은이 경우, JAXB 매핑은 구조를 유지하기 위해 같이 방법 (나는 모든 FOOS을 만든 매핑을 막대 같은, 하나의리스트로 전환)

+0

단어 "유효"는 DTD 또는 XML 스키마 없이는 의미가 없습니다. 스 니펫은 * 올바른 형식 * (즉, 구문 오류가 없음)입니다. – Tomalak

+0

이 문서의 스키마가 있으며 Intellij는 "고유하지 않은 선언 이름 foo"와 같은 것을 보여 주므로 의심 스럽습니다. – Krever

+0

이 경우 문서가 해당 스키마에 대해 유효하지 않은 것으로 보입니다. – Tomalak

답변

1

당신은 @XmlElements를 사용할 수 있습니다

@XmlElements({ 
    @XmlElement(name="Foo", type=Foo.class), 
    @XmlElement(name="Bar", type=Bar.class) 
}) 
public List<Goo> fooOrBar; 

Foo을 가정하고 Bar는 공통의 슈퍼 클래스 Goo 있습니다. (최악의 경우에는 공통 수퍼 클래스 Object을 사용하십시오.)

또 다른 옵션은 @XmlElementRefs이지만 조금 복잡합니다.