Как читать XMI? - PullRequest
       35

Как читать XMI?

14 голосов
/ 21 февраля 2010

Мне нужно прочитать диаграммы UML, которые сериализованы в XMI. Есть ли какая-нибудь библиотека, которая позволила бы мне удобно читать UML XMI - я имею в виду наличие некоторых методов для итерации по классам / пакетам / методам / аттрибутам и т. Д. В модели.

Я пробовал EMF, но мне не удалось найти учебник, который бы показывал, как импортировать XMI, содержащий UML. Я также нашел NSUML / NSMDF , но ссылка на документацию не работает.

Ответы [ 6 ]

4 голосов
/ 25 февраля 2010

Я не думаю, что то, что вы хотите, существует. Все известные мне инструменты импортирования XMI (включая мой сервис преобразования XMI: http://modeling -languages.com / content / xmi2-tool-exchangeing-uml-models-среди-case-tools ) работают путем анализа весь файл XMI и создание соответствующей модели UML в основной памяти. Затем вы можете получить доступ к элементам UML, запросив модель.

Чтобы выполнить итерацию по модели XMI, вы можете легко использовать библиотеки XML для выбора частей интересующего вас файла XMI.

3 голосов
/ 21 февраля 2010

Может быть, просто взгляните на Преобразование XMI в HTML . Это должно помочь вам начать работу с XSLT и XMI.

2 голосов
/ 14 октября 2010

Это зависит от версии UML, которую вы пытаетесь прочитать. Найденный вами пакет NSUML работает только с UML 1.3. Репозиторий метаданных NetBeans (MDR) будет считывать дескриптор UML 1.4 и UML 1.5. Его можно использовать как автономную библиотеку (это то, что использует ArgoUML), поэтому вам не нужны NetBeans. Я думаю, что для UML 2.x библиотеки Eclipse EMF и UML2 - ваш единственный выбор. EMF - это зависимость, но это действительно то, что вам нужно в UML2. Как и в случае с MDR и NetBeans, вам не нужен Eclipse. ArgoUML использует библиотеки Eclipse для поддержки UML 2.x.

1 голос
/ 21 февраля 2010

Чтобы читать XMI / UML с использованием EMF, вам нужно будет найти, сгенерировать или написать модель ECore для UML. Если у вас есть один из них, вы можете сгенерировать классы в памяти для манипулирования UML и использовать другую инфраструктуру EMF.

Но более простым путем может быть использование инфраструктуры UML2, разработанной проектом Eclipse MDT . (Я предполагаю, что он использует EMF под капотом и что где-то есть модель ECore для UML2.)

1 голос
/ 21 февраля 2010

ArgoUML может импортировать XMI в свою модель UML и генерировать код для Java, C ++, C #, PHP4 и PHP5.

0 голосов
/ 07 октября 2010

Что вам нужно, так это Java-спецификация для JMI («Интерфейс метаданных Java»), которая реализует MOF для описания метаданных и XMI для передачи метаданных.

К сожалению, яв настоящее время поиск реализации JMI сам и солнц JMI страница, кажется, немного устарела.Похоже, что реализация netbeans с открытым исходным кодом была отброшена для версии 6.

...