2
Я пытаюсь создать что-то подобное с JAXB:Mapping Java коллекции, содержит супер- и подтипы с JAXB
<person>
<firstName>Foo</firstName>
<lastName>Bar</lastName>
<identities>
<green id="greenId">
<some_elements....
</green>
<blue id="blueId"/>
</identities>
Дочерние элементы <identities>
все стволовые от общего супер-класса.
В Java это так:
@XmlRootElement(name = "person")
public class Person {
public String firstName;
public String lastName;
@XmlElementWrapper(name = "identities")
public Set<Identity> identities = new HashSet<Identity>();
}
Где Identity
супер класс для Blue
, Green
и некоторых других.
public class Identity {
@XmlID
@XmlAttribute
public String id;
}
@XmlRootElement(name = "blue")
public class Blue extends Identity {
public String oneOfManyFields;
}
@XmlRootElement(name = "green")
public class Green extends Identity {}
Как правильно аннотировать классы, чтобы получить то, что мне нужно? В настоящее время выход примерно так:
<identities>
<identities id="0815"/>
</identities>
Strike! Спасибо, сегодня я чему-то научился. –