J'essaye de faire une pagination simple dans XQuery. Je voudrais que mon élément racine du XML renvoyé ait (en tant qu'attributs) différentes propriétés concernant la pagination (page courante, etc.).XQuery wrap résultat dans le noeud calculé
Cependant, je n'arrive pas à trouver un moyen d'ajouter ces attributs dynamiques à mon élément racine. J'ai essayé de jouer avec le nom de l'élément {expr} et le nom de l'attribut {expr} fonctions, mais n'arrive pas à les faire fonctionner.
<result>{
let $results :=
for $item in doc('mydoc')/root/item
return $item
let $requested-page-nbr := 2
let $items-per-page := 10
let $count := count($results)
let $last-page-nbr := fn:ceiling($count div $items-per-page)
let $actual-page-nbr := if ($requested-page-nbr gt $last-page-nbr) then $last-page-nbr else $requested-page-nbr
let $start-item := $items-per-page * $actual-page-nbr - ($items-per-page - 1)
let $natural-end-item := $actual-page-nbr * $items-per-page
let $actual-end-item := if ($count ge $natural-end-item) then $natural-end-item else $count
for $j in ($start-item to $actual-end-item)
let $current := item-at($results, $j)
return
<document-summary
requested-page-nbr="{$requested-page-nbr}"
items-per-page="{$items-per-page}"
count="{$count}"
last-page-nbr="{$last-page-nbr}"
actual-page-nbr="{$actual-page-nbr}"
start-item="{$start-item}"
natural-end-item="{$natural-end-item}"
actual-end-item="{$actual-end-item}">
{($current)}
</document-summary>
}</result>