The Built-in Types

A wide array of atomic types is built into XQuery. These simple types, shown in Figure 11-1, represent common datatypes such as strings, numbers, dates, and times. The built-in types are identified by qualified names that are prefixed with xs, because they are defined in the XML Schema Namespace. You can use all of these built-in types in your queries whether or not the implementation is actually schema-aware, and whether or not you are using schemas to validate your source or result documents.

The atomic type hierarchy

Figure 11-1. The atomic type hierarchy

Nineteen of the built-in types are primitive, meaning that they are the top level of the type hierarchy. Each primitive type has a value space, which describes all its valid values, and a set of lexical representations for each value in the value space. There is one lexical representation, the canonical representation, that maps one-to-one with each value in the value space. The canonical representation is important because it is the format used when a value is serialized or cast as a string.[*]

For example, the primitive type xs:integer has a value that is equal to 12 in its value space. This value has multiple lexical representations that map to the same value, such as 12, +12, and 012. The canonical representation is 12. Some primitive types, such as xs:date, only have one lexical representation, which becomes, by default, the ...

Get XQuery now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.