JAXB Unmarshalling @XmlAnyElement
Den ich erstellt habe drei JAXB-Klasse : Home , Person , Animal
. Java-Klasse
Zu Hause haben variable List<Object> any
enthalten können Mensch und/oder Tier-Instanz .
public class Home {
@XmlAnyElement(lax = true)
protected List<Object> any;
//setter getter also implemented
}
@XmlRootElement(name = "Person") //Edited
public class Person {
protected String name; //setter getter also implemented
}
@XmlRootElement(name = "Animal") //Edited
public class Animal {
protected String name; //setter getter also implemented
}
/* Nach Unmarshalling */
Home home ;
for(Object obj : home .getAny()){
if(obj instanceof Person ){
Person person = (Person )obj;
//.........
}else if(obj instanceof Animal ){
Animal animal = (Animal )obj;
//.........
}
}
Muss ich erreichen Person or Animal
Objekt gespeichert in "Home.any" List
variabel, aber der Inhalt "Home.any" List
ist Instanz von com.sun.org.apache.xerces.internal.dom.ElementNSImpl
statt Animal or Person
.
Also gibt es einen Weg, das zu erreichen Animal or Person
Instanz, die in xml gespeichert in "Home.any" List
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
@XmlRootElement
auf die Klassen, die Sie wollen, erscheinen als Instanzen in das Feld bzw. die Eigenschaft, die Sie haben, kommentiert mit@XmlAnyElement(lax=true)
.Java-Modell
Hause
Person
}
Tier
Demo-Code
input.xml
Demo
Ausgabe
Weitere Informationen
JAXBContext
und ist es sich bewusst, alle Ihre Klassen?