The un-queried life is not worth living
— Socrates (Plato, The Apology, 38a)
XQuery is a standardized language for combining documents, databases, Web pages and almost anything else. It is very widely implemented. It is powerful and easy to learn.
XQuery is replacing proprietary middleware languages and Web Application development languages. XQuery is replacing complex Java or C++ programs with a few lines of code. XQuery is simpler to work with and easier to maintain than many other alternatives.
The W3C XML Query Working Group worked with the W3C XML Schema Working Group and the W3C XSL Working Group to make a set of specifications that all work together.
Use XQuery to take data from multiple databases, from XML files, from remote Web documents, even from CGI scripts, and to produce XML results that you can process with XSLT.
Use XQuery on the back-end of a Web server, or to generate Enterprise-wide executive reports.
Submit your entry by sending mail to liam at w3.org, with [XQuery site] in the subject. Remember to give the full URL, and remember that it must be public.
Oxford African American Studies Center is a site published by Oxford University Press using an XQuery system. See the Site Credits link there for more details.
Alberta learning Center for education in the Canadian province of Alberta; e.g. see the Search link, which does not require registration.
AuthorMapper shows authors of scientific papers and articles broken down by geography and subject. The site is by Springer.
Business Week Business School Comparator is said to use XQuery to let users compare universities and business schools; it didn't seem to work for me, so maybe IE only? Or maybe I'm not cut out for business.
Business Exchange, another Business Week site, uses XQuery to drive a site where, it says, usiness professionals can collaborate and network around business topics.
CQ Legislative Impact is a tool to explore how pending US legislation might affect existing laws.
Data Request Broker, DRB, at Gael Consultant, is an open source Java API for processing heterogeneous data. It includes XQuery and Scema support. License is LGPL.
The Dolley Madison Digital Edition by the University of Virginia Press.
fromoldbooks.org has an image search engine powered by XML Query; you can see the text of the queries (follow the About link on the Search page). This is also used by Liam Quin's Photograph search page.
MarkMail is an XQuery-based application for searching and visualising mailing lists.
The New England Journal of Medicine uses XQuery to search and retrieve comprehensive case summaries and graphical icons that identify available supplemental content such as lab reports, radiological scans, histopathology slides, and photos associated with a particular case record.
O'Reilly Labs use XQuery to power code search, image search, statistics and more.
Pop Culture Universe is a Web site about American popular culture, including movies, books and music, with over 300 publications indexed and searchable.
Springer Images uses XQuery to search and retrieve scientific images, photos, tables, charts etc. for researchers.
Springer Exemplar provides a full-text interface to large numbers of scientific and technical journals, together with tools for narrowing down search results.
Wiley Custom Select is a Web site for creating custom course books.
Worldcolor has a custom publishing system using XQuery; they have a Flash demo.
Have you got a Web site that's powered by XML Query? A success story to share? Contact liam at w3.org.
There are over 40 different software packages that support XML Query in some way. Things to look for include availability of support, platforms, price, performance, all the usual issues, but you should also ask whether the software supports the final syntax from the W3C Recommendation or implements an earlier draft. Another XML Query specific feature is support for XML files, for fetching documents via HTTP, and for connecting to relational (or other) data sources: that is, whether the package lives up to the XML Query promise of unifying access to many different forms of information.
List of XQuery Implementations
There are some books listed; there are also people offering training and tutorials. If there is anything you found particular helpful, let us know!
There are also some mailing lists devoted to XML and to XML Query. You should look at the archives of each list before posting; you'll also need to subscribe to the list before you can post to it in most cases.
This is the W3C public mailing list on query languages, including (but not limited to) discussion on the XML Query project. Do not use this to send comments on the specification, such as errata or feature requests; see the Status section in each specification for instructions on how to send comments to the Working Group.
A mailing list hosted at x-query.com, especially for discussing XQuery.
Probably the most widely-known list for discussing XML.
W3C Specifications are aimed first and foremost at programmers writing implementations of them. We also try to make them readable for people trying to learn the language—but given a choice between making a standard precise and making it easy to read, we have to make it precise.
If you are fairly technical, you could start by reading the XML Query specification, and the XQuery Use Cases document has some examples. Many people would rather look for a book or tutorial.
Implementers: what would you most like to see here? What would have helped you the most?
W3C test suites exist to show that specifications can be implemented. They are testing the specs, not the code!
The QT 3.0 Test suite is for people implementing XQuery 3, XPath 3, Functions and Operators 3 and related specifications.
XQuery and XPath Full Text 1.0 Test Suite (Joint with the XSLT WG)
The much older XQuery 1.0 Test Suite is no longer used.
XPath 2 has typed values; that is, the language associates a value type with each expression, variable or function. The set of possible types is that defined by W3C XML Schema, augmented by user-defined types derived from those basic Schema types using an external schema. The way in which an XPath or XQuery system derives and checks the type of an expression is defined formally, using a mathematical notation, in the XQuery 1.0 and XPath 2.0 Formal Semantics Recommendation.
Note that both external W3C Schema support and static typing are optional features, so not all implementations support them.
You will often see things in the specifications marked as being implementation defined. You must document what your implementation does for each of these.
The W3C XML Query Working Group has published a lot of documents. Many of these were done together with the XSL Working Group and are marked Joint.
Both of these Working Groups also met with the W3C XML Schema Working Group, to make sure our specifications all work together.
First, the main XML Query documents:
XQuery 3.1: An XML Query Language (W3C Recommendation)
XML Syntax for XQuery 3.1 (XQueryX) (W3C Recommendation)
XML Query (XQuery) 3.1 Requirements (W3C Working Group Note)
XML Query 3.0 Use Cases (W3C Working Group Note)
Building a Tokenizer for XPath or XQuery (Joint Note)
XSLT and XQuery share a lot of the same functionality:
XSL Transformations (XSLT) Version 2.0 (by the XSL Working Group)
XSL Transformations (XSLT) Version 3.0 (by the XSL Working Group)
XQuery and XSLT both use XPath:
XML Path Language (XPath) 3.1 (W3C Recommendation; Joint)
XPath in turn is built on a number of Joint specifications :
XQuery and XPath Data Model (W3C Recommendation; Joint)
XSLT and XQuery Serialization (W3C Recommendation; Joint)
XQuery and XPath Functions and Operators (W3C Recommendation; Joint)
The XML Query and XSL Working Groups developed Full-Text Search for XPath and XQuery:
The XML Query Working Group developed an update facility for XQuery; this lets you write Query expressions that change documents and perhaps save the result.
The XML Query Working Group is no longer working on Scripting Extensions for XQuery. The goal was to investigate whether adding imperative (procedural) features such as variable assigment and explicit sequencing to XQuery makes the language significantly more powerful or easier to use.
Send your XQuery-related news item to liam@w3.org, with [XQuery] in the Subject. Note, I am sorry that sometimes I miss announcements. I get hundreds, sometimes thousands, of messages in a day. If your announcement does not appear within one week, send it again and please accept my apologies!
XQuery 3.0 is a W3C Recommendation along with XQueryX, XPath 3, XDM 3, Serialization 3 and of course functions and Operators 3.
BaseX 7.8 was released today; it adds a project view, enhancements to the built-in editor, speedups to insert, delete, XQuery functions and more, and includes enhancements to the the XQuery add-on modules such as JSON , Full-Texxt and ExPath File. The software is also now available in Russian and Spanish.
Altova has released XML Spy 2014 with support for XQuery 3.0, XPath 3.0, XSLT 3.0 draft and also XML Schema 1.1 using the RaptorXML engine.
Lux release 0.11; includes moving to Saxon 9.5, Solr 4.4, experimental SolrCloud support.
BaseX 7.7 was released today; it includes support for the XQuery 3.0 Candidate Recommendation, many new features and performance enhancements, improved support for large databases, and a birthday cake for Leo.
Zorba 2.9 was released today; Zorba is an open source XQuery implementation in C++ that also includes a JSONiq implementation. This release increases XQuery 3 support (including higher order functions) and also makes changes to the JSONiq implementation.
Xidel is a tool for extracting data from Web pages using a combination of CSS selectors, XQuery and JSONiq. [since renamed to Xidel]
W3C Java Applets have been updated to incorporate the latest versions of the specifications for the XPath and XQuery 3.0 Candidate Recommendations as well as for the 1.0 and 2.0 documents.
W3C Recommendation Status for XQuery 1.0: An XML Query Language, XML Syntax for XQuery 1.0 (XQueryX) and XML Path Language (XPath) 2.0, as well as the supporting specifications, XQuery 1.0 and XPath 2.0 Functions and Operators, XQuery 1.0 and XPath 2.0 Data Model (XDM), XSLT 2.0 and XQuery 1.0 Serialization and of course XQuery 1.0 and XPath 2.0 Formal Semantics. In addition, XSL Transformations (XSLT) Version 2.0 by the XSL Working Group is also a W3C Recommendation.
oXygen editor 8.0 includes debugging support for both XML Query and XSLT, with support for Berkeley XML DB, IBM DB2 Pure XML, eXist XML Database, MarkLogic, Microsoft SQLServer 2005, Oracle 10g R2, RainingData TigerLogic XDMS, SoftwareAG Tamino and XHive XML Database.
The XML Query Working Group operates under the Royalty Free terms of the W3C Patent policy. Patent disclosures relevant to the specifications produced by the XML Query working group can be found in the Implementation of the W3C Patent Policy (IPP) XML Query IPP status page and, for XSL and joint specifications the XSL WG IPP status page. Older disclosures are on the XML Query Working Group's patent disclosure page at http://www.w3.org/2002/08/xmlquery-IPR-statements.
Specifications that are joint work with the XSL working group have also the additional patent disclosures provided by the XSL wg at http://www.w3.org/Style/XSL/Disclosures.
Note: before posting to this mailing list, be sure to read the Status section in the document on which you are commenting. Most of our documents now ask you to send comments using bugzilla.
This public mailing list is used to submit comments on the publications of the XML Query and XSL working groups. This is not a discussion list (use www-ql@w3.org instead), and so you shouldn't subscribe: this list is just a way for people to provide their comments to the XML Query and XSL WGs, and for the WGs to reply. The list is publicly archived at http://lists.w3.org/Archives/Public/public-qt-comments/.
If your implementation is not here, or if you know of an implementation that is not listed, send liam@w3.org the details!
Software that implements the XQuery and XPath Full Text Facility is so marked in this list. There is a separate list of XPath 2 implementations.
Please send liam@w3.org any information about these; I have tried to contact people where possible.
Software that implements XPath 2.0, but not XML Query or XSLT 2
The following is a (non-comprehensive) list of announcements of products that will include some support for XQuery, or that are of related nature:
I have tried to indicate where authors participated in the XML Query Working Group, sent comments on the specifications, or have written implementations themselves. This does not necessarily make them good writers, but it may help you to understand their point of view and their connection with XML Query.
Books that I have received more recently are at the top of the list.
An XQuery Wikibook by Chris Wallace, Dan Mcreary and Kurt Cagle
Querying XML : XQuery, XPath, and SQL/XML in context by Jim Melton and Stephen Buxton; The Morgan Kaufmann Series in Data Management Systems, 2006. The book also has its own Querying XML Web page. [Both authors have participated heavily in the development of XML Query; Jim Melton is currently the co-chair of the W3C XML Query Working Group. - Liam]
XQuery: The XML Query Language by Michael Brundage; Addison-Wesley Professional, February 2004. With a foreword by Michael Rys. Book web site at www.qbrundage.com/xquery/. [The first half of the book is an introduction to XQuery, including an interesting chapter on Idioms. The second half is a reference. - Liam]
XQuery from the Experts edited by Howard Katz, with chapters by Don Chamberlin, Denise Draper, Mary Fernandez, Michael Kay, Jonathan Robie, Michael Rys, Jerome Simeon, Jim Tivy and Philip Wadler. Addison-Wesley Professional, September 2003. There are two chapters online at www.fatdog.com. [Although this book is older, the text is a very happy mix of tutorials, design rationale and examples. The authors have been heavily involved in the design of XML Query, and most have been active memebers of the W3C XML Query Working Group; the editor, Howard Katz, has also made his own open-source implementation. - Liam]
I have not seen the following books:
XQuery Kick Start by James McGovern, Per Bothner, Kurt Cagle, James Linn and Vaidyanathan Nagarajan; Sams, September 2003. [I have not seen this book. Per Bothner made many helpful public comments on the specifications - Liam]
Early Adopter XQuery by Dan Maharry, Rogerio Saran, Kurt Cagle, Mark Fussell and Nalleli Lopez. Wrox Press; January, 2002. [This book was probably too early to be of use today, although I have not seen it to be sure. I am listing it for completeness. Michael Brundage has written that it is out of date, but that it reviewed some XQuery APIs - Liam]
Querying XML with XQuery (Advances in Database Systems) by Yannis Papakonstantinou and Ioana Manolescu. Springer; March 2006 [forthcoming, I assume. Ioana participates in the XML Query Working Group. - Liam]
XQuery - Grundlagen und fortgeschrittene Methoden by Wolfgang Lehner. dpunkt.verlag, January 2004; this book is downloadable from Amazon for US$30.
A Google search for "(XQuery tutorial"|"XML Query tutorial") produced over 150 matches (Google actually said about 30,500 but this turned out to mean exactly 153).
To suggest a new pointer, send an email to member-query-feedback@w3.org.
To contact the XML Query and XSL Working Groups, you can send email to public-qt-comments at w3.org
To report errors in the specification please use bugzilla, as described in the Status section at the start of each specification.
To comment on this page, send mail to liam at w3 dot org