Accessing Databases with XQuery

At the start of this section, we stated that the main purpose of XQuery is to extract data from XML databases, but all our examples have used a single XML document as input.

People sometimes squeeze a large data set (for example, a corporate phone directory) into a single XML document, and process it as a file without the benefit of any database system. While there are preferable alternatives, if the data volumes do not go above a few megabytes and the transaction rate is modest, then XML-document-as-database is a perfectly feasible storage mechanism. In other words, the examples in this section are not totally unrealistic.

If you have got a real database, however, the form of the queries used in this section will not need to change all that much from these examples. Instead of using the doc() function (or simply " .") to select a document, you are likely to call the collection() function to open a database, or a specific collection of documents within a database. The actual way collections are named is likely to vary from one database system to another. The result of the XQuery collection() function is a set of documents (more strictly, a sequence of documents, but the order is unlikely to matter), and you can process this using XPath expressions or FLWOR expressions in just the same way as you address a single document.

There is a lot more to databases than doing queries, of course. Each product has its own ways of setting up the database, defining schemas, loading documents, and performing maintenance operations such as backup and recovery. XQuery currently handles only one small part of the job. In the future it is also likely to have an update capability, but in the meantime each vendor is defining his own.

One particularly nice feature of XQuery is that it has the potential to combine data from multiple databases (and freestanding XML documents). DataDirect XQuery, which supports access to Oracle, DB2, SQL Server, and Sybase is one product that addresses this need.

Apache AXIS

Develop and test Web service applications using Apache AXIS and Stylus Studio.

XSLT Editor

Stylus Studio's XSLT Editor is the most advanced XSLT development tool on the market. This powerful tool provides backmapping, XSLT transformation preview, debugging, peformance profiling, and more!

Learn Stylus Studio in 6 Minutes

Learn Stylus Studio in 6 Minutes is the world's fastest introduction to XML development using Stylus Studio. In just six minutes, learn how to leverage Stylus Studio's powerful XML tools and utilities to simplify XML development.

XSLT Debugger

Stylus Studio's XSLT debugger - a requirement for building bug-free XSLT stylesheets and XML data transformation applications. Stylus Studio's XSLT debugger gives you complete visibility and control over the XSLT transformation process.

Stylus Most Wanted

 
Free Stylus Studio XML Training:
W3C Member