{"id":17733816,"url":"https://github.com/joewiz/learn-xquery","last_synced_at":"2026-01-08T16:52:16.132Z","repository":{"id":32437373,"uuid":"36015505","full_name":"joewiz/learn-xquery","owner":"joewiz","description":"A list of great articles, blog posts, and books for learning XQuery","archived":false,"fork":false,"pushed_at":"2024-07-18T14:09:39.000Z","size":64,"stargazers_count":41,"open_issues_count":0,"forks_count":6,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-07-18T17:51:52.050Z","etag":null,"topics":["functional-programming","learning-xquery","query-language","xml","xquery"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"spatie/laravel-permission","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joewiz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-05-21T13:52:00.000Z","updated_at":"2024-07-18T14:09:42.000Z","dependencies_parsed_at":"2024-10-26T03:27:42.047Z","dependency_job_id":"92cbf5ea-dd6e-4b43-a109-9876f428c0db","html_url":"https://github.com/joewiz/learn-xquery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joewiz%2Flearn-xquery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joewiz%2Flearn-xquery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joewiz%2Flearn-xquery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joewiz%2Flearn-xquery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joewiz","download_url":"https://codeload.github.com/joewiz/learn-xquery/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246517241,"owners_count":20790385,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["functional-programming","learning-xquery","query-language","xml","xquery"],"created_at":"2024-10-25T23:06:12.501Z","updated_at":"2026-01-08T16:52:16.093Z","avatar_url":"https://github.com/joewiz.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Learn XQuery: A list of great articles, blog posts, and books for learning XQuery\n\nLet'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. \n\nAlso, 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\u0026q=language%3AXQuery\u0026type=Repositories\u0026ref=searchresults), and [questions about XQuery on Stack Overflow](https://stackoverflow.com/questions/tagged/xquery). \n\n## Gentle introductions\n\n- [W3Schools XQuery](https://www.w3schools.com/xml/xquery_intro.asp). Limited to XQuery 1.0, but a quick overview.\n- [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).\n\n## Materials from XQuery courses\n\n- [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.)\n- [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.\n- [Digital Humanities Courses: Tutorials + Exercises](https://newtfire.org/courses/tutorials/), by Elisa E. Beshero-Bondar. Covers many topics, including XPath and XQuery.\n- [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.\n- [XQuery Summer Institute](http://xqueryinstitute.org/), hosted at Vanderbilt University in 2015.\n- [XPath and XQuery](https://lagunita.stanford.edu/courses/DB/XPath/SelfPaced/about) ([YouTube](https://www.youtube.com/watch?v=LeD6vMK-znY\u0026list=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.\n- [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*).)\n- [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. \n- [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.\n\n## In-depth introductions\n\nSome 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.\n\n- [XQuery for Humanists](https://www.tamupress.com/book/9781623498290/xquery-for-humanists/), Clifford B. Anderson and Joseph C. Wicentowski, Texas A\u0026M 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/). \n- [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/). \n- [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).\n- [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.\n\n## The specs\n\n- 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).\n- 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/)\n- 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/).\n\n## Latest developments in XQuery\n\n- [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. \n- [Converting Roman numerals with XQuery \u0026 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.\n- [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.\n\n## Thought pieces situating XQuery in the world\n\n- [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.\n- [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.\n- [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.\n- [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.\n- [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.\n- [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.\n\n## More tutorials\n\n- [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.\n- [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.\n- [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.\n- [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.\n\n## Documentation from XQuery implementations about their use of XQuery\n\nIn depth articles on conformance to / divergence from the spec, and links to key articles and documentation:\n\n- [XQuery in BaseX](https://docs.basex.org/wiki/XQuery). See also [all BaseX documentation](https://docs.basex.org/wiki/Main_Page).\n- [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/) \n- [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/)\n- [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).\n\n## Mailing lists, forums\n\n- 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/).\n- [Stack Overflow](https://stackoverflow.com/questions/tagged/xquery) has many active users who answer XQuery questions.\n- Implementation mailing lists: \n    - BaseX-talk: [Subscribe](https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk). [Archives](https://mailman.uni-konstanz.de/pipermail/basex-talk/).\n    - eXist-open: [Subscribe](https://lists.sourceforge.net/lists/listinfo/exist-open). [Archives](https://exist-open.markmail.org/).\n    - MarkLogic-developer: [Subscribe](https://developer.marklogic.com/mailman/listinfo/general). [Archives](https://marklogic.markmail.org/).\n- Slack:\n    - [XML.com Slack](https://www.xml.com/news/2020-04-slack-workspace-for-the-xml-community/)\n    - [Digital Humanities Slack #xquery channel](https://literaturegeek.com/2016/07/06/digital-humanities-slack-community-design)\n    - [eXist-db Slack](https://join.slack.com/t/exist-db/shared_invite/enQtNjQ4MzUyNTE4MDY3LWNkYjZjMmZkNWQ5MDBjODQ3OTljNjMyODkwNmY1MzQwNjUwZjMzZTY1MGJkMjY5NDFhOWZjMDZiMDdhMzY4NGY)\n\n## Other lists of XQuery learning materials\n\n- [XQuery](http://www.rpbourret.com/xml/XMLDBLinks.htm#XQuery), from \"XML / Database Links\", by Ronald Bourret. Last updated 2011 but still useful.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoewiz%2Flearn-xquery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoewiz%2Flearn-xquery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoewiz%2Flearn-xquery/lists"}