Какой язык запросов / путей используется для ссылок в XMI-экземплярах, производных от Ecore?
-
18-09-2019 - |
Вопрос
Предположим, что у меня есть Ecore-модель, содержащая пакет и несколько классов, которые ссылаются друг на друга.Если я создам "Динамический экземпляр", Eclipse создаст XMI-файл, и я смогу создать экземпляр некоторых классов.Отношения сдерживания напрямую сериализуются в XML-дерево в XMI (the children
элементы в примере).Но если я создаю экземпляры ссылок на элементы, которые уже содержатся где-то в дереве, редактор записывает выражения пути, подобные приведенным ниже, для currentChild
атрибут:
<parent currentChild="//@parent/@children.1">
<children/>
<children/>
</parent>
Насколько я знаю, это не XPath, потому что:
- Тот самый "
childrens
" являются ли элементы не атрибутами и на них не нужно ссылаться через "@
" - XPath использует , например,,
elem[1]
и неelem.1
чтобы получить, например, второй элемент списка
Что это такое и где я могу найти информацию об этом?Я уже пытался просмотреть страницы / спецификации EMF, но не смог их найти.
Решение
Это путь фрагмента ЭДС.Javadoc описывает это следующим образом:
Строковая организация.eclipse.emf.ecore.Внутренний объект.eURIFragmentSegment(EStructuralFeature eFeature, EObject EObject) Возвращает сегмент фрагмента, который при передаче в eObjectForURIFragmentSegment преобразуется в данный объект в заданной функции этого объекта.
Аргумент feature может быть равен null, и в этом случае он будет выведен, если это возможно.Результат по умолчанию будет иметь вид:
"@feature-name[.index]"@имяобъекта[.index]"
Индекс используется только для многозначных объектов;он представляет позицию в списке.
Параметры:Обозначьте признак, связывающий данный объект с этим объектом, или null.EObject объект, подлежащий идентификации.ВОЗВРАТ:сегмент фрагмента, который преобразуется в данный объект в заданном объекте этого объекта.