【发布时间】:2012-05-30 04:29:56
【问题描述】:
如下图:(表示黑色菱形,指UML中的组合)
+---+ 0..1 * +---+
| A |<>--------| B |
+---+ +---+
我有 A 类和 B 类。存在从 A 到 B 的包含引用,且多重性未绑定。对面引用的重数为 0..1。
我的问题是:这种相反的多重性是不是错误/不可能?!因为在 Ecore 中,包含引用指定 B 只有作为 A 才能存在。因此从 B 到 A 的多重性始终为 1,不是吗?!
0..1 表示 B 的实例可以有 A 也可以没有。
更新:我的任务是将以下 UML 图转换为 Ecore
+---+ 0..1 * +---+ * 1 +---+
| A |<>--------| B |--------<>| C |
+---+ +---+ +---+
我不确定如何将 UML 组合映射到 Ecore
- 从 A 到 B 的遏制参考,上限:-1
- A 的对向引用 B,下限 0,上限 1
- 从 C 到 B 的包含引用,上限:-1
- 相对于 B 到 C 的引用,下限 = 上限 = 1
我说的对吗?!
【问题讨论】:
标签: eclipse eclipse-emf