3

我从不同的 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 规范之前使用了该标签。

4

2 回答 2

3

我也花了一些时间才弄清楚,但是 packagedElement 是在 UML 中定义的。所以OMG UML Spec v2.4.1提供的 xmi实际上定义了自己(所有使用的标签都在那里定义!--ownedAttribute,ownedComment,packagedElement,......)

我只是把它留在这里,以防其他人对此感到疑惑。

于 2013-04-24T13:33:46.667 回答
-1

xmi:id 是 UML 元素的动态创建。与 java 一样,每个 UML 元素都有一个 id,该 id 在所有建模阶段都应该保持不变。如果您阅读来自 EclipseUML2 元模型的 xmi,您可以找到更多信息。这个模型是官方的 OMG UML 2.3 并且被许多工具使用。

不要忘记一个好的 UML 工具应该有两个文件。一个是图形的,不能被任何其他工具共享,另一个是模型,应该是 xmi 2.1 格式。

于 2011-05-06T08:34:46.680 回答