Рис. 6: Вычисление счета для каждого заказа: с помощью XQuery, расширенного поддержкой XLink, (вверху) и с помощью Scheme (внизу).
for $order in document("purchase-orders.xml")//order return <bill> <total-price>{ fn:sum( for $entry in $order/entry return item/traverse::*/price * quantity ) }</total-price> {$order/customer/traverse::person/name} </bill> (map (lambda (order) `(bill (total-price ,(apply + (map (sxpath/c "item/traverse::*/price * quantity") ((sxpath/c "entry") order)))) ,@((sxpath/c "customer/traverse::person/name") order))) ((sxpath/c "//order") (xlink:documents "purchase-orders.xml"))) |