Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

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

Это зависит от версии 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.

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

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

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

То, что вы ищете, - это Спецификация Java для JMI (“Интерфейс метаданных Java”), который реализует MOF для описания метаданных и XMI для транспортировки метаданных.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top