保存模型时EMF悬空引用



我已经用EMF创建了一个模型,我希望能够用编辑器保存我的模型,然后再打开它。举个例子,假设我的模型有3个类:A、B、C和R。R是根父类。C类有一个对a的引用,一个对B的引用。当我编辑我的模型时,一切都很好。但是,如果我想将文件保存到另一个位置,我可以打开它,但如果不收到一条错误消息,告诉我C对象中的引用是悬空引用,我就无法再保存它了。保存时的xml文件如下所示供我参考:

<refToA ="//@CompElement.0/@composit/@parts.0">

我试图在我的ecore文件中将containable设置为true。挂起的引用会消失,但在保存后,如果我触摸B的属性,则更改不会应用于引用,因为现在我有两个B对象。

如何正确地创建引用并保存它?

我的模型有3个类:A、B、C和R

您的元模型有3个EC类/元类A、B、C和R。

R是根父

模型的根元素类型为R。A、B和C是如何包含的?

当我编辑我的模型时,一切都很好。但是如果我想把我的文件保存到另一个位置,我可以打开它,但我不能再保存了

我怀疑简单地将资源保存到某个位置会对您的模型产生重大影响。你是如何编辑它并将其保存到另一个位置的?

我找到了解决方案。在我的XMI文件模型中是这样保存的:

<R>
<C refA... refB...>
<C>
<A><A>
<B><B>
<R>

保存A和B对象后需要放置参考,如下所示:

<R>
<A><A>
<B><B>
<C refA... refB...>
<C>
<R>

最新更新