# XMI Bibliothek?



## sunnyfriday (15. Mrz 2008)

Hallo Leute,

Ich suche vergebens eine Lösung, in Java(IDE: Netbeans) um auf eine XMI Datei zuzugreifen.
Gibt es dafür eine Bibliothek ? wenn ja, wo finde ich sie?

wäre nett wenn jemand helfen könnte
gruss Sunnyfriday


----------



## Wildcard (15. Mrz 2008)

Das Eclipse Modelling Framework zum Beispiel,
Entweder du verwendest direkt die XMIResource, oder du lässt dir passende Modell Klassen erstellen.


----------



## sunnyfriday (16. Mrz 2008)

hallo,

danke für die Info . . .
Ich mache gerade ein Projekt, bei dem ich ein UML Diagramm welches in einem XMI File konvertiert wird auf selbstdefinierte Validierungsregeln überprüfen kann. Deswegen brauche ich eine Möglichkeit auf die XMI Datei zuzugreifen.

Ich werde mal schauen das Eclipse Modelling Framework zu installieren und auszuprobieren.

danke 

gruss sunny


----------



## Wildcard (16. Mrz 2008)

Für UML bildet sich das EMF basierte UML2.0 Projekt an. Dabei handelt es sich um ein EMF Modell für die UML2.0.
Mittels JET solltest du damit bei bedarf zB auch Java Klassen aus UML generieren können.

EDIT: für die Validierung solltest du dir die OCL Unterstützung für EMF ansehen.


----------



## sunnyfriday (16. Mrz 2008)

Hi Wildcard,

Danke für den Tipp.
Bringt das UML2.0 Projekt auch die Möglichkeit auf XMI zuzugreifen?
Jet und OCL sagen mir gerade nichts, aber ich habe jetzt mindestens einen Ansatzpunkt.
Das UML2.0  Projekt gibt es wahrscheinlich als Plugin oder?

gruss sunny


----------



## Wildcard (17. Mrz 2008)

Mit UML2.0 solltest du theoretisch automatisch eine XMI in ein UML Objekt Modell überführen können, es beliebig manipulieren können und wieder als XMI speichern können. OCL ist die Object Constraint Language, ein von der OMG verabschiedeter Standard für Validierung.
UML2.0 ist erstmal ein PlugIn, kann wie alle EMF Modelle aber auch ohne Eclipse mit einer Runtime Compatibility Jar ausserhalb von Eclipse betrieben werden.


----------



## macusa (25. Jun 2009)

Hallo.

dieser Thread ist zwar schon alt, aber ich habe auch noch eine Frage dazu.

Ich möchte UML-Modelle, die mit Enterprise Architect erstellt werden und als XMI exportiert werden, parsen. 

Ich denke mit EMF lässt sich das machen. Ich habe auch versucht ein neues EMF Modell zu erstellen und dann die XMI-Datei zu importieren.

Folgende Fehlermeldungen habe ich erhalten:
_
org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri 'http://schema.omg.org/spec/XMI/2.1' not found. 
(file:/C:/daten/workspace/java/umltest/eclipse2.xmi, 3, 76)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.getPackageForURI(XMLHandler.java:2576)_

_org.eclipse.emf.ecore.xmi.FeatureNotFoundException: Feature 'model' not found. 
(file:/C:/daten/workspace/java/umltest/eclipse3.xmi, 68, 163)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleFeature(XMLHandler.java:1762)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:1023)..._
-------
Die XMI Datei fängt so an:

```
<?xml version="1.0" encoding="windows-1252"?>
<xmi:XMI xmi:version="2.1" 
xmlns:uml="http://schema.omg.org/spec/UML/2.0" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" 
xmlns:thecustomprofile="http://www.sparxsystems.com/profiles/thecustomprofile/1.0">
	<xmi:Documentation exporter="Enterprise Architect" exporterVersion="6.5"/>
	<uml:Model xmi:type="uml:Model" name="EA_Model" visibility="public">
...
</uml:Model>
	<xmi:Extension extender="Enterprise Architect" extenderID="6.5">
...
	</xmi:Extension>
</xmi:XMI>
```

Wie kann ich die XMI-Datei (von Enterprise Architect) durchlaufen und die Elemente des Modells herausfinden? Ich möchte kein Code generieren, sondern nur die Elemente auflisten.

Vielen Dank im Voraus


----------



## Wildcard (25. Jun 2009)

Versuch es mal mit dem UML2.0 EMF Modell von Eclipse. Entscheidend ist auf welchen Namespace das registriert ist.
Wichtig ist allerdings: EMF ist kein XMI Parser, sondern ein MDD Tool. Entweder du verwendest ein fertiges EMF Modell, oder du erstellst eins das zu den Daten passt.


----------

