The Official XQuery FAQ

The following is the official list of Frequently-Asked Questions about the World Wide Web Consortium's XML Query Language (XQuery). It is intended as a beginner's guide for users, developers, or any interested reader getting started with XQuery technologies. Note: The XQuery FAQ is not a part of the XQuery Specification. If you have a question you'd like to add to the list, email us.

What is XQuery?

Simply stated, XQuery is an emerging standards-based language for querying and transforming XML.

Why should I use XQuery?

A recent world-wide survey of software developers found that the top four reasons for using XQuery were that it simplifies data access and transformation, has a more concise and easier-to-read syntax, can aggregate and manipulate data from different sources, and for its flexibility in working with relational and non-relational data sources. Other reasons that came up frequently included greater performance, flexibility, and the need for standards based approach to XML data integration.

Where can I use XQuery?

Anywhere you have XML data that needs to be accessed or manipulated, think XQuery. Three common use cases for XQuery are as a transformation language (i.e. getting data in one format to look like another format), as a data integration language (i.e. combining data from several different sources into a single output), and as a generic query language for large document repositories, similar to how SQL is currently used to query large relational databases. As far as actually applications are concerned, we're seeing XQuery adoption across a broad base of vertical industries including: Academia, Financial Services, Government, Healthcare, Manufacturing, Publishing, Transportation, Retail, Telecommunications, Computers, Aerospace, Internet Services, etc – to tackle a wide variety of enterprise computing challenges such as data integration, report generation, content management, electronic commerce, and other applications.

What companies are behind the XQuery standardization efforts?

XQuery is a joint effort being undertaken by the World Wide Web Consortium (W3C) – the XQuery standard committee includes representatives of the world's largest software vendors including Microsoft, Oracle, IBM, BEA, DataDirect Technologies and many other companies. The entire software world is on board this exciting new technology – a historically rare occasion for our industry.

How do you build an XQuery application?

At a high level, an XQuery application consists of several components:

  • An XQuery expression where you write out in a declarative syntax, the underlying XQuery instructions to be evaluated.
  • An XQuery processor that executes the XQuery expression that you wrote – this can be a stand-alone component or some database vendors include embedded XQuery processing capabilities
  • An XQuery enabled database that houses the underlying data being queried
  • An XQuery API for programmatically invoking and processing your queries into your application code

Building an XQuery application then involves putting this all together using the right components and tools.

Where can I get an XQuery processor?

As a standard-based technology, there are several XQuery implementations available for XML developers. DataDirect XQuery is the only Java-based implementation of XQuery and the XQuery API for Java (XQJ) which enables you to execute and process XQuery expressions against any of the major relational databases, and you can download a free trial today. Additionally, Stylus Studio simplifies developing Java XQuery applications by providing integrated support for DataDirect XQuery, for example, in the Java Code Generator. Stylus Studio's XQuery IDE also includes its own built-in XQuery processor, and also provides integrated support for the Saxon XQuery processor.


Where can I get XQuery tools and why do I need them?

Stylus Studio features a full arsenal of powerful XQuery tools, including a robust XQuery editor, an integrated XQuery debugger that lets you step through and troubleshoot XQuery expressions, a visual XQuery mapper for visually designing XQuery expressions, and an XQuery profiler for benchmarking and performance tuning XQuery expressions. But XQuery technologies also leverage related technologies like XML, XML Schema and XPath, and so Stylus Studio's XML Schema Editor, XML Editor and XPath tools are a great help in building advanced XQuery applications. Getting started with All of these tools are available now for free trial download meaning you can get started working with XQuery now. Stylus Studio 6 XML Professional Edition retails for just $495 (USD) for a single user license. XQuery is a bit overwhelming and XQuery tools certainly reduce the learning curve.

What databases support XQuery?

All of the major relational database vendors have announced various plans to support XQuery technologies in their upcoming major product releases, including Oracle10g, Microsoft SQL Server 2005 (Yukon) and an upcoming release of IBM DB/2. However, these XQuery implementations are all bound their own platform. DataDirect Technologies has developed DataDirect XQuery, a Java-based component that can access virtually any relational database (including SQL Server, Oracle, IBM DB2, Sybase, and MySQL) and can be easily embedded into any Java application code – this is particularly useful when it comes to tackling advanced data aggregation and integration and integration scenarios involving multiple database which is often the case in large corporations. You can download a free trial today.

What about native XQuery databases?

Native XML databases have been around for years now and are enthusiastically adding XQuery interfaces into their XML repositories.

Is there a standard Java API for programmatically invoking XQuery expressions?

Yes – JSR 225, a Java API for XQuery is tasked with development of a JDBC or ADO-like programming interface for programmatically invoking XQuery expressions against any database and for processing the resulting XML fragments in Java application code. DataDirect XQuery includes am implementation of current XQJ interfaces and which works with SQL Server, Oracle, Sybase, IBM and MySQL, and you can sign up for free to start using XQJ today.

What about for .NET?

Unfortunately, Microsoft recently dropped XQuery support from .NET 2.0 - if you think this is a mistake, we urge you to sign our online petition in support of XQuery for all.

What is the status of the XQuery specification?

It's an official W3C Recommendation as of January, 2007. A recent interview with Dr. Daniela Florescu, the editor-in-chief of the XQuery specification describes the magnitude of the challenges involved in creating the XQuery specification and talks about planned future work to address other exciting issues such as XQuery update functionality, an XQuery stored procedure language and an XQuery full text search.

What impact will XQuery have on database development trends?

Experts think (with good reason) that XQuery is the biggest shift in database computing since the introduction of SQL over 35 years ago. An article on XQuery trends discusses the impact of this new technology on the database landscape.

What is the relationship between XSLT 2.0 vs. XQuery 1.0?

Both XQuery 2.0 and XQuery are typed, declarative, data transformation languages, and for the time being are functionally equivalent. Both are related in that they leverage related technologies XML, XML Schema, and XPath. Presently differences have to do more with syntax and programming style and intended audience, but future work on these specifications will diverge. For example, XQuery plans to tackle update functionality, full text search, stored procedures, and other more data-oriented functionality where as XSLT plans to remain a pure data transformation language. A recent interview with Dr. Michael Kay, the editor of the XSLT 2.0 specification and invited technical expert on the XQuery 1.0 specification talks about the relationship between the two.

Where can someone go to learn more about XQuery development?

The fastest way is to learn XQuery is to try it out yourself, and its really easy to get started. By downloading Stylus Studio, which includes a built-in XQuery processor. You'll be able to write XQuery expressions using a robust XQuery editor and then execute it with a single click, then analyze the output. You can troubleshoot XQuery problems using the debugger by setting breakpoints and stepping through the XQuery expression line by line. Next you can visually build XQuery mappings with the XQuery mapper which helps you understand XQuery concepts because you can analyze the XQuery code as it is being generated for you. Once you've built up some XQuery expressions and are ready to move on to more advanced applications involving accessing and manipulating large volumes of relational data as XML, download a copy of DataDirect XQuery – this will allow you to seamlessly connect to virtually any relational database and execute your XQuery expressions from within your Java code. If you prefer to read more about XQuery first, visit Stylus Studio's XQuery Zone which includes XQuery tutorials, XQuery videos, and other XQuery technical articles and specifications to help you learn XQuery.

Where can I ask technical question about XQuery?

Some of the most popular XQuery development forums include the Stylus Studio Developer Network XQuery Help and Discussion forum.


Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Try Stylus Powerful XQuery IDE

Download a free trial of our award-winning IDE for XQuery today!

Attend a Live Webinar This Week!

Learn about Stylus Studio's unique features and benefits in just under an hour. Register for the Stylus Studio QuickStart Training WebCast!

Ask Someone You Know

Does your company use Stylus Studio? Do your competitors? Engineers from over 100,000 leading companies use Stylus Studio, and now you can ask someone from your own organization about their experiences using Stylus Studio.

Top Ten XQuery Trends

Read about the top 10 XQuery Trends and how they will impact change the way enterprise software applications are built.

Free Stylus Studio XML Training:
W3C Member