XQuery Terminology

In XQuery, there are seven types of nodes: element, attribute, text, namespace, processing instruction, comment, and document node (or called root node).

XQuery Terminology

Node

In XQuery, there are seven types of nodes: element, attribute, text, namespace, processing instruction, comment, and document (root) node. An XML document is treated as a node tree. The root of the tree is called the document node or root node.

See the following XML document:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author> 
  <year>2005</year>
  <price>29.99</price>
</book>
</bookstore>

Examples of nodes in the above XML document:

<bookstore> (document node)
<author>J K. Rowling</author> (element node)
lang="en" (attribute node)

Basic value (also known as atomic value)

A basic value is a node that has no parent or no children.

Example of basic value:

J K. Rowling
"en"

Item

Items are basic values or nodes.

Node relationship

Parent

Each element and attribute has a parent.

In the following example, the book element is the parent of the elements title, author, year, and price:

<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

Children

A node element can have zero, one, or more children.

In the following example, the elements title, author, year, and price are children of the book element:

<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

Sibling

Nodes that have the same parent.

In the following example, the elements title, author, year, and price are peers:

<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

Ancestor

The parent, the parent's parent, and so on.

In the following example, the ancestors of the title element are the elements book and bookstore:

<bookstore>
<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>
</bookstore>

Descendant

The child, the child's child, and so on.

In the following example, the descendants of bookstore are the elements book, title, author, year, and price:

<bookstore>
<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>
</bookstore>