[XQuery] SAG-XQ-006 XML syntax for XQuery

SAG-XQ-006 XML syntax for XQuery

We believe there is a need for an XML-based syntax for XQuery. There are
several scenarios that lead to this requirement:

* embedding XQuery queries in XML documents (including, potentially, future
versions of W3C document formats such as XSLT, XML Schema, or XLink).

* generating queries using XQuery or XSLT (stylesheets that generate
stylesheets are extremely common, and because XQuery lacks reflection and
higher-order functions, the same need will exist with XQuery)

* storing and organizing queries in an XML database. Again, we find that it
is very common for stylesheets and schemas to be stored in an XML database,
and it is distinctly odd that this is not possible for queries. (Wrapping
the query as CDATA is possible, of course, but the document then has no
useful structure that the database system can take advantage of).

We don't believe the current proposals for XQueryX meet this need. The need
is for a format that is human-readable and human-writable. We see no need
for an interoperable XML representation of the internal parse tree of the
XQuery syntax, which is what XQueryX provides. It meets none of the above
three requirements. While a syntax at this level might be useful internally
within a product suite, we see no need for it to be interoperable.

Most real, practical, everyday XQuery queries, for example all of those in
the published use cases, are already conformant to XML syntax. We believe
that the requirement for an XML-based syntax for XQuery could be met by:

(a) imposing some restrictions, for example on the ability to use quotes or
nested elements within attribute values (users might have to declare
variables to avoid such nesting)

(b) defining an XML representation for the top-level structure of the query,
at the level of declarations in the prolog, while leaving the syntax of
expressions untouched

(c) representing direct element and attribute constructors "as themselves".

Michael Kay
for Software AG

Received on Thursday, 27 November 2003 07:00:22 UTC