【问题标题】:Generating the separate ecore files for the sub-Epackes present in the existing model为现有模型中存在的子 Epack 生成单独的 ecore 文件
【发布时间】:2016-10-29 00:03:46
【问题描述】:

问题:我有一个包含 sub-E 包的 ecore 文件。使用这个模型,我正在尝试使用 Sirius 创建 GUI 部分。但是 Sirius 的问题是它不支持包含 sub-E Packages 的 ecore 文件。所以我们必须提取那些子 E 包来分离 ecore 文件。但是每个 sub-E Packages 都与其他 sub-E Packages 有关系。那么我们如何才能将这些子E包提取到单独的ecore文件中,使得提取它们之后单独的ecore文件之间仍然存在关系。

谢谢

【问题讨论】:

    标签: eclipse eclipse-plugin emf eclipse-emf-ecore eclipse-sirius


    【解决方案1】:

    在 eclipse ecore 编辑器中,您可以使用弹出菜单中的“加载资源”来加载任何 ecore 文件并从中使用对象。

    【讨论】:

      【解决方案2】:

      不幸的是,通过提取它们,ecore 编辑器将丢失信息,这意味着一些额外的工作...... 我对天狼星和子电子包有同样的问题,导致天狼星不断地破坏图表。 这是我解决提取子电子包的方法:

      1. 首先为所需的子包创建一个新的 .ecore 文件。
      2. 使用示例打开两个 .ecore 文件(您的主文件和新文件) ecore 模型编辑器(树视图)。
      3. 将包属性复制到新的 epackage 节点(ns、前缀、 uri) 您需要手动执行此操作。
      4. 然后拖放你的全部内容(不包括紫色包 node) 从您的子包到新的 Epackage
      5. 保存并确保新文件中没有错误发生。
      6. 通过单击“加载”将新的 .ecore 文件加载到主文件中 资源” 现在你的主文件知道你的子包中有两种 EClass,它们的名字是相同的,但它们的 uri 是 不同。

      您现在可以简单地将所有出现的子 epackage-eclass 替换为更新的或更智能、更安全的类

      1. 一次性替换一个 etype(实际使用根包中的 etype)
      2. 以文本形式打开您的主 .ecore 文件,您将看到 etype 值为 all 有一个像eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject" 这样的路径然后你需要知道你的 etype 路径(来自你的子 epackage 和你的新的)有什么不同,这样你就可以简单地替换它们和你的好。
      3. 最后删除子epackage

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2020-07-19
        • 1970-01-01
        • 2018-09-16
        • 2013-04-28
        • 1970-01-01
        • 1970-01-01
        • 2019-07-14
        • 2019-06-18
        • 1970-01-01
        相关资源
        最近更新 更多