Je suis en train de produire quelque chose comme ça avec JAXB:cartographie des collections Java qui contient super- et sous-types avec JAXB
<person>
<firstName>Foo</firstName>
<lastName>Bar</lastName>
<identities>
<green id="greenId">
<some_elements....
</green>
<blue id="blueId"/>
</identities>
Les éléments enfants de <identities>
tous les souches d'une super-classe commune.
En Java, il est comme ceci:
@XmlRootElement(name = "person")
public class Person {
public String firstName;
public String lastName;
@XmlElementWrapper(name = "identities")
public Set<Identity> identities = new HashSet<Identity>();
}
Où Identity
est une super classe pour Blue
, Green
et quelques autres.
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 {}
Comment annoter correctement les classes pour obtenir ce dont j'ai besoin? Actuellement, la sortie est comme ceci:
<identities>
<identities id="0815"/>
</identities>
Frappe! Merci, j'ai appris quelque chose aujourd'hui. –