OK, here's some things we need to support:
/bar/foo (contents of foo element beneeth the bar root element)
author (contents of author element after previous query - if prev query was relative, look at same level, otherwise look at child of previous)
/myroot (any text at start of root element)
//author (contents of author elements anywhere within XML)
book[/bookstore/author/@genre != @genre] (a book relative query, where the author's genre attribute is not the same as the book's genre. The /bookstore/authors MUST be in the same hierarchy as the book element. i.e. the following XML will not result in a hit:
<bookstore> <author genre="horror"> <name>Stephen King</name> </author> <book genre="comedy"> <name>Blott on the Landscape</name> </book> </bookstore>
Whereas the following would:
<bookstore> <author genre="horror"> <name>Stephen King</name> <book genre="sci-fi"> <name>The Running Man</name> </book> </author> </bookstore>
This is simply a restriction of this module - not of XQL. Normally XQL would be fine with that query. Sorry)
book/@genre (contents of genre attribute on the book element)
/bookstore//title (contents of title element that is a descendant of bookstore)
/bookstore/*/title (contents of title element that is a grandchild (and no deeper) of bookstore)
/bookstore//book/excerpt//emph (work it out <g>)
.//title (relative query - dot needed because we have the preceeding //)
author/* (all author's children - returns element names?)
*[@speciality] (contents of all elements with a speciality attribute)
==========
Specific things we don't support:
author[degree and publication] (contents of author elements that have a degree and publication child)
ne and eq for != and = respectively. Why bother.
Content comparisons (only attribute comparisons supported)