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 known as 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 values (also known as atomic values, Atomic value)

Basic values are nodes without parents or children.

Example of basic values:

J K. Rowling
"en"

Item

Items are either basic values or nodes.

Node Relationships

Parent

Each element and attribute has a parent.

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

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

Children

An element can have zero, one, or more children.

In the following example, the title, author, year, and price elements 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 with the same parent.

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

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

Ancestor

Parent, parent's parent, and so on.

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

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

Descendant

Child, child's child, and so on.

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

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