JSONiq follows the W3C standard for atomic types except for modifications in the list of available atomic types and a simplified syntax for xs:anyAtomicType. The following explanations, provided as an informal summary for convenience, are non-normative.
Atomic types are organized in a tree hierarchy.
JSONiq defines the following build-in types that have a direct relation with JSON:
xs:string: the value space is all strings made of Unicode characters.
All string literals build an atomic which matches string.
xs:integer (W3C-conformant): the value space is that of all mathematical integral numbers (N), with an infinite range. This is a subtype of decimal, so that all integers also match the item type decimal.
All integer literals build an atomic which matches integer.
xs:decimal (W3C-conformant): the value space is that of all mathematical decimal numbers (D), with an infinite range.
All decimal literals build an atomic which matches decimal.
xs:double (W3C-conformant): the value space is that of all IEEE double-precision 64-bit floating point numbers.
All double literals build an atomic which matches double.
xs:boolean (W3C-conformant): the value space contains the booleans true and false.
All boolean literals build an atomic which matches boolean.
js:null (JSONiq-specific): the value space is a singleton and only contains null.
All null literals build an atomic which matches null.
js:atomic (JSONiq-specific synonym of, and W3C-conformant with, xs:anyAtomicType): all atomic types.
All literals build an atomic which matches atomic.
JSONiq also supports further atomic types, which are conformant with XML Schema.
These datatypes are already used as a set of atomic datatypes by the other two semi-structured data formats of the Web: XML and RDF, as well as by the corresponding query languages: XQuery and SPARQL, so it is natural for a complete JSON data model to reuse them.
Further number types: xs:float, xs:long, xs:int, xs:short, xs:byte, xs:float, xs:positiveInteger, xs:negativeInteger, xs:nonPositiveInteger, xs:nonNegativeInteger, xs:unsignedLong, xs:unsignedInt, xs:unsignedShort, xs:unsignedByte.
Date or time types: xs:date, xs:dateTime, xs:dateTimeStamp, xs:gDay, xs:gMonth, xs:gMonthDay, xs:gYear, xs:xs:gYearMonth, xs:time.
Duration types: xs:duration, xs:dayTimeDuration, xs:yearMonthDuration.
Binary types: xs:base64Binary, xs:hexBinary.
An URI type: xs:anyURI.
The support of xs:ID, xs:IDREF, xs:IDREFS, xs:NOTATION, xs:Name, xs:NCName, xs:NMTOKEN, xs:NMTOKENS, xs:ENTITY, xs:ENTITIES is not required by JSONiq, although engines that also support XML can support them.
Figure 6. AtomicType