Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/joewiz/learn-xquery

A list of great articles, blog posts, and books for learning XQuery
https://github.com/joewiz/learn-xquery

functional-programming learning-xquery query-language xml xquery

Last synced: 14 days ago
JSON representation

A list of great articles, blog posts, and books for learning XQuery

Awesome Lists containing this project

README

        

# Learn XQuery: A list of great articles, blog posts, and books for learning XQuery

Let's show the world how to learn XQuery. Pull requests welcome. Quality over comprehensiveness - just the best, most helpful resources, please. Talk about [`#xquery`](https://twitter.com/search?q=xquery) on Twitter.

Also, check out these [resources powered by XQuery](https://github.com/joewiz/xquerypower), [repositories with XQuery on GitHub](https://github.com/search?utf8=%E2%9C%93&q=language%3AXQuery&type=Repositories&ref=searchresults), and [questions about XQuery on Stack Overflow](https://stackoverflow.com/questions/tagged/xquery).

## Gentle introductions

- [W3Schools XQuery](https://www.w3schools.com/xml/xquery_intro.asp). Limited to XQuery 1.0, but a quick overview.
- [XQuery Wikibook Beginning Examples](https://en.wikibooks.org/wiki/XQuery#Beginning_Examples). Perhaps the best developed portion of the XQuery Wikibook site (see remarks below).

## Materials from XQuery courses

- [XQuery for Humanists](https://github.com/CliffordAnderson/XQuery4Humanists), by Clifford Anderson, et al. Exercises for XQuery workshops geared toward humanities scholars; most recently updated for Digital Humanities 2017. (See their 2020 book, linked below.)
- [Make *your* edition: models and methods for digital textual scholarship](https://pittsburgh-neh-institute.github.io/Institute-Materials-2017/), a.k.a. Pittsburgh NEH Institute, hosted at the University of Pittsburgh in 2017. Covers many topics, including XPath and XQuery.
- [Digital Humanities Courses: Tutorials + Exercises](https://newtfire.org/courses/tutorials/), by Elisa E. Beshero-Bondar. Covers many topics, including XPath and XQuery.
- [XQuery and XML Applications](https://www.adamretter.org.uk/presentations/xquery-and-xml-applications_xml-summer-school_oxford_20160915.pdf), by Adam Retter (see his [other presentations](https://www.adamretter.org.uk/presentations.xml)). Slides from the XQuery track of the 2016 [XML Summer School](https://xmlsummerschool.com/), Oxford.
- [XQuery Summer Institute](http://xqueryinstitute.org/), hosted at Vanderbilt University in 2015.
- [XPath and XQuery](https://lagunita.stanford.edu/courses/DB/XPath/SelfPaced/about) ([YouTube](https://www.youtube.com/watch?v=LeD6vMK-znY&list=PL3D8fVsfHcA8l2CTTwCMH9D_JFlYosLFa)), by Jennifer Widom, Stanford University, 2014. Covers the XPath language for processing XML data, along with many features of the more advanced XQuery language. Part of a set of smaller self-paced "mini-courses", which can be assembled in a variety of ways to learn about different aspects of databases.
- [Web Development Using XML](https://web.archive.org/web/20160125184720/http://cscie18.dce.harvard.edu/lecture_notes/2015/), David P. Heitmeyer, CSCI E-18, Fall 2015, Harvard Extension School. (See lecture notes from this course [since 2003](https://web.archive.org/web/*/http://cscie18.dce.harvard.edu/lecture_notes*).)
- [Querying XML: XPath and XQuery](https://www.slideshare.net/kverbert/xml-parta), by Katrien Verbert and George Fletcher, slides from Database Technology (2ID35), Technische Universiteit Eindhoven, Spring 2013.
- [XML with Java, Java Servlet, and JSP](https://web.archive.org/web/20210623094651/http://cs259.tv/2007/fall/) ([YouTube](https://www.youtube.com/user/cscie259)), David Malan, CSCI E-259, Fall 2007, Harvard Extension School.

## In-depth introductions

Some people can learn languages by reading online tutorials. Some people like to dive into a book, or have one on their shelf for reference. Listed in chronological order by date of printing, newest to oldest.

- [XQuery for Humanists](https://www.tamupress.com/book/9781623498290/xquery-for-humanists/), Clifford B. Anderson and Joseph C. Wicentowski, Texas A&M University Press, 2020. An introduction to XQuery accessible to non-programmers. Has a running focus on use cases related to research in the humanities. See also the book's [companion website](https://coding4humanists.github.io/xquery4humanists/).
- [XQuery, 2nd Edition: Search Across a Variety of XML Data](https://www.oreilly.com/library/view/xquery-2nd-edition/9781491915080/), Priscilla Walmsley, O'Reilly, 2015. The standard text for XQuery, available in a second edition, updated for XQuery 3.1. Also introduces [functx](http://www.xqueryfunctions.com/).
- [eXist: A NoSQL Document Database and Application Platform](https://www.oreilly.com/library/view/exist/9781449337094/), Erik Siegel and Adam Retter, O'Reilly, 2014. Introduces approaches to building applications with one popular XQuery-based platform, eXist. Example code for the book is [on GitHub](https://github.com/eXist-book/book-code).
- [XQuery from the Experts](https://www.amazon.com/dp/0321180607), A bit dated (2003), and only available second-hand, but its coverage of the concepts and purpose and role of the language makes it more than just a tutorial or reference manual.

## The specs

- 3.1 (W3C Recommendation, 2017): [XQuery 3.1](https://www.w3.org/TR/xquery-31/), [Data Model](https://www.w3.org/TR/xpath-datamodel-31/), [Functions and Operators](https://www.w3.org/TR/xpath-functions-31/), [Serialization](https://www.w3.org/TR/xslt-xquery-serialization-31/), Update Facility (no 3.1 version yet; see the 3.0 version).
- 3.0 (W3C Recommendation, 2014): [XQuery 3.0](https://www.w3.org/TR/xquery-30/), [Data Model](https://www.w3.org/TR/xpath-datamodel-30/), [Functions and Operators](https://www.w3.org/TR/xpath-functions-30/), [Serialization](https://www.w3.org/TR/xslt-xquery-serialization-3/), [Update Facility](https://www.w3.org/TR/xquery-update-30/)
- 1.0 (W3C Recommendation, 2007): [XQuery 1.0](https://www.w3.org/TR/xquery/), [Data Model](https://www.w3.org/TR/xpath-datamodel/), [Functions and Operators](https://www.w3.org/TR/xquery-operators/), [Serialization](https://www.w3.org/TR/xslt-xquery-serialization/), [Update Facility](https://www.w3.org/TR/2011/REC-xquery-update-10-20110317/).

## Latest developments in XQuery

- [Using XPath 3.1 (and its friends) to work with JSON](https://github.com/amclark42/code4lib_xpath-to-work-with-json), Ash Clark, 2021. A lightning talk presented at Code4Lib 2021.
- [Converting Roman numerals with XQuery & XSLT I–IV](https://joewiz.org/2021/05/30/converting-roman-numerals-with-xquery-xslt/), Joe Wicentowski, 2021. Explores the use of XQuery 3's `fold-left()` and `fold-right()` functions.
- [New in XQuery 3.1: Maps and arrays](https://web.archive.org/web/20150525174523/http://goxrxyourself.com/2015/04/13/new-in-xquery-3-1-maps-and-arrays/), Jesse Alama, 2015. A core new set of features in XQuery 3.1.

## Thought pieces situating XQuery in the world

- [The integration of XML databases and content management systems in digital editions: Understanding eXist-db through Reese’s Peanut Butter Cups](https://www.balisage.net/Proceedings/vol23/html/Birnbaum01/BalisageVol23-Birnbaum01.html), Birnbaum, David J., Hugh Cayless, Emmanuelle Morlock, Leif-Jöran Olsson and Joseph Wicentowski. Presented at Balisage: The Markup Conference 2019, Washington, DC, July 30-August 2, 2019. In _Proceedings of Balisage: The Markup Conference 2019_. Balisage Series on Markup Technologies, vol. 23 (2019). https://doi.org/10.4242/BalisageVol23.Birnbaum01.
- [XQuery as a data integration language](https://www.balisage.net/Proceedings/vol15/html/Rennau01/BalisageVol15-Rennau01.html), Hans-Jürgen Rennau and Christian Grün. Presented at Balisage: The Markup Conference 2015, Washington, DC, August 11-14, 2015. In _Proceedings of Balisage: The Markup Conference 2015_. Balisage Series on Markup Technologies, vol. 15 (2015). https://doi.org/10.4242/BalisageVol15.Rennau01.
- [XQuery: It's not just for queries!](https://web.archive.org/web/20150531205445/http://goxrxyourself.com/2015/04/29/xquery-its-not-just-for-queries/), Jesse Alama, 2015. Emphasizes wide utility of XQuery.
- [On Teaching XQuery to Digital Humanists](https://www.balisage.net/Proceedings/vol13/print/Anderson01/BalisageVol13-Anderson01.html), Clifford Anderson, presented at Balisage: The Markup Conference 2014, Washington, DC, August 5-8, 2014. In _Proceedings of Balisage: The Markup Conference 2014_. Balisage Series on Markup Technologies, vol. 13 (2014). https://doi.org/10.4242/BalisageVol13.Anderson01.
- [XQuery Novelties Revisited](https://grtjn.blogspot.com/2011/10/xquery-novelties-revisited.html), Geert Josten, 2011. Situates XQuery among the various XML and non-XML standards. Provides a little history on the development of XQuery.
- [XQuery, the Server Language](https://www.xml.com/pub/a/2007/06/01/xquery-the-server-language.html), Kurt Cagle, 2007. Explains that XQuery is much more than a language for querying XML.

## More tutorials

- [XQuery Wikibook](https://en.wikibooks.org/wiki/XQuery): An introduction to XQuery and a cookbook for various applications. Fairly eXist-centric and many pages out of date with developments both in eXist and XQuery, but very useful still.
- [XQuery Update facility for the impatient, A quick introduction to the XQuery Update Facility](https://www.xmlmind.com/tutorials/XQueryUpdate/index.html), Xavier Franc. Presents the XQuery Update facilities introduced by the W3C recommendation.
- [XQuery and Lazy Enrichment](https://xquery.typepad.com/xquery/2007/08/xquery-and-lazy.html), Matt Turner, 2007. Demonstrates a simple but powerful technique for enriching text with links to Wikipedia. Easily applied to any XQuery implementation.
- [MarkLogic Server and Office 2007](https://web.archive.org/web/20180625204901/http://developer.marklogic.com/blog/smallchanges/2009-01-22), Pete Aven, 2007-09. The last in a series (see the links to the other articles at the bottom) on how to open, manipulate, and create Microsoft Office documents using XQuery. Easily applied to any XQuery implementation.

## Documentation from XQuery implementations about their use of XQuery

In depth articles on conformance to / divergence from the spec, and links to key articles and documentation:

- [XQuery in BaseX](https://docs.basex.org/wiki/XQuery). See also [all BaseX documentation](https://docs.basex.org/wiki/Main_Page).
- [XQuery in eXist-db](https://exist-db.org/exist/apps/doc/xquery.xml). See also [eXist XQuery Features Demo](https://exist-db.org/exist/apps/demo/index.html), [XQuery Function Documentation](https://exist-db.org/exist/apps/fundocs/index.html), [Getting Started with Web Application Development in eXist](https://exist-db.org/exist/apps/doc/development-starter) and [all eXist documentation](https://exist-db.org/exist/apps/doc/)
- [XQuery in MarkLogic](https://docs.marklogic.com/guide/xquery). See also [Application Developer's Guide](https://docs.marklogic.com/guide/app-dev) and [all MarkLogic documentation](https://docs.marklogic.com/)
- [XQuery in Saxon](https://www.saxonica.com/html/documentation11/using-xquery/). See also Saxon's [XQuery 3.1 Conformance](https://www.saxonica.com/html/documentation11/conformance/xquery31.html).

## Mailing lists, forums

- XQuery-Talk: a mailing list best for general XQuery questions and discussion. [Subscribe](https://x-query.com/mailman/listinfo/talk). [Archives](https://x-query.markmail.org/).
- [Stack Overflow](https://stackoverflow.com/questions/tagged/xquery) has many active users who answer XQuery questions.
- Implementation mailing lists:
- BaseX-talk: [Subscribe](https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk). [Archives](https://mailman.uni-konstanz.de/pipermail/basex-talk/).
- eXist-open: [Subscribe](https://lists.sourceforge.net/lists/listinfo/exist-open). [Archives](https://exist-open.markmail.org/).
- MarkLogic-developer: [Subscribe](https://developer.marklogic.com/mailman/listinfo/general). [Archives](https://marklogic.markmail.org/).
- Slack:
- [XML.com Slack](https://www.xml.com/news/2020-04-slack-workspace-for-the-xml-community/)
- [Digital Humanities Slack #xquery channel](https://literaturegeek.com/2016/07/06/digital-humanities-slack-community-design)
- [eXist-db Slack](https://join.slack.com/t/exist-db/shared_invite/enQtNjQ4MzUyNTE4MDY3LWNkYjZjMmZkNWQ5MDBjODQ3OTljNjMyODkwNmY1MzQwNjUwZjMzZTY1MGJkMjY5NDFhOWZjMDZiMDdhMzY4NGY)

## Other lists of XQuery learning materials

- [XQuery](http://www.rpbourret.com/xml/XMLDBLinks.htm#XQuery), from "XML / Database Links", by Ronald Bourret. Last updated 2011 but still useful.