EMF: Sichtbarkeit von ID's

Status
Nicht offen für weitere Antworten.
K

krok158

Gast
Hi,

Mein Problem ist folgendes:

Ich will so eine Art "Kunstladen" in XML mit Hilfe von EMF modelieren. Mein Ziel ist es, folgenden XML-Ausschnitt zu produzieren und einzulesen: (Das ist ein sehr vereinfachtes Modell, um das wesentliche Problem zu skizzieren.)

Code:
...
<Kuenstler id="Otto" ...>
    <Werk id="Strasse" .../>
    <Werk id="Gasse" .../>
</Kuenstler>
<Kuenstler id="Muster" ...>
    <Werk id="Apfel" .../>
    <Werk id="Strasse" .../>
</Kuenstler>
...
<Bestellung id="Kunde1" ...>
    <Werk href="//Otto/Strasse"/>
    <Werk href="//Muster/Strasse"/>
...

Wörtlich ist das Problem in den Werksnamen, die eindeutig nur in Verbindung mit Künstlernamen sind.
Das iD="true" Attribut setzt voraus, dass "id" im ganzen Dokument eindeutig ist.

Leider habe ich nach tagelangen Suchen in alle mögliche Resursen (Google, Foren, Bücher) noch kein Lösung gefunden.
Für jede Hilfe werde ich extrem dankbar sein ;)
 

Wildcard

Top Contributor
Warum benutzt du ID denn als ID?
Du kannst ID für das Feature einfach auf false setzen, Resource#getURIFragment(EObject) liefert dir trotzdem eine gültige ID (Pfadbasiert) über die referenziert wird. Wenn du allerdings UUIDs brauchst, dann bietet dir EMF auch dafür built-in Support (zB über XMI UUIDs)
 
K

krok158

Gast
Danke für die Antwort.

Das problem ist in Ausgabe fon XPaths.
Wenn ich keine id's definiere, werden die Werke einfach durchnummeriert.
Solte jemand den Dokument manuel ändern (neue Werk dazu in die Mitte packen) wird das alles ducheinanderer :(
 

Wildcard

Top Contributor
Du kannst in deiner Resource getFragmentURI überschreiben und dort eigene IDs ganz nach eigenen Wünschen zurückliefern. Du musst nur dafür sorgen, dass die ID dann auch wirklich eindeutig in deiner Resource ist.
 
Status
Nicht offen für weitere Antworten.

Oben