Hallo ich habe in Klasse A eine HashMap mit HashMap<A, B>. Der Schlüssel ist ein anderes Objekt von A um eine Nachbarschaftsbeziehung abzubilden
In dieser HashMap möchte ich nur die @XMLIDREF der Objekte speichern, da diese an mehreren Stellen im Code verwendet werden.
Das Speichern wird durch einen XMLAdapter gelöst und funktioniert auch, es stehen nur die IDs der Objekte im XML. Das Objekt selber wird an anderer Stelle vollständig beschrieben. Jetzt zum eigentlichen Problem. Beim Laden dieser Struktur wird die Map nicht volllständig gefüllt, da wenn z.B das erste A Objekt geladen wird, welches in der Map auf A2 referenziert, ist dieses noch nicht geladen, ebenso ist B nicht geladen. Was muss ich tun, damit rekursiv die Objekte erstellt werden?
Ein Schema besteht mit type="xs:ID" und "xs:IDREF" Beziehungen, alles wird mit JAXB geregelt.
Hier eine abgewandelte Version des XMLs
In dieser HashMap möchte ich nur die @XMLIDREF der Objekte speichern, da diese an mehreren Stellen im Code verwendet werden.
Das Speichern wird durch einen XMLAdapter gelöst und funktioniert auch, es stehen nur die IDs der Objekte im XML. Das Objekt selber wird an anderer Stelle vollständig beschrieben. Jetzt zum eigentlichen Problem. Beim Laden dieser Struktur wird die Map nicht volllständig gefüllt, da wenn z.B das erste A Objekt geladen wird, welches in der Map auf A2 referenziert, ist dieses noch nicht geladen, ebenso ist B nicht geladen. Was muss ich tun, damit rekursiv die Objekte erstellt werden?
Ein Schema besteht mit type="xs:ID" und "xs:IDREF" Beziehungen, alles wird mit JAXB geregelt.
Hier eine abgewandelte Version des XMLs
Code:
<allPersons>
<person name="p_0" id="id_p0">
<street>id_s0</street>
<age>67</age>
<allNeighbours>
<neighbour>
<keyPerson>id_p1</keyPerson>
<valueStreet>id_s0</valueStreet>
</neighbour>
<neighbour>
<keyPerson>id_p2</keyPerson>
<valueStreet>id_s1</valueStreet>
</neighbour>
</allNeighbours>
</person>
<person name="p_1" id="id_p1">
<street>id_s1</street>
<age>34</age>
<allNeighbours>
<neighbour>
<keyPerson>id_p0</keyPerson>
<valueStreet>id_s1</valueStreet>
</neighbour>
<neighbour>
<keyPerson>id_p2</keyPerson>
<valueStreet>id_s2</valueStreet>
</neighbour>
</allNeighbours>
</person>
<person name="p_2" id="id_p2">
<street>id_s1</street>
<age>25</age>
<allNeighbours>
<neighbour>
<keyPerson>id_p0</keyPerson>
<valueStreet>id_s1</valueStreet>
</neighbour>
<neighbour>
<keyPerson>id_p1</keyPerson>
<valueStreet>id_s1</valueStreet>
</neighbour>
</allNeighbours>
</person>
</allPersons>
<allStreets>
<street id="id_s0">
<name>street0</name>
</street>
<street id="id_s1">
<name>street1</name>
</street>
<street id="id_s2">
<name>street2</name>
</street>
</allStreets>