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
Expressions
- 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
Paths
- Path Expressions
- Predicates
- Dynamic Paths
- Input Documents
- Context
Constructors
- 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
Functions
- 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 a Namespace
- Namespace Declaration
Types
- 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
Numbers
- Constructing and comparing Numeric Values
- Arithmetic Operations
- Functions on Numbers
Strings
- 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
- CDATA
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
Requirements
Some knowledge of XML basics. Advanced knowledge of XML-related technologies is beneficial but not required.
Testimonials (4)
Theory and excises not separated but after every bigger Topic there were exercises to remember theory in practice
Krzysztof - Nordea
Course - XQuery
The pacing was good enough
Daniel - Nordea
Course - XQuery
Lukasz mainly focused on ensuring we understood the material and frequently called on us to respond. I was almost always engaged in what was happening. :)
Ihor Mykhalevych - OPI PIB
Course - XQuery
Machine Translated
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.