XQuery Training Course

Primary tabs

Client Testimonials


I was very lucky to have one-to-one training and it gave me a good grounding in the subject as well as exploring some of my real use-cases that were really complex

Melissa Harrison - eLife

Course Code


Duration Duration

14 hours (usually 2 days including breaks)

Requirements Requirements

Some knowledge of XML basics. Advanced knowledge of XML-related technologies is beneficial but not required.

Overview Overview

This training provides:

  • A high-level overview and quick tour of XQuery
  • Information to write sophisticated queries, without being bogged down by the details of types, namespaces, and schemas
  • Advanced concepts for users who want to take advantage of modularity, namespaces, typing and schemas
  • Guidelines for working with specific types of data, such as numbers, strings, dates, URIs and processing instructions
  • A complete alphabetical reference to the built-in functions and types

Participants will also learn about XQuery's support for filtering, sorting, and grouping data, as well as how to use FLWOR expressions, XPath, and XQuery tools for extracting and combining information. During the training they will find out how to apply all of these tools to a wide variety of data sources, and how to recombine information from multiple sources into a single final output result.

Course Outline Course Outline

XQuery Introduction

  • What Is XQuery?
  • Path Expressions
  • FLWOR (for, let, where, order by, return)
  • Functions
  • Joins

XQuery Basics

  • The Design of the XQuery Language
  • XQuery in Context
  • Processing Queries
  • The XQuery Data Model
  • Types
  • Namespaces


  • Categories of Expressions
  • Keywords and Names
  • Whitespace in Queries
  • Literals
  • Variables
  • Function Calls
  • Comments
  • Evaluation Order
  • Comparison Expressions
  • "if-then-else" Expressions
  • "and/or" Expressions


  • Path Expressions
  • Predicates
  • Dynamic Paths
  • Input Documents
  • Context


  • Including Elements and Attributes from the Input Document
  • Direct Constructors
  • Computed Constructors

Selecting and Joining Using FLWORs

  • Selecting with Path Expressions
  • FLWOR Expressions
  • Quantified Expressions
  • Selecting Distinct Values
  • Joins

Sorting and Grouping

  • Sorting in XQuery
  • Grouping
  • Aggregating Values


  • Built-in Functions
  • User-Defined Functions

Advanced Queries

  • Copying Input Elements with Modifications
  • Working with Positions and Sequence Numbers
  • Combining Results
  • Using Intermediate XML Documents

XML Namespace

  • XQuery and an Namespace 
  • Namespace Declaration


  • The XQuery Type System
  • The Built-in Types
  • Types, Nodes, and Atomic Values
  • Type Checking in XQuery
  • Automatic Type Conversions
  • Sequence Types
  • Constructors and Casting

Prolog and Module

  • Structure of a Query: Prolog and Body
  • Assembling Queries from Multiple Modules
  • Variable Declarations
  • Declaring External Functions

Using Schemas

  • What Is a Schema?
  • Why Use Schemas with Queries?
  • W3C XML Schema: A Brief Overview
  • In-Scope Schema Definitions
  • Schema Validation and Type Assignment
  • Sequence Types and Schemas

Static Typing

  • What Is Static Typing?
  • The Typeswitch Expression
  • The Treat Expression
  • Type Declarations
  • The zero-or-one, one-or-more, and exactly-one Functions

Principles of Query Design

  • Query Design:
    • Clarity
    • Modularity
    • Robustness
  • Error Handling
  • Performance


  • Constructing and comparing Numeric Values
  • Arithmetic Operations
  • Functions on Numbers


  • xs:string Type
  • Constructing, comparing and manipulating Strings
  • Substrings, length
  • Concatenating and Splitting Strings
  • Whitespace
  • Internationalization

Regular Expressions

  • The Structure of a Regular Expression
  • Representing Individual Characters
  • Representing Any Character
  • Representing Groups of Characters
  • Character Class Expressions
  • Reluctant Quantifiers
  • Anchors
  • Back-References
  • Using Flags
  • Using Sub-Expressions with Replacement Variables

Date and Time Types

  • Extracting Components of Dates, Times, and Durations
  • Using Arithmetic Operators on Dates, Times, and Durations
  • The Date Component Types

Qualified Names

  • Working with Qualified Names
  • URIs, IDs

Other XML Components

  • Documents
  • Text Nodes
  • Comments
  • PI (Processing Instructions)
  • XML Entity

XQuery-Related Standards

  • XML Serialization
  • XQueryX
  • XQuery Update Facility
  • Full-Text Search
  • XQJ - XQuery API for Java

Implementation-Specific Features

  • XML Version
  • Setting the Query Context
  • Option Declarations and Extension Expressions
  • Serialization Parameters

XQuery vs. SQL

  • XML Data vs. Relational Data
  • SQL Syntax vs. XQuery Syntax
  • SQL and XQuery

XQuery vs. XSLT

  • XQuery and XPath
  • XQuery vs. XSLT

Public Classroom Public Classroom
Participants from multiple organisations. Topics usually cannot be customised
From 1930EUR
Private Classroom Private Classroom
Participants are from one organisation only. No external participants are allowed. Usually customised to a specific group, course topics are agreed between the client and the trainer.
Private Remote Private Remote
The instructor and the participants are in two different physical locations and communicate via the Internet
From 2040EUR
Request quote

The more delegates, the greater the savings per delegate. Table reflects price per delegate and is used for illustration purposes only, actual prices may differ.

Number of Delegates Public Classroom Private Remote
1 1930EUR 2040EUR
2 1290EUR 1320EUR
3 1077EUR 1080EUR
4 970EUR 960EUR
Cannot find a suitable date? Choose Your Course Date >>
Too expensive? Suggest your price

Related Categories

Course Discounts

Upcoming Courses

VenueCourse DateCourse Price [Remote/Classroom]
NürnbergMon, 2016-11-14 09:302040EUR / 2540EUR
HamburgThu, 2016-11-17 09:302040EUR / 2540EUR
MünchenThu, 2016-11-17 09:302040EUR / 2540EUR
LeipzigTue, 2016-11-22 09:302040EUR / 2540EUR
BremenTue, 2016-12-06 09:302040EUR / 2540EUR

Some of our clients