(Adapted from Jeni Tennison)
The first class object type is a sequence; i.e. an ordered list
Sequences contain items of two types: simple typed values or nodes. (They may not contain other sequences.)
A sequence containing one item is the same as the item.
Simple typed values have W3C XML Schema Language simple types: xsd:gYear, xsd:int, xsd:decimal, xsd:date, etc.
Seven node types: document, element, attribute, text, namespace, processing instruction, and comment
Nodes have these properties:
node-kind: either "document", "element", "attribute", "text", "namespace", "processing-instruction", or "comment".
name: a sequence containing one expanded QName if the node has a name (elements, attributes, etc.) or an empty sequence if the node doesn't have a name (comments, text nodes, etc.)
parent: a sequence containing the unique parent node; the empty sequence is returned for parentless nodes, particularly document and namespace nodes
base-uri: URI from which this particular node came
string-value: same as XPath 1.0
typed-value: a sequence of simple typed values corresponding to the node (always the empty sequence for anything other than elements and attributes)
A sequence of child nodes (empty except for element and document nodes)
attributes: a sequence of attribute nodes; empty except for attribute nodes
namespaces: a sequence of namespace nodes in-scope on the node
declaration: a sequence containing 0 or 1 schema component
type: a sequence containing 0 or 1 schema component
unique-ID: a sequence containing 0 or 1 xsd:ID type node
Infoset compatible