Learning the language

This page is intended for those who want to get started with XPath 3.1, XQuery 3.1, and XQuery Update Facility 3.0. Using these languages can be confusing, especially when you are used to working with Object Oriented (C#, Java, C++, ...) or Procedural (C, ...) programming languages.

Specific information about these languages can be hard to find. This page and its subpages aim to fill the gap between the sometimes sparse information available online and technical language specifications.


XPath 3.1, XQuery 3.1, and XQuery Update Facility 3.0 are W3C recommendations. This means that these languages are considered Web standards. Learning these languages enables you to use them in any application or programming language that supports them. This is why these pages are not specific to any of the Fonto products.

XPath 3.1

The primary purpose of XPath 3.1 is to select nodes from an XML document. The name "XPath" has been derived from one of its most important expressions: the Path Expression. The path expression allows you to select nodes in an XML document.

XQuery 3.1

XQuery 3.1 is an extension of XPath 3.1. Thus, any expression that is valid in XPath 3.1 is valid in XQuery 3.1. In contrast to XPath, XQuery is a programming language.

XQuery Update Facility 3.0

XQuery Update Facility 3.0 is in turn an extension of XQuery. The XQuery Update Facility adds facilities to XQuery to be able to update an XML document. This is currently the default language used in any XPath or XQuery related Fonto API.

W3C Recommendations


The information is divided into multiple pages. Every page can be seen as a chapter that covers one specific topic.

You will find many links to the W3C recommendations throughout these pages. The recommendations can be hard to read at times, but they are the best source of information when you are looking for a specific language detail.

You will also find many ready to run examples. These examples include a link to the playground where you can play with the example yourself.

The basics

The basics page introduces the basics of XPath and XQuery. Start here first!

This page introduces concepts like document order, atomization, and effective boolean value. It also explains what items and sequences are.

Filtering sequences

The XPath XQuery Learning the language Filtering sequences page explains how a sequence can be filtered.

Selecting nodes

The Selecting nodes page explains how nodes can be selected using axes.

This page introduces path expressions, step expressions, axes, node tests, and the abbreviated syntax.

Literals and variables

The Literals and variables page shows how variables can be declared and how literals can be used.