问题:我有一个ecore文件,其中包含sub-E包。使用这个模型,我试图使用Sirius创建GUI部分。但是Sirius的问题是它不支持包含sub-E包的ecore文件。因此,我们必须提取这些sub-E包来分离ecore文件。但是每个sub-E包都与其他sub-E包有关系。那么,我们如何提取这些sub-E包来分离ecore文件,以便在提取它们之后,单独的ecore文件之间仍然存在关系。
感谢
通过提取它们,ecore编辑器将丢失信息,这意味着一些额外的工作。。。我对天狼星和子电子包也有同样的问题,导致天狼星不断破坏图表。以下是我如何解决提取子包装的问题:
- 首先为所需的子包创建一个新的.ecore文件
- 使用Sample打开两个.ecore文件(主文件和新文件(ecore模型编辑器(树视图(
- 将Package属性复制到新的epackage节点(ns、praefix、,uri(,您需要手动执行此操作
- 然后拖放您的全部内容(不包括紫色包裹节点(添加到新的Epackage中
- 保存并确保新文件中没有出现错误
- 通过单击"加载"将新的.ecore文件加载到主文件中resource"现在您的主文件知道了您的子包中有两种EClass,它们的名称是相同的,但它们的uri是不同
你现在可以简单地用更新的或更智能、更安全的替换所有出现的子包装eclasses
- 替换一次etype(在根包中实际使用etype的地方(
- 以文本形式打开主.ecore文件,您会看到etype值all有一个像
eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"
这样的路径。然后你需要知道你的etype路径(从你的子包和新的(有什么不同,这样你就可以简单地替换它们和你的好 - 最终删除子包装
希望这能帮助
在eclipse ecore编辑器中,您可以使用弹出菜单中的"加载资源"来加载任何ecore文件并使用其中的对象。