2016-09-29 9 views
-1

Настоящий вопрос XQuery-beginner, но я не могу обойти мою проблему.XQuery и idref

У меня есть база данных XML videos.xml, в котором актеры и фильмы хранятся в виде узлов (я думаю?)

актеров все имеют отдельные идентификаторы, но они не сохраняются как атрибуты, а как что-то другое (Есть ли встроенный атрибут для идентификаторов?). Все фильмы имеют один или несколько атрибутов actorRef, ссылающихся на идентификаторы участников.

На данный момент я хочу запросить все фильмы, ссылающиеся на определенный идентификатор игрока. Скажем, у Keanu Reeves есть идентификатор «001», тогда мы хотим найти все фильмы, ссылающиеся на этот идентификатор -> например. Матрица и Адвокат дьявола. Есть ли встроенная функция для этого?

+0

Просьба привести примеры своего XML и того, что вы уже пробовали. http://stackoverflow.com/help/how-to-ask – wst

ответ

0

Согласовано с комментаторами, что необходимо делать больше, но вы, кажется, ищет семейства функций, fn:id(), fn:idref() и новые версии 3.1 XPath и XQuery Функции и операторы спецификации, fn:element-with-id(). Вот некоторые иллюстрации взяты из спецификации:

let $emp := 
    <employee xml:id="ID21256"> 
     <empnr>E21256</empnr> 
     <first>John</first> 
     <last>Brown</last> 
    </employee> 

Выражение id('ID21256')/name() возвращает "employee". (Атрибут xml:id имеет свойство is-id, поэтому выбран элемент employee.).

Выражение element-with-id('E21256')/name() также возвращает "employee". (Если предположить, что empnr элемент задается тип xs:ID в результате проверки схемы, то элемент будет иметь свойство is-id и поэтому выбран.)

Выражение idref('ID21256') будет возвращать любой элемент или атрибут ссылки на employee элемент. (Предполагая, что ссылочному узлу присваивается тип или xs:IDREFS в результате проверки схемы, узел будет иметь свойство is-idrefs.)

Смежные вопросы