[xquery-talk] XQuery and databases - XQuery 2.0

Ronald Bourret rpbourret at rpbourret.com
Mon Jun 15 22:13:36 PDT 2009

To clarify:

1) SQL/XML defines an XML data type, a syntax for constructing XML 
values from relational data, and functions for executing XQuery queries 
against XML values, creating tables from XML values/sequences, etc. It's 
worth noting that XML values are the same as XQuery sequences -- that 
is, not necessarily well-formed.

2) Oracle and DB2 implement SQL/XML. SQL Server implements the XML data 
type from SQL/XML, but uses a non-standard syntax for creating XML 
values from relational data.

3) Lots of things are non-standard. As Michael mentioned, there is no 
standard way to define an index on an XML value. Also not standard are 
things like whether you can directly execute an XQuery statement or need 
to embed it in an SQL statement; how to query relational values from 
within an XQuery statement; how XML results are retrieved from a result 
set (JDBC 4.0 defines this); and so on.

4) Different databases implement the XML data type differently, and 
these implementation choices can lead to large differences in 
performance. (Performance is obviously also query- and index-dependent.)

-- Ron

David A. Lee wrote:
> Not sure about a "standard" but the top DB vendors have done this 
> already years ago
> Oracle:
> http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14259/xdb13gen.htm#i1027254 
> http://msdn.microsoft.com/en-us/library/aa286527.aspx
> DB2
> http://www.ibm.com/developerworks/db2/library/techarticle/dm-0603saracco2/
> But if you think SQL is incomprehensible, take a gander at what you have 
> to do with these (above) implementations to get XML out ....
> Give me pure XQuery any day :)

More information about the talk mailing list