XQuery Terminology


In XQuery, there are seven types of nodes: elements, attributes, text, namespaces, processing instructions, comments, and document nodes (also called root nodes).


XQuery Terminology

Node

In XQuery, there are seven types of nodes: elements, attributes, text, namespaces, processing instructions, comments, and document (root) nodes. XML documents are treated as a tree of nodes. The root of the tree is called the document node or root node.

Please 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 XML document above:

<bookstore> (document node)

<author>J K. Rowling</author> (element node)

lang="en" (attribute node)

Atomic values are nodes without a parent or children.

Examples of atomic values:

J K. Rowling

"en"

Item

Items are atomic values or nodes.


Node Relationships

Parent

Every 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

Element nodes can have zero, one, or more children.

In the following example, the title, author, year, and price elements are all 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 title, author, year, and price elements are all siblings:

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

Ancestor

A node's 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

A node's children, children's children, and so on.

In the following example, the descendants of bookstore are the 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>
Other extensions