Поскольку max(...)
не возвращает логические результаты, where max($x//NumberOfEntries)
эквивалентно where exists(max($x//NumberOfEntries))
, поэтому ничего не фильтруется. Вы хотите найти страницу с максимальным количеством записей, вот что я бы сделал:
let $pages := /Document//Page,
$max := max($pages//NumberOfEntries)
return $pages[.//NumberOfEntries = $max]
Если несколько страниц имеют одинаковое количество записей, и это максимум, все они возвращаются. Если вам нужен только один результат, вы можете заключить последнюю строку в (...)[1]
, чтобы взять первую:
let $pages := /Document//Page,
$max := max($pages//NumberOfEntries)
return ($pages[.//NumberOfEntries = $max])[1]