xInclude mit EMF benutzen (einlesen)

greeni

Mitglied
Hallo zusammen,

ist es möglich mit EMF eine xml Datei einzulesen in der einein Teil dieser Datei mit xInclude eingebunden ist?
Beispiel:
[XML]
<A>
<B>text</B>
<xi:include href="restAlphabet.xml"/>
</A>
[/XML]

Das komlette Modell wurde aus einer xsd generiert. Und folgendes kann zum jetzigen Zeitpunkt auch schon eingelesen werden:
[XML]
<A>
<B>text</B>
<C>text</C>
<D>text</D>
<E>text</E>
</A>
[/XML]

Lediglich mit xInclude (siehe 1. Listing) funktioniert nicht?
 
Zuletzt bearbeitet:

greeni

Mitglied
Das heißt dann wohl das da nichts zu machen ist...Schade.
Weißt du ob EMF da vieleicht ne andere Möglichkeit anbietet eine Date in die andere einzubinden?
 

Wildcard

Top Contributor
Was meinst du mit nicht zu machen? In dem Post waren zwei Möglichkeiten genannt.
Entweder den SAXParser include aware machen, oder mit Containment Proxies arbeiten.
 

greeni

Mitglied
Hab das mit den Containment Proxies ausprobiert. Hab das Containment Proxies Flag auf true gesetzt und bei den Elementen, die ich auslagern möchte, habe ich Resolve Proxie auf true gesetzt.

Allerdings will das einfach nicht funktionieren.
Beim laden der Datei bekomme ich eine FeatureNotFoundException mit der Meldung Feature 'href' not found
Das href bezieht sich auf den Eintrag in der xml Datei:
[XML]
<A>
<B href="andereDatei.xml#/"/>
</A>
[/XML]


Das ist mein Code um die datei zu laden:

Java:
URI resourceURI = EditUIUtil.getURI(getEditorInput());
Exception exception = null;
Resource resource = null;
try 
{
   // Load the resource through the editing domain.
   resource = editingDomain.getResourceSet().getResource(resourceURI, true);
}
catch (Exception e) 
{
   exception = e; 
   resource = editingDomain.getResourceSet().getResource(resourceURI, false);
}

Woran könnte das liegen?
 

greeni

Mitglied
Na der Link zu dem Forumseintrag den du mir geschickt hast.
Da steht das doch so drin...

[XML]
<organization href="branch.xml#/"/>
[/XML]
 

Wildcard

Top Contributor
Das hängt aber von deinem Modell ab. Das war nur ein Beispiel bei dem das feature um das es geht eben 'href' heißt, href hat keine spezielle Bedeutung.
 

greeni

Mitglied
Hm... bist du dir da sicher?
Es ist nämlich so, dass ich über diese Control Funktion aus dem Contextmenü sehrwohl 2 Dateien miteinander verbinden kann. Wenn ich das ganze abspeichere sieht das dann wirklich so aus:

[XML]
<A>
<B href="andereDatei.xml#/"/>
</A>
[/XML]

Das Element B hat bei mir aber wirklich kein Attribut namens "href". Daher denke ich das, das href irgendwie vom EMF erzeugt wird. Das stört mich soweit aber auch nicht. Ganz im Gegenteil!! Wenn ich die Datei mit dem Editor nun auch wieder laden könnte, währe alles in Butter.
Allerdings kommt beim Laden eben diese FeatureNotFoundException mit der Meldung Feature 'href' not found
 

Wildcard

Top Contributor
Oh, ok, dann habe ich das wohl falsch verstanden. Hast du nach dem du Containment Proxies auf true gesetzt hast nochmal neu generiert?
 

greeni

Mitglied
Ja, das habe ich. Wie gesagt, beim Erzeugen der xml Datei funktioniert das auch... nur eben beim erneuten Laden funktioniert das ganze nicht mehr.
 

Ähnliche Java Themen

Neue Themen


Oben