假设我有一个包含一个包的Ecore模型和一些相互引用的类。如果我创建一个“动态实例”,Eclipse会生成一个XMI文件,我可以实例化一些类。包含关系直接序列化为XMI中的XML树(示例中的children
元素)。但是,如果我实例化对已经包含在树中某处的元素的引用,则编辑器会为currentChild
属性编写如下所示的Path-Expressions:
<parent currentChild="//@parent/@children.1">
<children/>
<children/>
</parent>
据我所知,这不是XPath,因为:
childrens
”是元素而非属性,不得通过“@
”elem[1]
而非elem.1
来获取例如列表的第二个元素它是什么,我在哪里可以找到它的信息?我已经尝试浏览EMF页面/规格但找不到它。
答案 0 :(得分:1)
这是一个EMF片段路径。 Javadoc描述如下:
String org.eclipse.emf.ecore.InternalEObject.eURIFragmentSegment(EStructuralFeature eFeature,EObject eObject) 返回片段段,当传递给eObjectForURIFragmentSegment时,将解析为此对象的给定特征中的给定对象。
feature参数可以为null,在这种情况下,如果可能的话,它将被推导出来。默认结果的格式为:
“@特征名[的.index]”
索引仅用于多值特征;它代表列表中的位置。
参数: eFeFeature将给定对象与此对象相关的功能,或null。 eObject要识别的对象。 返回: 片段段,解析为此对象的给定特征中的给定对象。