[xquery-talk] items as nodes or atomic values

Michael Dyck jmdyck at ibiblio.org
Mon May 7 15:24:42 PDT 2007


Smith, Donald T. wrote:

> I’m accustomed, from XPath 1.0,  to thinking of trees of nodes, so I’m 
> not quite getting what it means to have items in sequences that are 
> either nodes or atomic values.

Even XPath 1.0 has non-node values, namely booleans, numbers, and 
strings. It might help to consider expressions like
     5 mod 2
and
     concat("foo","bar")
that don't involve nodes at all.

> Since an atomic value is a string that 
> conforms to an atomic type, atomic types are schema-defined, and nodes 
> may or may not have schema-defined datatypes, I don’t understand the 
> case where an atomic type would not be associated with – and so 
> represented by -- a node.

An atomic *type* might be represented by a node, but that doesn't mean 
an atomic *value* is represented by a node.

> The last line I quoted above indicates that this whole issue arises from 
> something that goes on during expression processing, so perhaps this is 
> an issue that only matters to those who write XQuery/XPath engines.

It isn't just internal to workings of engines, it can also manifest in 
the final result of a query. E.g., the XPath 2.0 query
    42, <x/>
yields a sequence of two items: an atomic value of type xs:integer and 
an element node.

-Michael Dyck



More information about the talk mailing list