Теги в представлении UML XMI

У меня есть несколько файлов XMI из разных инструментов моделирования UML (Visual Paradigm, PowerDesigner и т. д.). Каждый файл представляет собой простую диаграмму UML, где класс B просто расширяет класс A.

В среднем каждый файл содержит такой код:

<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xmi:id="_kkgsMBeLEd60N8ipLbB6nA" name="ObjectOrientedModel_4">

    <packagedElement xmi:type="uml:Class" xmi:id="_-0_24HdHEeCkkOWu36zbRw" name="A"/>

    <packagedElement xmi:type="uml:Class" xmi:id="_--YcYHdHEeCkkOWu36zbRw" name="B">
        <generalization xmi:id="_-_blQHdHEeCkkOWu36zbRw" general="_-0_24HdHEeCkkOWu36zbRw"/>  
    </packagedElement>

</uml:Model>

Я понимаю, где описаны uml:smth и xmi:smth, но не могу понять, откуда взяты теги типа packageElement и другие.

Я не нашел никакой информации в спецификациях OMG до того, как они достигли этой: http://www.omg.org/spec/XMI/2.4/Beta2/, но эти теги использовались до создания спецификации XMI 2.4.


person Alexey    schedule 05.05.2011    source источник


Ответы (2)


Мне также потребовалось некоторое время, чтобы понять это, но packagedElement определен в UML. Таким образом, xmi, указанный в OMG UML Spec v2.4.1, фактически определяет сам себя ( там определены все используемые теги! -- ownedAttribute, ownedComment, packagedElement, .....)

Я просто оставлю это здесь на случай, если кто-то еще заинтересуется этим.

person Fabian    schedule 24.04.2013
comment
Там нет xsd, который бы его определял, поэтому вы имеете в виду, что только потому, что он находится в UML.xmi, он «определен на месте»? - person GilesDMiddleton; 16.04.2015
comment
Я сам столкнулся с этим, и это просто не похоже на действительный XML, у этих тегов нет явного пространства имен, и в документе нет пространства имен по умолчанию... - person Pawel Veselov; 12.07.2020

xmi:id — это динамическое создание элемента UML. Как и в Java, каждый элемент UML имеет один идентификатор, который должен оставаться неизменным на всех этапах моделирования. Вы можете найти больше информации, если прочитаете xmi из метамодели EclipseUML2. Эта модель является официальной OMG UML 2.3 и используется многими инструментами.

Не забывайте, что хороший инструмент UML должен иметь два файла. Один является графическим и не может использоваться никаким другим инструментом, а другой является моделью и должен быть в формате xmi 2.1.

person Community    schedule 06.05.2011
comment
Ой! Произошла небольшая ошибка, потому что я написал ‹ packageElement › вместе и не обнаружил, что он был проанализирован как тег и исчез. Исправлено. - person Alexey; 07.05.2011