## XML Query

XML Query is a language designed by the W3C for querying and processing XML information.

XML Query shares many features with XSLT 2, in particular the expression sub-language XPath 2 and many similar constructs. Their differences reside mostly in syntax and in the template mechanism which is unique to XSLT. The two languages arise from specification efforts from two different worlds - XSLT and XML databases - and have progressively converged.

Both are functional languages, but the programming style is not the same: XSLT is `declarative', it is based on rules called templates, while XML Query is more `imperative' or procedural, like SQL or classical programming languages. Compared to the previous generation (XSLT 1), emphasis is put on strong typing and use of XML Schema.

XML Query is now reaching a mature state and should become a definitive W3C Recommendation within a few months.

## Where to find information

The best is to start from the W3C root page: http://www.w3.org/XML/Query.

On this page you will find in particular a list of pointers to miscellaneous papers about XML Query.

Of great interest is also to look at the usage scenarios for XQuery published by the W3C.