0

私はEMFに関する非常に基本的な問題で立ち往生しています、これが私が持っているものです。

EClass A:
  aID : EInteger (Key: true)

EClass B:
  bID : EInteger (Key: true)

EClass C: 
  Reference refA: to elements of A, containment: true, EKeys: aID, 0 .. n 
  Reference refB: to elements of B, containment: true, EKeys: bID, 0 .. n 

ここに問題があります。私のaリストとbリストの両方で、0からnまでのIDが必要です。ただし、これを行うと、次のメッセージが表示されます。

The ID '1' of 'A' collides with that of 'B'

私の問題が明確に説明されていることを願っています。誰かが私が間違っていることを知っていますか?ありがとう!

4

2 に答える 2

1

「ID」として設定される EAttribute は、リソース全体で一意である必要があります。myReference[name="SomeName"] 構造を使用して要素を参照する場合は、eKeys を使用する必要があります。その場合、eKeyed 属性は参照内で一意の値を持つ必要があります。

「aID」と「bID」を「ID」と定義した印象を受けましたが、それはあなたが本当に望んでいるものではありません.

于 2012-06-03T07:11:47.987 に答える
0

これは、オブジェクト指向階層を使用して解決できます。id 属性を含む共通の抽象クラスから A と B を拡張するだけで、emf プロパティで ID として設定されます。

よろしく

于 2011-11-04T14:38:18.897 に答える