Cosa Query/Percorso-la Lingua viene usata per i Riferimenti in Ecore derivati XMI-Istanze?
-
18-09-2019 - |
Domanda
Supponiamo che ho un Ecore-modello contenente un pacchetto e alcune classi che fanno riferimento ad ogni altro.Se creo un "Istanza Dinamica", Eclipse produce un XMI-file e posso creare un'istanza di alcune classi.Il contenimento dei rapporti sono direttamente serializzati in un XML-albero in XMI (il children
elementi nell'esempio).Ma se è possibile creare istanze di riferimenti a elementi che sono già presenti da qualche parte nella struttura, l'Editor scrive Percorso di Espressioni come la seguente, per il currentChild
attributo:
<parent currentChild="//@parent/@children.1">
<children/>
<children/>
</parent>
Per quanto ne so questo non è XPath, perché:
- L' "
childrens
"sono elementi che non sono gli attributi e non hanno a cui fa riferimento, tramite "@
" - XPath utilizza ad esempio,
elem[1]
e nonelem.1
per ottenere ad esempio, la seconda elem di un elenco
Che cos'è e dove posso trovare informazioni su di esso?Ho già provato a navigare in EMF pagine specifiche, ma non riusciva a trovare.
Soluzione
È un EMF Frammento di Percorso.Il Javadoc descrive così:
Stringa org.eclipse.emf.ecore.InternalEObject.eURIFragmentSegment(EStructuralFeature eFeature, EObject eObject) Restituisce il frammento segmento che, quando passò a eObjectForURIFragmentSegment, si risolve per l'oggetto indicato in oggetto determinata funzione.
La caratteristica argomento può essere nullo, nel qual caso verrà detratto, se possibile.Il risultato predefinito sarà della forma:
"@caratteristica-nome[.indice]"
L'indice è utilizzato solo per molti valori di funzionalità;esso rappresenta la posizione nell'elenco.
Parametri:eFeature la funzione inerenti l'oggetto dato a questo oggetto, o null.eObject oggetto da identificare.Restituisce:il frammento segmento che si risolve per l'oggetto indicato in oggetto determinata funzione.