1

メソッドで奇妙な動作を観察していEcoreUtil.equalsます。createResourceリソースのメソッドとメソッドを使用して、2 つの異なる場所 (2 つの場所に同じファイルがあります) からまったく同じ 2 つの XML ファイルを読み込んでいますload

ECoreUtil.equalsこれら 2 に対して false を返しますEObjects。コードをデバッグすると、とEcoreUtil.equalsの == チェックが原因で失敗することがわかります。クラスと構造的特徴は同じですが、 と の 2 つの別個のインスタンスが見られることに注意してください。機能とクラスに対して == チェックを行うため、失敗します。EClassEStructuralFeatureEClassEStructuralFeatureEcoreUtil.equals

私が理解できないのは、なぜ と に対して 2 つのインスタンスが作成されるのかということEClassですEStructuralFeature。2 つの XML ファイルに違いはないと確信しています。一方は他方のコピーです。

その理由となる可能性のあるecoreモデルの設定はありますか? 私の XML ファイルにはxmi:id属性があります。

私はこの振る舞いに困惑しています。誰でもポインタを与えることができますか?

よろしく、 アラティ

4

1 に答える 1

1

eclipse.tools.emf フォーラムで EMF について質問することをお勧めします。

あなたの質問には、複数の EPackage が存在する理由についてのヒントを与えるものは何もありません。動的 Ecore モデルを使用するインスタンス ファイルがあることを示唆しているようです。そうですか?この場合でも、同じリソース セットにリソースを読み込むと、それらは 1 つのモデルを共有することになります。

于 2012-11-01T11:23:44.730 に答える