我在维基百科上关于XMI的文章中找到了这样一句话:
目前不同版本之间存在一些不兼容性
XMI 的建模工具供应商实现,甚至在互换之间
抽象模型数据。
我想知道,尽管使用了记录良好的标准,但工具怎么可能不兼容。在浏览了 UML 和 XMI 的文档以及其他人的问题后,我发现保存为 XMI 的 UML 模型没有 XML 模式或 DTD。
根据这个问题的最佳答案 -https://stackoverflow.com/a/36885550/9329778 https://stackoverflow.com/a/36885550/9329778- 检查 XMI 是否格式良好的正确方法应该是通过一致的 UML 模型来验证/处理它。
我还在 XMI 2.5.1 文档的“7.3.2 模型类表示”部分中找到了这一点:
默认情况下,XMI 允许您使用 XML 序列化功能
元素或 XML 属性;但是,XMI 允许您指定如何
如果您愿意,可以将它们序列化。
在我看来,这似乎是问题的根源。
我的问题是:
有没有官方指南严格描述如何使用XMI保存UML模型?我don't是指UML语法meatamodel(可以从OMG网站下载)。
如果第一个问题的答案是“否”——是否意味着不同的建模工具可以以不同的方式执行同一 UML 模型的序列化,即使它们使用相同版本的 XMI?
- 参考是这个OMG 当前文件 https://www.omg.org/spec/XMI/About-XMI/
- 尽管有一个“标准”,但定义它的人却来自 OMG 旗下的不同供应商。当然,每个供应商都试图让他的羊保持干燥和温暖(如果可能的话,很可能让其他人的羊在雨中 - 好吧)。这只会导致一个对任何人开放的标准。虽然 OMG(“试图”控制此类标准)允许添加供应商单独的扩展,但每个供应商都利用了这个附录来为自己谋利。这就是我们在不同论坛中看到的:为什么我不能将我的模型(完全/完全)从供应商 A 的工具导入到供应商 B 的工具中。这是一个十字架。
注意:关于 1:否。您不能使用此文档并从模型创建 XMI。不是这样写的。我所做的是创建一个简单的模型,将其导出(从我最喜欢的工具)并查看创建的内容。然后我尝试将其导入另一个工具(查找失败的地方)。或者甚至在同一个工具中导出和导入以查找丢失的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)