XQuery: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
 
 
(23 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Incomplete}}
== Definition ==
== Definition ==


Xquery is a query language that uses the structure of XML intelligently can express queries across all these kinds of data, whether physically stored in XML or viewed as XML via middleware. In other words, you can use it to retrieve things from files, from XML representations made from SQL databases, from native XML databases like exists. In addition, Xquery is quite a real programming language. XUpdate is a protocol to updated (XQuery can't). XML Databases are servers in which can plug XML "as is" and get it back with Xquery and/or XSLT.
Xquery, '''XML Query Language''', is a query language that uses the structure of XML intelligently can express queries across all these kinds of data, whether physically stored in XML or viewed as XML via middleware. In other words, you can use it to retrieve things from files, from XML representations made from SQL databases, from native XML databases like eXist. In addition, Xquery is quite a real programming language.  


== Manuals ==
Xqupdate, (XQuery Update Facility) is a recent (2007) language for updating xml data. There is an older proposal, XUpdate


* [http://www.xmldatabases.org/projects/XUpdate-UseCases/ XML:DB XUpdate Use Cases] by Kimbro Staken. This document outlines a basic set of uses cases for the XUpdate specification from the XML:DB Initiative.
See also [[XML database]]s, servers in which you can plug XML "as is" and get it back with Xquery. Such DBMS also may support [[XPath]], [[XSLT]] and other means.
 
This is just a page with links.
 
See [[XQuery tutorial - basics]]
 
== Documentation ==
 
=== Standards ===
 
* [http://www.w3.org/TR/xquery/ XQuery 1.0: An XML Query Language] (the central document). XQuery can only query (not update). There are some other parts, e.g.
** [http://www.w3.org/TR/xquery-use-cases/ XML Query Use Cases]
** [http://www.w3.org/TR/xmlquery-req XML Query Requirements]
** [http://www.w3.org/TR/query-datamodel/ XML Query 1.0 and XPath 2.0 Data Model]
** [http://www.w3.org/TR/xquery-semantics/ XQuery 1.0 and XPath 2.0 Formal Semantics]. Easy bedtime reading ;)
* [http://www.w3.org/TR/xquery-operators/ XQuery 1.0 and XPath 2.0 Functions and Operators]
* [http://www.w3.org/TR/xqupdate/ XQuery Update Facility].  (W3C Candidate Recommendation 09 June 2009)
* [http://www.w3.org/TR/xpath20/ Xpath 2.0] is used both by XSLT 2.0 and XQuery. XQuery is an extension of XPath 2.0 and both XSLT 2.0 and XQuery 2.0 share the same data model.
* [http://xmldb-org.sourceforge.net/xupdate/index.html Xupdate]. Not a W3C standard, can be used to update some XML databases (not updated since 2000 an will be replaced by XML Query Update). Xupdate looks a lot like XSLT.
 
=== XQuery Tutorials ===
 
See [[XQuery tutorial - basics]] !


== XQuery Tutorials ==
* [http://en.wikipedia.org/wiki/XQuery XQuery] (Wikipedia article)


* [http://www.yukonxml.com/articles/xquery/ Essential XQuery - The XML Query Language] by Darshan Singh. (Feb 2, 2004). Good !
=== Other ===
* [http://www.ibm.com/developerworks/xml/library/x-xquery.html An introduction to XQuery] article for recent developments (2002, updated 2003).
* [http://www.brics.dk/~amoeller/XML/querying/index.html XQuery], tutorial by Anders M�ller & Michael I. Schwartzbach [2003]
* [http://www.ipedo.com/html/xquery/xquery_tutorial/index.html XQuery Tutorial] from IPEDO. Quite technical.
* [http://www.webreference.com/programming/xquery/index.html XQuery from the Experts: Influences on the design of XQuery] Webreference Article, excerpt is from Chapter 2 of the Addison-Wesley book XQuery from the Experts. [2003]
* Michael Brundage (2004). XQuery: The XML Query Language, Portland: Book News [this is a good book]


* [http://www.xmldatabases.org/projects/XUpdate-UseCases/ XML:DB XUpdate Use Cases] by Kimbro Staken. This document outlines a basic set of uses cases for the XUpdate specification from the XML:DB Initiative.


== Software ==
== Software ==
See also [http://www.sqlsummit.com/XQueryProv.htm XQuery Engines, Processors, Providers] at SQLSummit, retr. Jan 2010.


=== XML databases ===
=== XML databases ===
Line 27: Line 48:
* [http://www.sqlsummit.com/XQueryProv.htm XQuery Engines, Processors, Providers] A list of products by SQL Summit.com
* [http://www.sqlsummit.com/XQueryProv.htm XQuery Engines, Processors, Providers] A list of products by SQL Summit.com


* [[Image:stars3s.gif|***]][http://saxon.sourceforge.net/ SAXON] XSLT and XQuery Processor INSTALLED and used as default XSLT engine at Tecfa: [http://tecfa2.unige.ch/guides/xml/local/saxon/doc/ local documentation].
* [http://www.zorba-xquery.com/ Zorba] ships with a PHP language binding that provides some basic features in order to prepare and execute queries with Zorba (2013)
* [http://saxon.sourceforge.net/ SAXON] XSLT and XQuery Processor. There is a free version. (works).  
* [http://sourceforge.net/projects/xqengine/ XQEngine - XML Query Engine] implements XQuery - sourceforge project.
* [http://sourceforge.net/projects/xqengine/ XQEngine - XML Query Engine] implements XQuery - sourceforge project.
* [http://www.dbis.ethz.ch/research/current_projects/MXQuery MXQuery]. low-footprint, extensible XQuery Engine (Java). Includes support for update
* [http://www.dbis.ethz.ch/research/current_projects/MXQuery MXQuery]. low-footprint, extensible XQuery Engine (Java). Includes support for update
* [http://www.galaxquery.org/ Galax]. open-source implementation of XQuery 1.0.
* [http://safariguide.net/ Safari Guide ] Safari Guide is a free application for Mac OS X Tiger that allows developers to evaluate arbitrary XPath and XQuery expressions against the current frontmost Safari webpage. [10/2005]
* [http://safariguide.net/ Safari Guide ] Safari Guide is a free application for Mac OS X Tiger that allows developers to evaluate arbitrary XPath and XQuery expressions against the current frontmost Safari webpage. [10/2005]
* [https://addons.mozilla.org/de/firefox/addon/5515 XQuery USE ME (XqUSEme)] Firefox add-on (based on Saxon-B, Java 1.6 update 12+ is needed). Tested, works as advertized. I used it when I teach some XQuery - [[User:Daniel K. Schneider|Daniel K. Schneider]] 20:00, 19 February 2010 (UTC)
* [http://www.xqib.org/ XQIB] XQuery in the browser (IE / FF 3.5, Windows) (Feb 2010). Not tested. May need administrator rights to install on Windows, security is not guaranteed...


=== XML Editors with XQuery support ===
=== XML Editors with XQuery support ===
Line 37: Line 62:


Many, e.g. XML Exchanger lite.
Many, e.g. XML Exchanger lite.
=== Libraries ===
; For eXist:
* [http://query-exist.sourceforge.net/ PheXist] is a set of classes for PHP 5. (older version also for PHP4 & Perl) to query and manipulate XML documents in eXist XML:DB. (Version 0.5, april 2007). PHP 5 needs the soap extension enabled.
; PHP
* [http://www.pecl.php.net/package/Zorba Zorba] PHP extension for [http://www.zorba-xquery.com/index.php/24/ Zorba], an XQuery processor.
=== Examples ===
* [http://xml-dev.markmail.org/ MarkMail]. Mailing list archive that stores messages in XML. Search (under the hood) is done with Xquery.


== Links ==
== Links ==
Line 44: Line 81:


[[Category: XML]]
[[Category: XML]]
[[Category: Technologies]]
 
[[Category:databases]]
[[Category: databases]]
[[Category:web standards]]

Latest revision as of 01:41, 3 April 2013

Definition

Xquery, XML Query Language, is a query language that uses the structure of XML intelligently can express queries across all these kinds of data, whether physically stored in XML or viewed as XML via middleware. In other words, you can use it to retrieve things from files, from XML representations made from SQL databases, from native XML databases like eXist. In addition, Xquery is quite a real programming language.

Xqupdate, (XQuery Update Facility) is a recent (2007) language for updating xml data. There is an older proposal, XUpdate

See also XML databases, servers in which you can plug XML "as is" and get it back with Xquery. Such DBMS also may support XPath, XSLT and other means.

This is just a page with links.

See XQuery tutorial - basics

Documentation

Standards

XQuery Tutorials

See XQuery tutorial - basics !

Other

  • XML:DB XUpdate Use Cases by Kimbro Staken. This document outlines a basic set of uses cases for the XUpdate specification from the XML:DB Initiative.

Software

See also XQuery Engines, Processors, Providers at SQLSummit, retr. Jan 2010.

XML databases

See XML database

XQuery Engines

  • Zorba ships with a PHP language binding that provides some basic features in order to prepare and execute queries with Zorba (2013)
  • SAXON XSLT and XQuery Processor. There is a free version. (works).
  • XQEngine - XML Query Engine implements XQuery - sourceforge project.
  • MXQuery. low-footprint, extensible XQuery Engine (Java). Includes support for update
  • Galax. open-source implementation of XQuery 1.0.
  • Safari Guide Safari Guide is a free application for Mac OS X Tiger that allows developers to evaluate arbitrary XPath and XQuery expressions against the current frontmost Safari webpage. [10/2005]
  • XQuery USE ME (XqUSEme) Firefox add-on (based on Saxon-B, Java 1.6 update 12+ is needed). Tested, works as advertized. I used it when I teach some XQuery - Daniel K. Schneider 20:00, 19 February 2010 (UTC)
  • XQIB XQuery in the browser (IE / FF 3.5, Windows) (Feb 2010). Not tested. May need administrator rights to install on Windows, security is not guaranteed...

XML Editors with XQuery support

See XML editor for a list of XML editors

Many, e.g. XML Exchanger lite.

Libraries

For eXist
  • PheXist is a set of classes for PHP 5. (older version also for PHP4 & Perl) to query and manipulate XML documents in eXist XML:DB. (Version 0.5, april 2007). PHP 5 needs the soap extension enabled.
PHP
  • Zorba PHP extension for Zorba, an XQuery processor.

Examples

  • MarkMail. Mailing list archive that stores messages in XML. Search (under the hood) is done with Xquery.

Links