Thanks for drawing this to my attention.
My immediate reaction is to compare this not with SQL, but
with the new XSL "tree construction" facilities which
essentially provide an XML transformation language. I don't
have time to do a detailed point-by-point comparison but it
would certainly be a useful exercise. Conceptually they have
many similarities but there are many points of detail where
one is stronger than the other. I would think it is entirely
possible to devise a language that combines the power of
both without a significant loss of usability.
Generally XSL seems more oriented to the "document" paradigm
(an XML stream consists of sequential content interspersed
with markup) while XML-QL is more oriented to the "data"
paradigm (an XML stream is a serialisation of a database).
So XML-QL has much better facilities for operations such as
sort, join, aggregation, and IDREF dereferencing, while XSL
is stronger on detecting patterns based on ordering of input
elements (e.g. the first-of-type() predicate).
Both proposals seem to concentrate primarily on transforming
the structure of the tree, with little emphasis on
transforming the character strings in its leaf nodes;
neither seems to be capable of doing something as elementary
as converting an attribute value to upper case. Also,
neither has matching operators oriented to free text
searching, e.g. linguistic word matching.
Mike Kay