2009-09-29 14 views
0

Supposons que j'ai un modèle Ecore contenant un paquet et quelques classes faisant référence les unes aux autres. Si je crée une "instance dynamique", Eclipse produit un fichier XMI et je peux instancier certaines classes. Les relations de confinement sont directement sérialisées dans un arbre XML dans le XMI (les éléments children dans l'exemple). Mais si j'instancier références à des éléments qui sont déjà contenus quelque part dans l'arbre, l'éditeur écrit Chemin-expressions comme dans ce qui suit, pour l'attribut currentChild:Quelle requête/path-language est utilisée pour les références dans les instances XMI dérivées d'Ecore?

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

Pour autant que je sais que ce n'est pas XPath, parce que :

  1. le « childrens » sont des éléments non attributs et ne sont pas à être référencés via « @ »
  2. XPath utilise l'exemple, et non elem[1]elem.1 pour obtenir par exemple, la deuxième élém une liste

De quoi s'agit-il et où puis-je trouver des informations? J'ai déjà essayé de parcourir les pages EMF/specs mais je n'ai pas pu le trouver.

Répondre

1

C'est un chemin de fragmentation EMF. Le Javadoc décrit comme ceci:

Chaîne org.eclipse.emf.ecore.InternalEObject.eURIFragmentSegment (EStructuralFeature eFeature, EObject EObject) Retourne le segment de fragment qui, lorsqu'il est passé à eObjectForURIFragmentSegment, résoudra à l'objet donné dans ce caractéristique donnée de l'objet.

L'argument feature peut être nul, auquel cas il sera déduit, si possible. Le résultat par défaut sera de la forme:

"@ feature-name [.index]"

L'indice est utilisé uniquement pour de nombreuses caractéristiques valorisées; il représente la position dans la liste.

Paramètres: eFonctionnalité de l'objet associé à cet objet, ou null. eObjecter l'objet à identifier. Renvoie: le segment de fragment qui se résout à l'objet donné dans la fonction donnée de cet objet.

+0

Merci! Cela aide beaucoup. – Juve

+0

Voici un lien vers une Javadoc connexe: http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.emf.doc/references/javadoc/org/eclipse/emf/ecore/ impl/EModelElementImpl.html Rechercher: eURIFragmentSegment – Juve