0

假设我有一个包含一个包和一些相互引用的类的 Ecore 模型。如果我创建一个“动态实例”,Eclipse 会生成一个 XMI 文件,我可以实例化一些类。包含关系直接序列化为 XMI 中的 XML 树(children示例中的元素)。但是,如果我实例化对树中某处已包含的元素的引用,编辑器会为currentChild属性编写如下所示的路径表达式:

<parent currentChild="//@parent/@children.1">
  <children/>
  <children/>
</parent>

据我所知,这不是 XPath,因为:

  1. childrens”是元素而不是属性,不必通过“ @”引用
  2. XPath 使用例如,elem[1]而不是elem.1获取例如,列表的第二个元素

它是什么,我在哪里可以找到有关它的信息?我已经尝试浏览 EMF 页面/规格,但找不到。

4

1 回答 1

1

这是一个 EMF 片段路径。Javadoc 是这样描述的:

String org.eclipse.emf.ecore.InternalEObject.eURIFragmentSegment(EStructuralFeature eFeature, EObject eObject) 返回片段段,当传递给 eObjectForURIFragmentSegment 时,将解析为该对象的给定特征中的给定对象。

如果可能的话,特征参数可能是空的,在这种情况下它会被推导出来。默认结果将采用以下形式:

“@功能名称[.index]”

该索引仅用于多值特征;它代表列表中的位置。

参数:eFeature 将给定对象与此对象相关联的特征,或 null。eObject 要识别的对象。返回: 在此对象的给定特征中解析为给定对象的片段段。

于 2009-09-30T13:36:57.580 回答