Я хотел бы создать коллекцию различных коллекций. Все с общим родителем и каждый с @XMLRootElement
:
@XmlRootElement("as")
public class As extends DTOs {
@XmlElement("a")
private Collection collection;
//
}
@XmlRootElement("bs")
public class Bs extends DTOs {
@XmlElement("b")
private Collection collection;
//
}
@XmlRootElement("b")
public class B extend DTO {
}
public class DTOs extends DTO {
}
public class Element Extend DTO{
private Collection collection;
@XmlElementRef
getCollection() {
return collection;
}
}
Какими должны быть аннотации в Element
для создания:
<as>
<a>
<name>
</a>
<bs>
<b><foo/></b>
<bs>
<cs>
<c/>
</cs>
</as>
Моя первая попытка была @XmlAnyElement(lax=true)
, но это исключение из-за "Нелегальной аннотации". Я полагаю, это произошло из-за столкновения с @XmlElement
в бетонных объектах.
При добавлении @XmlElementRef
он жалуется во время выполнения с
невозможно маршалировать тип "com.example.Bs" в качестве элемента, так как отсутствует аннотация @XmlRootElement
Я думаю, это может быть связано с наследством.