我在维基百科上的XMI文章中找到了这句话:
目前不同之间存在着几种不兼容性 XMI的建模工具供应商实现,甚至在交换之间 抽象模型数据。
我想知道尽管使用了一个记录良好的标准,但工具是不兼容的。在查看了UML和XMI的文档以及其他人的问题之后,我发现没有XML Scheama或DTD用于保存为XMI的UML模型。
根据这个问题的最佳答案 - https://stackoverflow.com/a/36885550/9329778 - 检查XMI是否格式正确的正确方法应该是通过一致的UML模型来验证/处理它。
我在XMI 2.5.1文档的“7.3.2模型类表示”一节中也发现了这一点:
默认情况下,XMI允许您使用XML序列化功能 元素或XML属性;但是,XMI允许您指定如何操作 如果你愿意,可以序列化它们。
这让我觉得这就是问题的根源。
我的问题是:
是否有官方指南严格描述如何使用XMI保存UML模型?我不表示UML语法meatamodel(可以从OMG网站下载)。
如果第一个问题的答案是“否” - 是否意味着不同的建模工具可以不同地执行相同UML模型的序列化,即使它们使用相同版本的XMI?
答案 0 :(得分:2)
注意:关于1:否。您无法获取此文档并从模型创建XMI。它不是那样写的。我所做的是创建一个简单的模型,导出它(从我最喜欢的工具),看看已经创建了什么。然后我尝试将其导入另一个工具(找到它失败的地方)。甚至可以在同一工具中导出和导入,以查找之后遗漏的内容。