# JAXB - Unmarshal -> Kinder bekommen und die Kinder von den Kinder



## beta20 (30. Mrz 2016)

Hallo zusammen,

ich habe eine XML (mittels JAXB marshal) erstellt und möchte nun diese einlesen.
Das funktioniert auch mit folgendem Code:


```
File file = new File(
                    "test.xml");

            JAXBContext jaxbContext = JAXBContext
                    .newInstance(MyClass.class);

            Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
            MyClass myClass = (MyClass) jaxbUnmarshaller
                    .unmarshal(file);
            System.out.println(myClass);
```

Damit bekomme ich auch das Objekt, das in meiner XML steht von der Klasse "MyClass" zurück.
MyClass hat allerdings noch weitere Elemente (nicht Attribute).
Gibt es eine Lösung auch diese alle bekommen?
Ich kann natürlich auch immer mit der Get - Methode von "MyClass" alle anderen Kinder abrufen. Problem ist aber: Die Kinderelemente können natürlich auch wieder Kinderelemente haben usw. (Sehr aufwändig und auch fehleranfällig)

*Mein Ziel ist es:*
1) XML einlesen *(erledigt)*
2) MyClass in Objekt umwandeln *(erledigt)*
3) Alle Kinder von MyClass bekommen *(nicht erledigt)* und jedes Objekt prüfen, ob in Datenbank vorhanden (Aufruf einer Methode, ist hier aber nicht das Thema...) 
4) Kinder von den Kinder bekommen und ebenfalls prüfen, ob in der Datenbank vorhanden *(nicht erledigt)*

Kann mir hier bitte jemand helfen.


----------



## thecain (30. Mrz 2016)

Was sind


beta20 hat gesagt.:


> weitere Elemente (nicht Attribute)


Hast du mehrere verschiedene Root elemente? Dann ist dein Xml nicht valid und du brauchst eine Wrapperklasse welche eine List von MyClasses drin hat.


----------



## beta20 (30. Mrz 2016)

Nein, habe ich nicht.


----------



## thecain (30. Mrz 2016)

Was sind denn "weitere Elemente" die nicht Attribute sind?


----------



## beta20 (30. Mrz 2016)

Ich erkläre es anhand eines Beispiels was ich als "weitere Elemente" meine:

Root: Auto
Weitere Elemente (=meine Kinder)
z.B. 
- Reifen
- Sitz

Diese Kinderelemente haben dann wieder weitere Kinder
- Ventil
- .....


----------



## thecain (31. Mrz 2016)

Dann muss einfach Reifen, etc auch mit JAXB Annotiert sein


----------



## beta20 (1. Apr 2016)

Wie meinst du das genau? Meine Klassen (Reifen etc.) sind alle mit JAXB annotiert....


----------



## thecain (1. Apr 2016)

Dann machst du sonst was falsch. Wobei ich auch nicht verstehe, was eine Datenbank meinem einem unmarshall zu tun haben soll...


----------

