我从不同的UML建模工具(Visual Paradigm,PowerDesigner等)获得了一些XMI文件。每个文件代表一个简单的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规范之前使用了这些标记。
答案 0 :(得分:2)
我花了一些时间来弄明白,但是packageElement是用UML定义的。所以在OMG UML Spec v2.4.1提供的xmi实际上定义了自己(所有使用的标签都在那里定义! - ownedAttribute,ownedComment,packagedElement,.....)
我刚刚离开这里以防万一其他人想知道它。
答案 1 :(得分:-1)
xmi:id是UML元素的动态创建。与java一样,每个UML元素都有一个id,在所有建模阶段都应该保持不变。 如果您阅读来自EclipseUML2元模型的xmi,您可以找到更多信息。该模型是官方的OMG UML 2.3,并被许多工具使用。
不要忘记一个好的UML工具应该有两个文件。一个是图形化的,不能被任何其他工具共享,另一个是模型,应该是xmi 2.1格式。