【问题标题】:ATL Metamodel contains several classifiers with same name errorATL 元模型包含多个具有同名错误的分类器
【发布时间】:2015-07-11 18:15:40
【问题描述】:

我有一个小型 ATL 程序将 BPMN2.0 转换为另一个模型:

-- @nsURI MM1=http://www.my.site/path/to/my/MM1
-- @nsURI BPMN20=http://www.omg.org/spec/BPMN/20100524/MODEL-XMI
-- @path reo=/BPMN20reo/reo.ecore
rule definition2module {
    from
        b: BPMN20!Definitions
    to
        m: reo!Connector(name<-b.name)
}

模块测试; 创建 OUT: reo from IN: BPMN20;

代码生成以下错误。我相信这与加载/查找 BPMN 2 模型有关。我也尝试使用 BPMN 2 文件地址,但仍然出现以下错误:

元模型包含多个同名分类器:DocumentRoot 元模型包含几个具有相同名称的分类器:DocumentRoot 元模型包含多个具有相同名称的分类器:di::DocumentRoot 元模型包含多个同名分类器:DocumentRoot

这是我的代码https://github.com/behnaaz/BPMN2ATL

【问题讨论】:

  • 生成的输出也是空的:omg.org/XMI">
  • 你知道“di::DocumentRoot”中的“di”是什么吗?
  • Zelus:这是我之前提到的 bpmndi 的一个示例,用于图表信息
  • 您是否验证了 ecore 元模型?
  • 我已经下载了代码并尝试执行转换。我发现模型 newDiagram_1.bpmn 不符合元模型 BPMN20,例如元模型中的根元素(定义)被定义为定义,ATL 可以运行转换。解决上一个错误后,我发现你的模型中的定义元模型包含元模型中的定义元素不包含的属性过程。

标签: java bpmn emf ecore


【解决方案1】:

问题是什么是元模型精神分裂症 - 为一个目的加载两个模型。 似乎注册了不止一个 BPMN 2 类。

我从 Eclipse 中卸载了所有与 BPMN 2 相关的插件,因此项目中唯一的元模型是我自己的元模型。

【讨论】:

  • 我还怀疑,因为 BPMN2 依赖于其他三个 ecore,所以它有点奇怪。有什么想法吗?
  • 此外,并非所有 BPMN2 都提供 ATL 可以很好地读取的 XMI 文件。似乎 ATL 无法在没有任何错误或警告的情况下读取它们。
猜你喜欢
  • 2019-03-26
  • 2017-09-09
  • 2020-06-28
  • 2021-08-24
  • 1970-01-01
  • 2011-05-06
  • 2013-05-29
  • 1970-01-01
  • 2018-12-21
相关资源
最近更新 更多