# xInclude mit EMF benutzen (einlesen)



## greeni (30. Sep 2010)

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?


----------



## Wildcard (30. Sep 2010)

Siehe hier:
Eclipse Community Forums: EMF => XINCLUDE support


----------



## greeni (30. Sep 2010)

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 (30. Sep 2010)

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 (4. Okt 2010)

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:


```
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?


----------



## Wildcard (5. Okt 2010)

Was bringt dich auf die Idee das da href="datei" stehen soll? ???:L


----------



## greeni (6. Okt 2010)

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

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


----------



## Wildcard (6. Okt 2010)

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 (7. Okt 2010)

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 (7. Okt 2010)

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


----------



## greeni (8. Okt 2010)

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


----------



## Wildcard (8. Okt 2010)

Frag mal in der EMF Newsgroup nach, da weiß ich spontan auch keinen Rat.


----------

