Как использовать функцию XQuery fn: id ()? - PullRequest
1 голос
/ 16 июня 2011

Мне не удается в первой попытке заставить функцию fn:id() XQuery что-то делать.

Пока у меня есть документ с именем bar.xml;

<bar>
    <foo id="a"/>
    <foo id="b"/>
    <foo id="c"/>
</bar>

ИXQuery;

doc('bar.xml')/fn:id(("a", "c"))

Но все, что я пытаюсь, похоже, возвращает пустой набор.

Мне еще предстоит изучить схемы XML.Может ли fn:id() работать без объявления отдельного файла схемы для bar.xml?

1 Ответ

5 голосов
/ 16 июня 2011

Вы должны указать, что ваши атрибуты идентификатора являются идентификаторами.

Один из способов сделать это - добавить схему или DTD в документ, в котором это указано.

Другой (гораздо более простой) способ - использовать xml:id вместо id в вашем документе.

В связанной заметке вы можете использовать element-with-id() вместо id(). element-with-id() делает то, для чего изначально был предназначен id(), а id остается в спецификации по причинам совместимости.

...