Programming languages

Introduction to XQuery Language

Jump to article

Understanding XQuery: A Comprehensive Overview of XML Query Language

XQuery is a powerful query and functional programming language designed to query and transform collections of structured and unstructured data, particularly in the form of XML documents. The language is versatile, supporting multiple data formats such as text, JSON, and binary, often through vendor-specific extensions. Developed under the aegis of the World Wide Web Consortium (W3C), XQuery was specifically crafted to address the need for efficient querying of XML data and seamlessly integrate with other W3C standards such as XPath and XSLT.

Origins and Development

The development of XQuery began as part of the XML Query Working Group at the W3C, which sought to create a language that could enable sophisticated querying and transformation of XML data. The goal was clear: to provide web developers and data engineers with the ability to access XML data with the flexibility of querying and manipulation similar to relational databases. XQuery is particularly notable for its functional programming paradigm, offering developers an elegant solution for processing large datasets, typically stored in XML format.

The first version, XQuery 1.0, was officially recognized as a W3C Recommendation on January 23, 2007. This milestone marked XQuery’s maturity as a fully-fledged query language capable of handling both simple and complex queries over XML documents. Following its success, subsequent versions of XQuery were released: XQuery 3.0 became a W3C Recommendation on April 8, 2014, and XQuery 3.1 followed on March 21, 2017. Each new version introduced improvements in functionality, efficiency, and integration capabilities, cementing XQuery’s position as a leading language for XML querying and transformation.

Key Features of XQuery

One of the primary strengths of XQuery lies in its rich feature set, which provides a broad range of tools for extracting, manipulating, and transforming data. Below are some key features of the language:

  • XPath Integration: XQuery is built upon XPath, a language for navigating XML documents. XPath allows users to query XML data in a manner that is both intuitive and efficient. XQuery builds upon this foundation, enabling more complex operations.

  • Functional Programming: XQuery incorporates functional programming constructs, including recursion, higher-order functions, and immutability, which makes it a powerful tool for transforming data in a declarative manner.

  • Support for Various Data Types: While XQuery is primarily known for its work with XML data, it has been extended to support other data formats, such as JSON and binary data. This versatility allows developers to use XQuery in a variety of contexts beyond XML.

  • Optimized for Large Datasets: XQuery is particularly effective when working with large collections of data. The language’s declarative nature allows for the efficient querying and transformation of XML documents, even when dealing with vast amounts of data.

  • Modular and Extensible: XQuery is not a monolithic language; rather, it allows for modularity through functions and libraries. This extensibility enables developers to add custom functionality as needed for specific applications.

Syntax and Structure

XQuery follows a syntax that is relatively straightforward for anyone familiar with XML or functional programming languages. The core syntax is similar to SQL, where queries are written to select data from XML documents. However, XQuery offers more flexibility and power due to its functional programming heritage.

For example, a simple XQuery expression to retrieve all the titles from an XML document might look as follows:

xquery
for $book in doc("books.xml")//book return $book/title

In this query, the doc() function loads the XML document, and the //book XPath expression selects all elements within the document. The for expression iterates over each element, and the return clause specifies the data to be returned—in this case, the </code> of each book.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="13" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> <p>XQuery also supports more advanced constructs, including:</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="14" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> <ul> <li><strong>For Loops</strong>: For iterating over data</li> <li><strong>Let Expressions</strong>: To bind variables</li> <li><strong>Where Clauses</strong>: For filtering data based on conditions</li> <li><strong>Order By Clauses</strong>: To sort results</li> <li><strong>Grouping</strong>: For aggregating data</li> </ul> <h3 id="xquery-in-the-real-world">XQuery in the Real World</h3> <p>XQuery has found widespread application in industries that rely heavily on XML and large datasets. It is commonly used in fields such as:</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="15" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> <ul> <li> <p><strong>Web Development</strong>: As the World Wide Web continues to evolve, XQuery’s ability to handle structured XML and semi-structured data makes it ideal for web applications that need to interact with large datasets.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="16" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> </li> <li> <p><strong>Data Transformation</strong>: XQuery’s power lies in transforming data from one format to another, making it a go-to tool for ETL (Extract, Transform, Load) processes. For instance, transforming XML data into a format compatible with other systems, such as databases or JSON-based APIs.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="17" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> </li> <li> <p><strong>Content Management Systems (CMS)</strong>: Many CMS platforms use XQuery to query and manipulate XML-based content repositories, enabling more efficient management of large content collections.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="18" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> </li> <li> <p><strong>Business Intelligence and Analytics</strong>: XQuery’s ability to query and process large datasets makes it suitable for data analysis applications, where extracting insights from structured and unstructured data is key.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="19" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> </li> </ul> <h3 id="integration-with-other-technologies">Integration with Other Technologies</h3> <p>XQuery is not an isolated language; rather, it is frequently used in conjunction with other technologies and standards. One of the most important relationships is with <strong>XSLT</strong> (Extensible Stylesheet Language Transformations), another W3C standard for transforming XML documents. While XSLT focuses on transforming XML into different formats (e.g., HTML, plain text), XQuery focuses on querying XML data.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="20" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> <p>XQuery also integrates seamlessly with <strong>XPath</strong>, a language designed to navigate XML structures. XPath serves as the core mechanism for selecting data within XML documents, and its integration into XQuery makes querying XML documents efficient and easy.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="21" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> <p>Moreover, XQuery has strong support for <strong>Web Services</strong>, particularly those that rely on XML-based communication protocols such as SOAP. As a result, it is often used in the context of service-oriented architectures (SOAs) and web services to perform queries and transformations on XML data.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="22" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> <h3 id="challenges-and-limitations">Challenges and Limitations</h3> <p>Despite its many advantages, XQuery is not without its challenges. Some of the limitations of the language include:</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="23" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> <ul> <li> <p><strong>Learning Curve</strong>: For developers who are new to functional programming or XML, XQuery can present a steep learning curve. Although the syntax is straightforward, mastering the full range of features requires familiarity with both XML and functional programming concepts.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="24" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> </li> <li> <p><strong>Performance Considerations</strong>: While XQuery is optimized for handling large datasets, performance can still be a concern in certain situations. This is particularly true when working with very large XML documents or datasets that require complex transformations.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="25" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> </li> <li> <p><strong>Limited Tooling Support</strong>: While XQuery has robust support in some environments, such as within XML databases, the tooling and libraries available for XQuery are still less mature compared to those for more mainstream languages like SQL or Python.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="26" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> </li> <li> <p><strong>Vendor-Specific Extensions</strong>: Some implementations of XQuery are extended with vendor-specific features that limit portability between different systems. Developers must be cautious when working with these extensions, as they may reduce the portability of their queries and transformations.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="27" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> </li> </ul> <h3 id="future-of-xquery">Future of XQuery</h3> <p>Despite the challenges, XQuery remains an important tool for data transformation and querying, particularly in environments where XML plays a central role. As data formats evolve and become more complex, XQuery will likely continue to evolve alongside them. Given its robust capabilities, XQuery will maintain its relevance, particularly in applications where XML and data transformation remain crucial.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="28" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> <h3 id="conclusion">Conclusion</h3> <p>In conclusion, XQuery is an essential tool for querying and transforming XML and other data formats. With its rich feature set, functional programming style, and strong integration with other W3C standards, XQuery remains a cornerstone technology for handling structured and unstructured data. As XML continues to be a dominant format in web services, content management, and business applications, XQuery’s role will remain pivotal in enabling flexible and efficient data processing. Whether you are developing web applications, managing content, or transforming large datasets, XQuery offers a powerful and scalable solution to meet your needs.</p><div class="fsl-ad-slot fsl-ad-slot--paragraph" data-fsl-article-ad="29" data-nosnippet><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3293364314201893" data-ad-slot="2303082872" data-ad-format="auto" data-full-width-responsive="true"></ins></div> </div> </div> </div> </div> <div class="article-ad"></div> <footer class="article-footer"> <section class="article-correction"> <div><span class="eyebrow">HELP US STAY ACCURATE</span><h2>Spot something that needs attention?</h2><p>Send the exact page and issue to our editorial review queue.</p></div> <a href="https://freesourcelibrary.com/report-an-issue/?article_url=https://freesourcelibrary.com/introduction-to-xquery-language/">Report this article</a> </section> </footer> <section class="related-posts"> <div class="section-heading"><h2>Read next</h2></div> <div class="related-grid"> <article class="post-card post-card--standard"> <a class="post-card__image" href="https://freesourcelibrary.com/introduction-to-xql-query-language-2/" tabindex="-1" aria-hidden="true"> <img width="620" height="349" src="https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured.webp" class="post-image wp-post-image" alt="Abstract scientific illustration of an open book and orbital lines" loading="eager" decoding="async" srcset="https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured.webp 1672w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-300x169.webp 300w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-1024x576.webp 1024w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-768x432.webp 768w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-1536x864.webp 1536w" sizes="auto, (max-width: 620px) 100vw, 620px" fetchpriority="high" /> </a> <div class="post-card__body"> <a class="post-kicker" href="https://freesourcelibrary.com/category/technology-computing/programming-languages/">Programming languages</a> <h3 class="post-card__title"><a href="https://freesourcelibrary.com/introduction-to-xql-query-language-2/">Introduction to XQL Query Language</a></h3> <div class="post-meta"><time datetime="2025-01-12T11:17:53+03:00">January 12, 2025</time><span>4 min read</span></div> </div> <button class="fsl-save-button fsl-save-button--card" type="button" data-fsl-save data-id="232166" data-title="Introduction to XQL Query Language" data-url="https://freesourcelibrary.com/introduction-to-xql-query-language-2/" data-image="https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured.webp" data-category="Programming languages" data-minutes="4" aria-pressed="false" aria-label="Save Introduction to XQL Query Language for later"> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6 4.5h12V21l-6-3.7L6 21V4.5Z"></path></svg><span>Save</span> </button> </article> <article class="post-card post-card--standard"> <a class="post-card__image" href="https://freesourcelibrary.com/pldb-software-library-overview/" tabindex="-1" aria-hidden="true"> <img width="620" height="349" src="https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured.webp" class="post-image wp-post-image" alt="Abstract scientific illustration of an open book and orbital lines" loading="lazy" decoding="async" srcset="https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured.webp 1672w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-300x169.webp 300w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-1024x576.webp 1024w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-768x432.webp 768w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-1536x864.webp 1536w" sizes="auto, (max-width: 620px) 100vw, 620px" /> </a> <div class="post-card__body"> <a class="post-kicker" href="https://freesourcelibrary.com/category/technology-computing/programming-languages/">Programming languages</a> <h3 class="post-card__title"><a href="https://freesourcelibrary.com/pldb-software-library-overview/">PLDB Software Library Overview</a></h3> <div class="post-meta"><time datetime="2025-01-12T11:12:40+03:00">January 12, 2025</time><span>4 min read</span></div> </div> <button class="fsl-save-button fsl-save-button--card" type="button" data-fsl-save data-id="232162" data-title="PLDB Software Library Overview" data-url="https://freesourcelibrary.com/pldb-software-library-overview/" data-image="https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured.webp" data-category="Programming languages" data-minutes="4" aria-pressed="false" aria-label="Save PLDB Software Library Overview for later"> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6 4.5h12V21l-6-3.7L6 21V4.5Z"></path></svg><span>Save</span> </button> </article> <article class="post-card post-card--standard"> <a class="post-card__image" href="https://freesourcelibrary.com/wolontis-bell-interpreter-overview/" tabindex="-1" aria-hidden="true"> <img width="620" height="349" src="https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured.webp" class="post-image wp-post-image" alt="Abstract scientific illustration of an open book and orbital lines" loading="lazy" decoding="async" srcset="https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured.webp 1672w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-300x169.webp 300w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-1024x576.webp 1024w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-768x432.webp 768w, https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured-1536x864.webp 1536w" sizes="auto, (max-width: 620px) 100vw, 620px" /> </a> <div class="post-card__body"> <a class="post-kicker" href="https://freesourcelibrary.com/category/technology-computing/programming-languages/">Programming languages</a> <h3 class="post-card__title"><a href="https://freesourcelibrary.com/wolontis-bell-interpreter-overview/">Wolontis-Bell Interpreter Overview</a></h3> <div class="post-meta"><time datetime="2025-01-12T11:05:25+03:00">January 12, 2025</time><span>2 min read</span></div> </div> <button class="fsl-save-button fsl-save-button--card" type="button" data-fsl-save data-id="232156" data-title="Wolontis-Bell Interpreter Overview" data-url="https://freesourcelibrary.com/wolontis-bell-interpreter-overview/" data-image="https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured.webp" data-category="Programming languages" data-minutes="2" aria-pressed="false" aria-label="Save Wolontis-Bell Interpreter Overview for later"> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6 4.5h12V21l-6-3.7L6 21V4.5Z"></path></svg><span>Save</span> </button> </article> </div> </section> </article> <aside class="editorial-sidebar" aria-label="More from Free Source Library"> <section class="sidebar-module"> <div class="section-heading section-heading--dark"><h2>Editor’s picks</h2></div> <ol class="ranked-list"> <li> <span>01</span> <div><a href="https://freesourcelibrary.com/cop17-biodiversity-summit-2026-global-review/">COP17 Biodiversity Summit 2026: What the Global Review Means</a><time datetime="2026-10-21T16:29:47+03:00">Oct 21, 2026</time></div> </li> <li> <span>02</span> <div><a href="https://freesourcelibrary.com/connected-car-cybersecurity-apps-cloud-risks/">Connected-Car Cybersecurity: Apps and Cloud Are the New Weak Point</a><time datetime="2026-10-21T16:29:43+03:00">Oct 21, 2026</time></div> </li> <li> <span>03</span> <div><a href="https://freesourcelibrary.com/ai-in-warfare-human-control-shrinking/">AI in Warfare: Why Human Control Is Shrinking</a><time datetime="2026-10-21T16:29:39+03:00">Oct 21, 2026</time></div> </li> <li> <span>04</span> <div><a href="https://freesourcelibrary.com/unep-emissions-gap-report-2026-1-5c-overshoot/">UNEP Emissions Gap Report 2026: What the 1.5°C Overshoot Means</a><time datetime="2026-10-21T16:29:35+03:00">Oct 21, 2026</time></div> </li> <li> <span>05</span> <div><a href="https://freesourcelibrary.com/orionid-meteor-shower-2026-viewing-guide/">Orionid Meteor Shower 2026: Peak Time and Viewing Guide</a><time datetime="2026-10-21T16:29:28+03:00">Oct 21, 2026</time></div> </li> </ol> </section> <section class="sidebar-module standards-card"> <span class="eyebrow">OUR PROMISE</span> <h2>Knowledge you can inspect</h2> <p>Learn how we source, review and correct our explanations.</p> <a href="https://freesourcelibrary.com/editorial-policy/">Read our editorial standards <span aria-hidden="true">→</span></a> </section> </aside> </div> </main> <footer class="site-footer" data-site-footer> <div class="footer-atmosphere" aria-hidden="true"><i></i><i></i><i></i></div> <section class="footer-hero site-container" aria-labelledby="footer-heading"> <div class="footer-hero__copy"> <span class="footer-kicker"><i aria-hidden="true"></i> The library never closes</span> <h2 id="footer-heading">Follow the question.<br><em>Find the context.</em></h2> <p>Readable explanations across science, technology, health, history and everyday life—built to help you understand, not just scroll.</p> <ul class="footer-promises" aria-label="Our publishing commitments"> <li><span aria-hidden="true">✓</span> Source-aware</li> <li><span aria-hidden="true">✓</span> Reader-first</li> <li><span aria-hidden="true">✓</span> Corrections welcomed</li> </ul> </div> <div class="footer-search-card"> <header><span>Find your next explanation</span><b aria-hidden="true">01</b></header> <form role="search" action="https://freesourcelibrary.com/" method="get"> <label class="screen-reader-text" for="footer-search">Search the library</label> <svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="11" cy="11" r="6.5"></circle><path d="m16 16 4 4"></path></svg> <input id="footer-search" type="search" name="s" placeholder="Search a question, subject, or idea" autocomplete="off"> <button type="submit" aria-label="Search"><span>Search</span><b aria-hidden="true">→</b></button> </form> <div class="footer-search-card__topics"><span>Start with</span><a href="https://freesourcelibrary.com/category/science-nature/">Science & Nature</a><a href="https://freesourcelibrary.com/category/technology-computing/">Technology & Computing</a><a href="https://freesourcelibrary.com/category/health-medicine/">Health & Medicine</a></div> </div> </section> <div class="footer-signal" aria-hidden="true"><span></span><b>Evidence</b><span></span><b>Context</b><span></span><b>Clarity</b><span></span></div> <div class="footer-directory site-container"> <section class="footer-brand-panel"> <a class="site-brand" href="https://freesourcelibrary.com/" rel="home"><svg class="brand-mark brand-mark--animated" viewBox="0 0 64 64" width="64" height="64" aria-hidden="true" focusable="false"> <path class="brand-orbit" d="M6.5 37.5c2.8 9 19.1 12.4 36.3 7.4 17.2-5 28.8-16.4 26-25.4-2-6.4-11-9.8-22.2-9.2" pathLength="100"/> <circle class="brand-spark" cx="49.2" cy="11.8" r="4.2"/> <path class="brand-page brand-page--left" d="M12 25.2c7.2-.2 13.7 1.8 19.4 6.2v20.1c-5.7-4.1-12.2-6.2-19.4-6.2V25.2Z"/> <path class="brand-page brand-page--right" d="M51 25.2c-7.2-.2-13.7 1.8-19.4 6.2v20.1c5.7-4.1 12.2-6.2 19.4-6.2V25.2Z"/> <path class="brand-spine" d="M31.5 31.4v20.1"/> <path class="brand-line" d="M17 31.2c3.5.3 6.7 1.2 9.7 2.8M46 31.2c-3.5.3-6.7 1.2-9.7 2.8"/> </svg><span><strong>Free Source Library</strong><small>KNOWLEDGE, EXPLAINED</small></span></a> <p>Complex subjects, explained with calm, useful context for curious people everywhere.</p> <a class="footer-trust-link" href="https://freesourcelibrary.com/trust-center/"><span>See how we work</span><b aria-hidden="true">↗</b></a> <div class="footer-live" aria-label="Live site status and time"> <span><i aria-hidden="true"></i> Library online</span> <span>Local <strong data-footer-local>—:—</strong></span> <span>UTC <strong data-footer-utc>—:—</strong></span> </div> </section> <nav class="footer-navigation" aria-label="Footer navigation"> <details class="footer-link-group" open> <summary><span><small>01</small> Explore</span><i aria-hidden="true"></i></summary> <ul> <li><a href="https://freesourcelibrary.com/category/science-nature/"><span>Science & Nature</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/category/technology-computing/"><span>Technology & Computing</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/category/health-medicine/"><span>Health & Medicine</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/category/history-society/"><span>History & Society</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/tools/">Useful tools</a></li> </ul> </details> <details class="footer-link-group" open> <summary><span><small>02</small> More topics</span><i aria-hidden="true"></i></summary> <ul> <li><a href="https://freesourcelibrary.com/category/education-skills/"><span>Education & Skills</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/category/business-economics/"><span>Business & Economics</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/category/places-travel/"><span>Places & Travel</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/category/lifestyle-home/"><span>Lifestyle & Home</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/categories/"><span>All topics</span><b aria-hidden="true">↗</b></a></li> </ul> </details> <details class="footer-link-group" open> <summary><span><small>03</small> Our standards</span><i aria-hidden="true"></i></summary> <ul> <li><a href="https://freesourcelibrary.com/trust-center/"><span>Trust center</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/editorial-policy/"><span>Editorial policy</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/sources-verification/"><span>Sources & verification</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/corrections-policy/"><span>Corrections</span><b aria-hidden="true">↗</b></a></li> </ul> </details> <details class="footer-link-group" open> <summary><span><small>04</small> Reader desk</span><i aria-hidden="true"></i></summary> <ul> <li><a href="https://freesourcelibrary.com/last-article/"><span>Latest articles</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/about-us/"><span>About us</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/contact-us/"><span>Contact us</span><b aria-hidden="true">↗</b></a></li> <li><a href="https://freesourcelibrary.com/report-an-issue/"><span>Report an issue</span><b aria-hidden="true">↗</b></a></li> </ul> </details> </nav> </div> <div class="footer-bottom"> <div class="site-container footer-bottom__inner"> <p><strong>© 2026 Free Source Library.</strong><span>Knowledge, explained.</span></p> <nav aria-label="Legal navigation"> <a href="https://freesourcelibrary.com/privacy-policy/">Privacy</a> <a href="https://freesourcelibrary.com/cookie-policy/">Cookies</a> <a href="https://freesourcelibrary.com/terms-of-use/">Terms</a> <a href="https://freesourcelibrary.com/publisher-information/">Publisher</a> <a href="#privacy-choices" data-fsl-privacy-open>Privacy choices</a> <a href="https://freesourcelibrary.com/contact-us/">Contact</a> </nav> <a class="footer-backtotop" href="#" aria-label="Back to the top of the page">Back to top <span aria-hidden="true">↑</span></a> </div> </div> </footer> <button class="fsl-privacy-launcher" type="button" data-fsl-privacy-open aria-label="Privacy and cookie choices" aria-controls="fsl-privacy-choices" aria-expanded="false" hidden> <svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 2.5 4.5 5.8v5.1c0 5 3.1 9.1 7.5 10.6 4.4-1.5 7.5-5.6 7.5-10.6V5.8L12 2.5Z"/><path d="M9 12.1 11.1 14l4-4.3"/></svg> <span class="fsl-privacy-sr">Open privacy and cookie choices</span> </button> <section class="fsl-privacy-panel" id="fsl-privacy-choices" role="dialog" aria-modal="false" aria-labelledby="fsl-privacy-title" aria-describedby="fsl-privacy-summary" hidden> <button class="fsl-privacy-panel__close" type="button" data-fsl-privacy-close aria-label="Close privacy choices" hidden>×</button> <div class="fsl-privacy-panel__heading"> <span class="fsl-privacy-panel__eyebrow">Your privacy controls</span> <h2 id="fsl-privacy-title">Privacy, cookies & site services</h2> <p id="fsl-privacy-summary">Essential storage runs the site and remembers this choice. Optional analytics helps us understand how the library is used. Article advertising remains enabled, but advertising-storage and personalization signals stay disabled.</p> </div> <ul class="fsl-privacy-panel__services" aria-label="Cookie and service status"> <li><span>Essential storage</span><strong>Always on</strong></li> <li><span>Analytics & tracking</span><strong>Optional</strong></li> <li><span>Article advertising</span><strong>Articles only</strong></li> <li><span>Personalized advertising</span><strong>Off</strong></li> </ul> <p class="fsl-privacy-panel__detail">Allowing analytics lets our self-hosted Matomo and Google Analytics measure visits and interactions. Rejecting keeps optional measurement cookies off. Google may still receive limited technical requests required to serve non-personalized or limited ads inside individual articles.</p> <div class="fsl-privacy-panel__actions"> <button class="fsl-privacy-panel__button fsl-privacy-panel__button--secondary" type="button" data-fsl-consent-choice="essential">Reject optional tracking</button> <button class="fsl-privacy-panel__button fsl-privacy-panel__button--primary" type="button" data-fsl-consent-choice="analytics">Allow analytics & tracking</button> </div> <nav class="fsl-privacy-panel__links" aria-label="Privacy information"> <a href="https://freesourcelibrary.com/cookie-policy/">Cookie policy</a> <a href="https://freesourcelibrary.com/privacy-policy/">Privacy policy</a> <span>Change this choice anytime from the footer.</span> </nav> </section> <p class="fsl-privacy-sr" id="fsl-privacy-status" role="status" aria-live="polite"></p> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/fsl-newsroom/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script id="fsl-reader-hub-js-extra"> var FSLReaderHub = {"version":"1.1.2","article":{"id":209808,"title":"Introduction to XQuery Language","url":"https://freesourcelibrary.com/introduction-to-xquery-language/","image":"https://freesourcelibrary.com/wp-content/uploads/free-source-library-default-featured.webp","category":"Programming languages","minutes":6},"homeUrl":"https://freesourcelibrary.com/"}; //# sourceURL=fsl-reader-hub-js-extra </script> <script data-cfasync="false" data-wp-strategy="defer" defer id="fsl-reader-hub-js" src="https://freesourcelibrary.com/wp-content/plugins/fsl-reader-hub/assets/reader-hub.js?ver=1792173495"></script> <script data-cfasync="false" data-wp-strategy="defer" defer id="fsl-newsroom-js" src="https://freesourcelibrary.com/wp-content/themes/fsl-newsroom/assets/js/site.js?ver=1792173934"></script> <script id="googlesitekit-consent-mode-js" src="https://freesourcelibrary.com/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-consent-mode-5ef17bce870a966299fc.js"></script> <script id="wp-consent-api-js-extra"> var consent_api = {"consent_type":"optin","waitfor_consent_hook":"","cookie_expiration":"180","cookie_prefix":"wp_consent","services":[]}; //# sourceURL=wp-consent-api-js-extra </script> <script id="wp-consent-api-js" src="https://freesourcelibrary.com/wp-content/plugins/wp-consent-api/assets/js/wp-consent-api.min.js?ver=2.1.0"></script> <script data-cfasync="false" id="fsl-privacy-consent-js-before"> window.FSLPrivacyConsent={"cookieName":"fsl_privacy_consent","policyVersion":"2026-10-22","cookieDays":180,"matomoUrl":"https:\/\/all2.atico-jo.com\/","matomoSiteId":"11","googleMeasurementId":"G-SVDRR4KDYE"}; //# sourceURL=fsl-privacy-consent-js-before </script> <script data-cfasync="false" id="fsl-privacy-consent-js" src="https://freesourcelibrary.com/wp-content/plugins/fsl-privacy-consent/assets/privacy-consent-1.1.1.js?ver=1.1.1"></script> <script id="fsl-article-ad-initializer" data-cfasync="false"> (function(){ 'use strict'; function update(unit){ var wrapper=unit.closest('.fsl-ad-slot'),status=unit.getAttribute('data-ad-status'); if(!wrapper){return;} if(status==='filled'||status==='unfilled'){wrapper.setAttribute('data-fsl-ad-state',status);} } function initialize(unit){ if(unit.getAttribute('data-fsl-ad-requested')==='1'){return;} unit.setAttribute('data-fsl-ad-requested','1'); new MutationObserver(function(){update(unit);}).observe(unit,{attributes:true,attributeFilter:['data-ad-status']}); update(unit); try{(window.adsbygoogle=window.adsbygoogle||[]).push({});}catch(error){unit.closest('.fsl-ad-slot').setAttribute('data-fsl-ad-state','unfilled');} } document.querySelectorAll('[data-fsl-article-ad] .adsbygoogle').forEach(initialize); }()); </script> </body> </html>