With the XQuery 1.0 standard, you finally have a tool that will make it much easier to search, extract and manipulate information from XML content stored in databases. This in-depth tutorial not only walks you through the XQuery specification, but also teaches you how to program with this widely anticipated query language.
XQuery is for query writers who have some knowledge of XML basics, but not necessarily advanced knowledge of XML-related technologies. It can be used both as a tutorial, by reading cover to cover, and as a reference, by using the comprehensive index and appendixes. Either way, you will find the background knowledge in namespaces, schemas, built-in types and regular expressions that is relevant to writing XML queries. This book 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
You 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. With this book, you will discover 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.
Whether you're coming from SQL, XSLT, or starting from scratch, this carefully paced tutorial takes you through the final 1.0 standard in detail.
Chapter 1 Introduction to XQuery
What Is XQuery?
Easing into XQuery
Path Expressions
FLWORs
Adding XML Elements and Attributes
Functions
Joins
Aggregating and Grouping Values
Chapter 2 XQuery Foundations
The Design of the XQuery Language
XQuery in Context
Processing Queries
The XQuery Data Model
Types
Namespaces
Chapter 3 Expressions: XQuery Building Blocks
Categories of Expressions
Keywords and Names
Whitespace in Queries
Literals
Variables
Function Calls
Comments
Evaluation Order and Parentheses
Comparison Expressions
Conditional (if-then-else) Expressions
Logical (and/or) Expressions
Chapter 4 Navigating Input Documents Using Paths
Path Expressions
Predicates
Dynamic Paths
Input Documents
A Closer Look at Context
Chapter 5 Adding Elements and Attributes to Results
Including Elements and Attributes from the Input Document
Direct Element Constructors
Computed Constructors
Chapter 6 Selecting and Joining Using FLWORs
Selecting with Path Expressions
FLWOR Expressions
Quantified Expressions
Selecting Distinct Values
Joins
Chapter 7 Sorting and Grouping
Sorting in XQuery
Grouping
Aggregating Values
Chapter 8 Functions
Built-in Versus User-Defined Functions
Calling Functions
User-Defined Functions
Chapter 9 Advanced Queries
Copying Input Elements with Modifications
Working with Positions and Sequence Numbers
Combining Results
Using Intermediate XML Documents
Chapter 10 Namespaces and XQuery
XML Namespaces
Namespaces and XQuery
Namespace Declarations in Queries
Controlling Namespace Declarations in Your Results
Chapter 11 A Closer Look at 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
Chapter 12 Queries, Prologs, and Modules
Structure of a Query: Prolog and Body
Assembling Queries from Multiple Modules
Variable Declarations
Declaring External Functions
Chapter 13 Using Schemas with XQuery
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
Chapter 14 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
Chapter 15 Principles of Query Design
Query Design Goals
Clarity
Modularity
Robustness
Error Handling
Performance
Chapter 16 Working with Numbers
The Numeric Types
Constructing Numeric Values
Comparing Numeric Values
Arithmetic Operations
Functions on Numbers
Chapter 17 Working with Strings
The xs:string Type
Constructing Strings
Comparing Strings
Substrings
Finding the Length of a String
Concatenating and Splitting Strings
Manipulating Strings
Whitespace and Strings
Internationalization Considerations
Chapter 18 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
Chapter 19 Working with Dates, Times, and Durations
The Date and Time Types
The Duration Types
Extracting Components of Dates, Times, and Durations
Using Arithmetic Operators on Dates, Times, and Durations
The Date Component Types
Chapter 20 Working with Qualified Names, URIs, and IDs
Working with Qualified Names
Working with URIs
Working with IDs
Chapter 21 Working with Other XML Components
XML Comments
Processing Instructions
Documents
Text Nodes
XML Entity and Character References
CDATA Sections
Chapter 22 Additional XQuery-Related Standards
Serialization
XQueryX
XQuery Update Facility
Full-Text Search
XQuery API for Java (XQJ)
Chapter 23 Implementation-Specific Features
Conformance
XML Version Support
Setting the Query Context
Option Declarations and Extension Expressions
Specifying Serialization Parameters
Chapter 24 XQuery for SQL Users
Relational Versus XML Data Models
Comparing SQL Syntax with XQuery Syntax
Combining SQL and XQuery
SQL/XML
Chapter 25 XQuery for XSLT Users
XQuery and XPath
XQuery Versus XSLT
Differences Between XQuery 1.0/XPath 2.0 and XPath 1.0
The animal on the cover of XQuery is the satyr tragopan (Tragopan satyra), a member of the pheasant family and one of five tragopan species. This bird, sometimes called the crimson horned tragopan, inhabits the Himalayas, from Kashmir east up into Tibet and central China. Its two names are derived from the distinctive appearance of the male--his protruding fleshy outgrowths above the eyes, which look like horns, and his bright red plumage. Both plumage and horns are central to his courtship displays.
Tragopans feed on insects, leaves, sprouts, and seeds and are thought to be monogamous. Although incubation is done entirely by the female, the male may assist in tending the chicks. Most tragopans are good breeders in captivity, adapting well to various cold-weather climates and becoming quite tame.
Four of the five species of tragopans are in danger of extinction due to the destruction of their habitats. Unlike most fowl, tragopans live at very high elevations, ranging from 925 to 3650 meters. In the winter they are typically found in the thickest parts of pine trees, but during mating season they travel upward to the extreme limits of the forest. Finding a high branch, the male tragopan establishes a territorial perch from which he makes mating calls at five-minute intervals. His call, which some have described as similar to that of a goose or young lamb, can be heard for more than a mile.
Clever introduction, comprehensive reference, all round solid work.
By Anonymous
from Undisclosed
Comments about oreilly XQuery:
This is a good title for those interested in XQuery. The author takes pains to keep the subject matter apposite. Each chapter restricts itself to a narrow subset of XQuery before moving on, thus resisting the temptation to branch out into other features which might labour the reader.
Perhaps more focus could have been given to individual implementations, as Saxon is given undue prominence as the implementation of choice. However, this is probably being a little fussy, as most readers will have an implementation in mind before even considering a text on XQuery (if they don't, they should).
There are plenty of other titles which would benefit greatly from following this title's general approach.