2010-02-20 14 views
13

Ich muss UML-Diagramme lesen, die in XMI serialisiert sind. Gibt es irgendeine Bibliothek, die es mir erlauben würde, bequem UML XMI zu lesen - indem ich praktischerweise meine Methoden habe, über Klassen/Pakete/Methoden/Attribute usw. im Modell zu iterieren.Wie liest man XMI?

Ich habe EMF versucht, aber ich kann kein Tutorial finden, das zeigt, wie man XMI mit UML importiert. Ich habe auch NSUML/NSMDF gefunden, aber der Link zur Dokumentation ist gebrochen.

Antwort

4

Ich glaube nicht, was Sie wollen, existiert. Alle Tools, die XMI importieren, das ich kenne (einschließlich meines XMI-Transformationsdienstes: http://modeling-languages.com/content/xmi2-tool-exchanging-uml-models-among-case-tools), arbeiten, indem sie die gesamte XMI-Datei analysieren und das entsprechende UML-Modell im Hauptspeicher erstellen. Dann können Sie auf die UML-Elemente zugreifen, indem Sie das Modell abfragen.

auf dem XMI-Modell wiederholen Sie einfach XML-Bibliotheken verwenden, können die Stücke der XMI-Datei Sie interessiert sind zu wählen.

1

ArgoUML kann XMI in sein UML-Modell importieren und Code für Java, C++, C#, PHP4 und PHP5 generieren.

0

Um XMI/UML mit EMF zu lesen, müssen Sie das ECore-Modell für UML finden, generieren oder schreiben. Sobald Sie einen solchen haben, können Sie die speicherinternen Klassen für die Manipulation der UML generieren und die andere EMF-Infrastruktur nutzen.

Eine einfachere Route könnte jedoch die Verwendung der UML2-Infrastruktur sein, die von der Eclipse MDT project entwickelt wurde. (Meine Vermutung ist, dass es EMF unter der Haube verwendet und dass es irgendwo ein ECore-Modell für UML2 gibt.)

+0

Sie haben Recht, dass das UML2-Projekt auf EMF aufgebaut ist. – ChrisH

0

Was Sie suchen die Java specification for JMI („Java Metadata Interface“) ist, die implementiert MOF zum Beschreiben von Metadaten und XMI zum Transportieren der Metadaten.

Leider suche ich derzeit nach Implementierungen von JMI selbst und Sonnen JMI Seite scheint ein bisschen veraltet zu sein. Die Open-Source-Implementierung von Netbeans scheint für Version 6 gelöscht worden zu sein.

2

Es hängt von der Version von UML ab, die Sie versuchen, zu lesen. Das gefundene NSUML-Paket funktioniert nur mit UML 1.3. Die NetBeans MetaData Repository (MDR) wird lesen UML 1.4 und UML 1.5. Es kann als eigenständige Bibliothek verwendet werden (das ist, was ArgoUML verwendet), also brauchen Sie keine NetBeans. Für UML 2.x denke ich, dass die Eclipse EMF & UML2-Bibliotheken deine einzige Wahl sind. EMF ist eine Abhängigkeit, aber es ist wirklich das UML2-Zeug, das du willst. Wie bei MDR und NetBeans benötigen Sie Eclipse nicht. ArgoUML verwendet die Eclipse-Bibliotheken für seine UML 2.x-Unterstützung.