Квантификаторы
Квантификаторы в XPath определяют либо существование хотя бы одного узла последовательности с определенным свойством, либо выделение всех узлов последовательности с определенным свойством.
В первом случае квантификатор, называемый квантификатором существования, записывается следующим образом:
some $имя-1 in выражение-1 [, $имя-2 in выражение-2 …]
satisfies выражение
Сначала вычисляется выражение-1. Затем переменная последовательно принимает значения узлов и/или атомарных значений, полученных в результате вычисления своего выражения. При этом каждый раз вычисляется из последовательности узлов, полученной в результате вычисления выражения-1. Аналогичным образом выполнятся операции и для остальных имен и выражений. Все полученные значения каждый раз подставляются в выражение. Как только одно из значений выражения станет равным true, вычисления прекращаются и квантификатор возвращает true. Если все возвращаемые в ходе подстановки значения возвращают false, квантификатор возвращает false.
Во втором случае квантификатор, называемый квантификатором всеобщности, записывается следующим образом:
every $имя-1 in выражение-1 [, $имя-2 in выражение-2 …]
satisfies выражение
Вычисление значения выполняется также как для предыдущего квантификатора, но квантификатор возвращает true, только если все подстановки возвращают true. Если при очередной подстановке возвращается значение false, вычисления прекращаются и квантификатор возвращает false.
Примеры квантификаторов:
1. some $a in (1, 2, 3, 4), $b in (1, 2)
satisfies $a + $b = 5 – возвращает true.
2. every $i in (1, 4.8, 12, 42)
satisfies $i instance of xs:integer – возвращает false.
Дата добавления: 2015-03-19; просмотров: 552;