Answer:
Step-by-step explanation:
a)use order by clause for sorting
for $x in doc("books.xml")/bib/book order by xs:float($x/price) return $x/title (default sorted in ascending order)
or
for $x in doc("books.xml")/bib/book order by xs:float($b/price) descending return $b/title (sorted in descending order)
b)doc("books.xml")//book[author = 'Abiteboul']
c)for $x in distinct-values(doc("bib.xml")/bib/book/author)
return <res>
<name>{$x}</name>
<count>
{count (doc("bib.xml")//book[exists(indexof(author,$x))]) }
</count>
<res>