RE: Is xdt:anyAtomicType itself atomic?

> > No, it's not defined as the union of all atomic types, it 
> is defined as the
> > supertype of all atomic types. It's the parent type of all 
> atomic types, in
> > the same way as anySimpleType is the parent of all simple types ...
> 
> 	According to the Formal Semantics, section 3.4.1, Predefined
> 	Types, xs:anySimpleType *is* defined as the union of all
> 	primitive atomic types and xdt:anyAtomicType *is* defined as
> 	the union of atomic types.

I was paraphrasing the definition in the language book, section 2.5.1:

[Definition: xdt:anyAtomicType includes all atomic values (and no values
that are not atomic).] It is derived from xs:anySimpleType, which is the
base type for all simple types, including atomic, list, and union types. All
specific atomic types such as xs:integer, xs:string, and xdt:untypedAtomic,
are derived from xdt:anyAtomicType.

The definition in the formal semantics also defines that the type is derived
from xs:anySimpleType, and that the "primitive" atomic types restrict
xdt:anyAtomicType. The value space is expressed as a union of the primitive
type, but the type isn't derived by union in the XML Schema sense.

It's a shame that the FS doesn't describe all the properties of the type
when considered as a schema component. In the XML Schema model, every simple
type has a variety which is one of "atomic", "union", or "list". It's not
possible to derive an atomic type by restriction from a union type, so it
seems that the variety of xdt:anyAtomicType must be "atomic".
> 
> 	My question was not about the definition of xdt:anyAtomicType
> 	since that is quite clearly defined as a union as cited above.

The value space is expressed as a union, but the type is defined as being
derived by restriction from xs:anySimpleType.

What practical difference does it actually make whether xdt:anyAtomicType is
an atomic type or not? 

Michael Kay

Received on Thursday, 11 November 2004 01:48:32 UTC