Advanced Functional Programming

Volume 2638 of the series Lecture Notes in Computer Science pp 188-212

XQuery: A Typed Functional Language for Querying XML

  • Philip WadlerAffiliated withAvaya Labs

* Final gross prices may vary according to local VAT.

Get Access


XQuery is a typed, functional language for querying XML, currently being designed by the XML Query Working Group of the World-Wide Web Consortium. Here are examples of XQuery queries on a suitable XML document describing books. To list titles of all books published before 2000 you might write:


document(”books.xml”)/BOOKS/BOOK[@YEAR < 2000]/TITLE

To list the year and title of all books published before 2000 you might write:

for $book in document(”books.xml”)/BOOKS/BOOK

where $book/@YEAR < 2000

return <BOOK>{ $book/@YEAR, $book/TITLE }</BOOK>

And to list for each author the titles of all books by that author you might write:

let $books := document(”books.xml”)/BOOKS

for $author in distinct($books/BOOK/AUTHOR) return

   <AUTHOR NAME=”{ $author }”>{

       $books/BOOK[AUTHOR = $author]/TITLE