将 UML 模型保存为 XMI 歧义

Saving UML model as XMI ambiguity

我在维基百科上关于 XMI 的文章中找到了这句话:

At the moment there are several incompatibilities between different modeling tool vendor implementations of XMI, even between interchange of abstract model data.

我想知道尽管使用了一个有据可查的标准,但工具不兼容怎么可能。在查看了 UML 和 XMI 的文档以及其他人的问题后,我发现没有 XML 保存为 XMI 的 UML 模型的模式或 DTD。

根据这个问题的最佳答案 - - 检查 XMI 是否格式正确的正确方法应该是 validate/process 通过一致的 UML 模型。

我还在“7.3.2 模型 Class 表示”部分的 XMI 2.5.1 文档中找到了这个:

By default, XMI allows you to serialize features using either XML elements or XML attributes; however, XMI allows you to specify how to serialize them if you wish.

在我看来,这是问题的根源。

我的问题是:

  1. 是否有官方指南严格描述如何使用XMI保存UML模型?我指的是UML语法meatamodel(可以从OMG网站下载)。

  2. 如果第一个问题的答案是"no" - 这是否意味着不同的建模工具可以不同地执行相同 UML 模型的序列化,即使它们使用相同版本的 XMI?

  1. 参考是这个current document by OMG
  2. 虽然有一个 "standard" 定义它的人来自 OMG 帽子下的不同供应商。当然,每个供应商都试图让他的羊保持干燥和温暖(如果可能的话,很可能会把其他人的羊放在雨中——好吧)。这只会导致一个对任何人开放的标准。虽然 OMG("trying" 放弃此类标准)允许添加供应商个人扩展通过,但每个供应商都利用并使用此附录为自己谋利。这就是我们在不同论坛中看到的:为什么我不能将我的模型(completely/at 全部)从供应商 A 的工具导入供应商 B 的工具。这是一个十字架。

注意:关于 1:否。您不能使用此文档并从模型创建 XMI。不是这样写的。我所做的是创建一个简单的模型,将其导出(从我最喜欢的工具)并查看创建的内容。然后我尝试将其导入另一个工具(找到它失败的地方)。或者甚至在同一个工具中导出和导入以查找之后丢失的内容。