Que Consulta / Caminho-Language é usada para referências em Ecore derivados XMI-Instâncias?
-
18-09-2019 - |
Pergunta
Suponha que eu tenho um-modelo Ecore contendo um pacote e algumas classes que fazem referência um ao outro. Se eu criar uma "Instância dinâmico", Eclipse produz um arquivo XMI e posso instanciar algumas classes. Contenção-relações estão diretamente serializado para um XML-árvore na XMI (os elementos children
no exemplo). Mas se eu instanciar referências a elementos que já estão contidos em algum lugar na árvore, o Editor escreve Path-Expressões como no seguinte, para o atributo currentChild
:
<parent currentChild="//@parent/@children.1">
<children/>
<children/>
</parent>
Tanto quanto eu sei que isto não é XPath, porque:
- O "
childrens
" são elementos não atributos e não tem que ser referenciado via "@
" - XPath usa o exemplo,
elem[1]
e nãoelem.1
para obter, por exemplo, o segundo elem de uma lista ??li>
O que é e onde posso encontrar informações sobre ele? Eu já tentei procurar os EMF páginas / especificações, mas não conseguiu encontrá-lo.
Solução
É um caminho EMF Fragmento. O Javadoc descreve-o assim:
Cordas org.eclipse.emf.ecore.InternalEObject.eURIFragmentSegment (EStructuralFeature eFeature, EObject EObject) Retorna o segmento fragmento que, quando passou para eObjectForURIFragmentSegment, vai resolver para o objeto dado em determinado recurso deste objeto.
O argumento recurso pode ser nulo, caso em que será deduzida, se possível. O resultado padrão será da forma:
"@ feature-name [.index]"
O índice é usado apenas para muitos valorizados recursos; ele representa a posição dentro da lista.
Parâmetros: eFeature o recurso relativo ao objeto dado a este objeto, ou null. EObject o objecto a ser identificado. retorna: o segmento fragmento que resolve para o objeto dado neste objeto é característica dada.