Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse emf ecore 当比较通过从不同位置加载相同资源创建的两个EOObject时,EcoreUtil.equals返回false_Eclipse Emf Ecore - Fatal编程技术网

Eclipse emf ecore 当比较通过从不同位置加载相同资源创建的两个EOObject时,EcoreUtil.equals返回false

Eclipse emf ecore 当比较通过从不同位置加载相同资源创建的两个EOObject时,EcoreUtil.equals返回false,eclipse-emf-ecore,Eclipse Emf Ecore,我用EcoreUtil.equals方法观察到一种奇怪的行为。我使用Resource的createResource和load方法从两个不同的位置加载了两个完全相同的XML文件(我在两个位置有相同的文件) ECoreUtil.equals为这两个e对象返回false。当我调试EcoreUtil.equals代码时,我看到它失败了,因为==检查EClass和EStructuralFeature。请注意,类和结构特征是相同的,但是,可以看到EClass和eststructuralfeature的两个独

我用
EcoreUtil.equals
方法观察到一种奇怪的行为。我使用Resource的
createResource
load
方法从两个不同的位置加载了两个完全相同的XML文件(我在两个位置有相同的文件)

ECoreUtil.equals
为这两个
e对象返回false
。当我调试
EcoreUtil.equals
代码时,我看到它失败了,因为==检查
EClass
EStructuralFeature
。请注意,类和结构特征是相同的,但是,可以看到
EClass
eststructuralfeature
的两个独立实例
EcoreUtil.equals
对特性和类执行==检查,因此失败

我无法理解的是,为什么会为
EClass
EStructuralFeature
创建两个实例。我确信这两个XML文件没有区别。一个是另一个的副本

ecore模型中是否存在任何可能是原因的设置?我的XML文件中有
xmi:id
属性

我被这种行为难住了。有人能给点建议吗

问候,,
Arati

最好在eclipse.tools.EMF论坛上询问EMF


你的问题中没有任何东西可以暗示为什么会有多个EPackage。这似乎表明您有一个使用动态Ecore模型的实例文件。是这样吗?即使在这种情况下,如果您在同一个资源集中加载资源,它们最终也应该共享一个模型。

最好在eclipse.tools.EMF论坛上询问EMF


你的问题中没有任何东西可以暗示为什么会有多个EPackage。这似乎表明您有一个使用动态Ecore模型的实例文件。是这样吗?即使在这种情况下,如果您在同一个资源集中加载资源,它们最终也应该共享一个模型。

Hi-Ed-感谢您的回复。我已经在eclipse论坛上发表了文章,但这是一个受限制的列表。我尝试使用相同的资源集加载资源,但没有帮助。实际上,XML代码片段被映射到AnyTypeImpl(因为我的XML文件可以包含我无法控制的不同类型的对象,所以它是可扩展的)。因此,我没有可用的EPackage到URI映射。因此,我最终比较了两个AnyTypeImpl对象,它们内部有FeatureMaps。我总是会收到两个不同的电子课堂、功能地图或EstrestructuralFeature实例。嗨,Ed,谢谢你的回复。我已经在eclipse论坛上发表了文章,但这是一个受限制的列表。我尝试使用相同的资源集加载资源,但没有帮助。实际上,XML代码片段被映射到AnyTypeImpl(因为我的XML文件可以包含我无法控制的不同类型的对象,所以它是可扩展的)。因此,我没有可用的EPackage到URI映射。因此,我最终比较了两个AnyTypeImpl对象,它们内部有FeatureMaps。我总是会得到两个不同的EClass或FeatureMap或EsstructuralFeature实例。