Hallo,
ich benutze zwar schon eine ganze Weile JAXB zum lesen von einfachen XML-Dateien, da sich das ganze recht schnell über die Annotations realisieren lässt. Aber gerade, nachdem mir eine etwas umfangreichere XML-Datei untergekommen ist, wirkt die realisierung doch recht umständlich...daher bin ich mir nicht so sicher, ob der Fehler nicht einfach bei mir liegt.
Hier mal das bsp, was mein Problem in etwa verdeutlicht:
[XML]
<ebene1 e1="">
<ebene2 e2="">
<ebene3 e3="">
<ebene4 e4="">
</ebene4>
</ebene3 e3="">
</ebene2 e2="">
</ebene1>[/xml]
Die dazugehörigen Klassen würden so aussehen:
[Java]@XmlRootElement(name = "ebene1")
class Ebene1 {
@XmlAttribute String e1;
Ebene2 ebene2;
}
class Ebene2 {
@XmlAttribute String e2;
Ebene3 ebene3;
}
class Ebene3 {
@XmlAttribute String e3;
Ebene4 ebene4;
}
class Ebene4 {
@XmlAttribute String e4;
}[/code]
Meine Frage ist nun, ob es wirklich nötig ist, für jedes verschachtelte Element eine eigene Klasse zu erstellen? Könnte man das ganze nicht irgendwie über die Annotations so definieren, dass eine einzelne Klasse sämtliche Informationen aufnimmt? Wie z.B.:
[Java]@XmlRootElement(name = "ebene1")
class Ebene1 {
@XmlAttribute String e1;
@XmlAttribute String e2;
@XmlAttribute String e3;
@XmlAttribute String e4;
}[/Java]
ich benutze zwar schon eine ganze Weile JAXB zum lesen von einfachen XML-Dateien, da sich das ganze recht schnell über die Annotations realisieren lässt. Aber gerade, nachdem mir eine etwas umfangreichere XML-Datei untergekommen ist, wirkt die realisierung doch recht umständlich...daher bin ich mir nicht so sicher, ob der Fehler nicht einfach bei mir liegt.
Hier mal das bsp, was mein Problem in etwa verdeutlicht:
[XML]
<ebene1 e1="">
<ebene2 e2="">
<ebene3 e3="">
<ebene4 e4="">
</ebene4>
</ebene3 e3="">
</ebene2 e2="">
</ebene1>[/xml]
Die dazugehörigen Klassen würden so aussehen:
[Java]@XmlRootElement(name = "ebene1")
class Ebene1 {
@XmlAttribute String e1;
Ebene2 ebene2;
}
class Ebene2 {
@XmlAttribute String e2;
Ebene3 ebene3;
}
class Ebene3 {
@XmlAttribute String e3;
Ebene4 ebene4;
}
class Ebene4 {
@XmlAttribute String e4;
}[/code]
Meine Frage ist nun, ob es wirklich nötig ist, für jedes verschachtelte Element eine eigene Klasse zu erstellen? Könnte man das ganze nicht irgendwie über die Annotations so definieren, dass eine einzelne Klasse sämtliche Informationen aufnimmt? Wie z.B.:
[Java]@XmlRootElement(name = "ebene1")
class Ebene1 {
@XmlAttribute String e1;
@XmlAttribute String e2;
@XmlAttribute String e3;
@XmlAttribute String e4;
}[/Java]