2014-11-24 6 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, но это немного сложнее.