Obtaining a Union

Specify the | operator to combine collection sets. For example, the following query returns all last-name elements and all first-name elements in the current context:

first-name | last-name

The result set can contain zero or more of each element that the | operator applies to. For example, using the previous query, it is possible for the query to contain only first-name elements if no last-name elements are found. The following query finds all book elements and magazine elements in the bookstore element:

/bookstore/book | /bookstore/magazine

The next query finds all books and all authors in the current context:

book | book/author

The next query returns the first names, last names, and degrees of authors of books or magazines in the current context:

A union can appear only as the first step in a location path expression. Consequently, the following is incorrect because there is a union specification that is not in the first step of a location path expression.

(book | magazine)/author/(first-name | last-name | degree)

The following query finds all books for which the author's first name is Bob and all magazines with prices less than 10 dollars: