我遵循了有关以下链接的教程,以使用Java以编程方式操作UML2模型: https://wiki.eclipse.org/MDT/UML2/Getting_Started_with_UML2
当我从文件中加载模型并将其保存到其他文件后,我注意到了一些奇怪的事情,当序列化UML2模型时,某些元素的属性会丢失。
示例类图模型是使用Eclipse中的Papyrus创建的,并序列化为.uml文件。 此文件稍后在测试应用程序中使用。
在Papyrus的原始模型中,类元素如下所示:
<packagedElement xmi:type="uml:Class" xmi:id="_iRwpwA3-Eeq8vsMApmmqsA" name="Person">
<ownedAttribute xmi:type="uml:Property" xmi:id="_oc5WUA3-Eeq8vsMApmmqsA" name="Id" type="Integer"/>
</packagedElement>
在保存的模型中,相同的类元素:
<packagedElement xmi:type="uml:Class" xmi:id="_iRwpwA3-Eeq8vsMApmmqsA" name="Person">
<ownedAttribute xmi:id="_oc5WUA3-Eeq8vsMApmmqsA" name="Id" type="Integer"/>
</packagedElement>
缺少属性是ownerAttribute元素中的xmi:type。
在发布此问题之前,我已经进行了研究,但是没有一种解决方案适合我。
我的保存功能包含调用:
UMLResourcesUtil.init(resourceSet);
希望那里有人可以帮助我解决这个问题。