2010-02-20 22 views
13

Potrzebuję czytać diagramy UML, które są serializowane do XMI. Czy jest jakaś biblioteka, która pozwoliłaby mi wygodnie czytać UMI XMI - wygodnie mam na myśli posiadanie pewnych metod do iteracji nad klasami/pakietami/metodami/atrybutami itp. W modelu.Jak odczytać XMI?

Próbowałem EMF, ale nie jestem w stanie znaleźć żadnego samouczek, który pokazuje, jak zaimportować XMI zawierający UML. Znalazłem także NSUML/NSMDF, ale link do dokumentacji jest zepsuty.

Odpowiedz

4

Nie sądzę, co chcesz istnieje. Wszystkie narzędzia importujące XMI, które znam (w tym moja usługa transformacji XMI: http://modeling-languages.com/content/xmi2-tool-exchanging-uml-models-among-case-tools) działają poprzez analizowanie całego pliku XMI i tworzenie odpowiedniego modelu UML w pamięci głównej. Następnie możesz uzyskać dostęp do elementów UML, wysyłając zapytanie do modelu.

iteracyjne modelu XMI można łatwo korzystać z bibliotek XML, aby wybrać kawałki pliku XMI jesteś zainteresowany.

1

ArgoUML może zaimportować XMI do swojego modelu UML i wygenerować kod dla Javy, C++, C#, PHP4 i PHP5.

0

W celu odczytania XMI/UML za pomocą EMF, trzeba będzie znaleźć, generować lub napisać modelu ecore dla UML. Kiedy już to zrobisz, możesz wygenerować klasy w pamięci do manipulowania UML i wykorzystać inną infrastrukturę EMF.

Ale prostsza droga może być do korzystania z infrastruktury UML2 opracowane przez Eclipse MDT project. (Domyślam się, że używa EMF pod maską i że nie jest modelem ecore dla UML2 gdzieś tam).

+0

Masz rację, że projekt UML2 zbudowany jest na górze pola elektromagnetycznego. – ChrisH

0

Co szukasz jest Java specification for JMI („Java Metadane Interface”), który wdraża MOF do opisywania metadanych i XMI do transportu metadanych.

Niestety jestem obecnie poszukuje implementacjach JMI ja i stronę słońca JMI wydaje się być nieco nieaktualne. Wydaje się, że implementacja open source przez netbeans została odrzucona dla wersji 6.

2

To zależy od wersji UML, którą próbujesz przeczytać. Pakiet NSUML, który znalazłeś, działa tylko z UML 1.3. NetBeans MetaData Repository (MDR) odczyta uchwyt UML 1.4 i UML 1.5. Może być używany jako samodzielna biblioteka (to właśnie wykorzystuje ArgoUML), więc nie potrzebujesz NetBeans. Dla UML 2.x, myślę, że biblioteki Eclipse EMF & UML2 są twoim jedynym wyborem. EMF to zależność, ale tak naprawdę to rzeczy UML2, które chcesz. Podobnie jak w przypadku MDR i NetBeans, nie potrzebujesz Eclipse. ArgoUML korzysta z bibliotek Eclipse do obsługi UML 2.x.