# JAXB: Wert von übergeordneten Element



## Landei (8. Sep 2011)

Folgende XML-Struktur:


```
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<PriceBook>
    <PriceList product="0D000000.007C.06">
        <Price .../>
        <Price .../>
    </PriceList>
    ...
</PriceBook>
```

Wie ich in PriceList die ID in ein Produkt mittels Adapter konvertiere, habe ich schon rausbekommen. Nun hätte ich den Wert aber auch gern in den untergeordneten Preis-Objekten gesetzt. Wie geht das möglichst elegant?


----------



## Wildcard (8. Sep 2011)

Ihr könnt es wahrscheinlich nicht mehr höhren, aber ich sage es trotzdem 
In EMF ist das kein Problem, ist ein transient (nicht-persistent), volatile (kein member), derived Feature (berechneter Wert).
Im Code sieht das dann einfach so aus (wenn ich dich richtig verstanden habe)
Mit EMF brauchst du auch keinen Adapter um ein IDREF Attribut auf ein Objekt zu mappen, EMF macht das automatisch.


```
public Product getProduct(){
    return getPriceList().getProduct();
}
```


----------



## Landei (9. Sep 2011)

Ich hatte mir EMF anfgeschaut, aber ich denke, es wäre bei meinem Projekt einfach Overkill, und die Erstellung war alles andere als intuitiv. Gehe ich bei JAXB von annotierten Klassen aus, bekomme ich meist genau das, was ich erwarte, Änderungen sind kein Problem, und ich brauche keine zusätzlichen jars.


----------



## Wildcard (9. Sep 2011)

> Ich hatte mir EMF anfgeschaut, aber ich denke, es wäre bei meinem Projekt einfach Overkill, und die Erstellung war alles andere als intuitiv. Gehe ich bei JAXB von annotierten Klassen aus, bekomme ich meist genau das, was ich erwarte, Änderungen sind kein Problem, und ich brauche keine zusätzlichen jars.


EMF Modelle können übrigens auch aus annotierten Interfaces erzeugt werden, sind nur andere Annotations.
Spaßeshalber:
Hast du ein XML Schema das du mir zukommen lassen könntest? Dann leite ich dir daraus ein Modell ab und du hast einen direkten Vergleich.


----------



## Landei (10. Sep 2011)

Nein, es wird alles aus den annotierten Klassen abgeleitet, was ich auch ganz gut finde: Da ich noch fleißg dran rumschraube, wäre ein fixes Modell ziemlich hinderlich.

Ich habe jetzt übrigens einen Lösungsansatz (von stackoverflow): Man kann das in afterUnmarshall erledigen. Wahrscheinlich bin ich inzwischen *zu* sehr auf Annotations fixiert...


----------

