Interface for atomic types (these are either built-in atomic types
or user-defined atomic types). An AtomicType is both an ItemType (a possible type
for items in a sequence) and a SchemaType (a possible type for validating and
Nested Class Summary
Nested classes/interfaces inherited from interface net.sf.saxon.type.SchemaComponent
Validate that a primitive atomic value is a valid instance of a type derived from the
same primitive type.
primValue - the value in the value space of the primitive type.
lexicalValue - the value in the lexical space. If null, the string value of primValue
is used. This value is checked against the pattern facet (if any)
rules - the conversion rules for this configuration
null if the value is valid; otherwise, a ValidationFailure object indicating
the nature of the error.
java.lang.UnsupportedOperationException - in the case of an external object type
boolean isOrdered(boolean optimistic)
Determine whether the atomic type is ordered, that is, whether less-than and greater-than comparisons
optimistic - if true, the function takes an optimistic view, returning true if ordering comparisons
are available for some subtype. This mainly affects xs:duration, where the function returns true if
optimistic is true, false if it is false.
true if ordering operations are permitted
Determine whether the type is abstract, that is, whether it cannot have instances that are not also
instances of some concrete subtype
true if the type is abstract
Determine whether the atomic type is a primitive type. The primitive types are
the 19 primitive types of XML Schema, plus xs:integer, xs:dayTimeDuration and xs:yearMonthDuration;
xs:untypedAtomic; and all supertypes of these (xs:anyAtomicType, xs:numeric, ...)
true if the type is considered primitive under the above rules
Ask whether this type is an ID type. This is defined to be any simple type
who typed value may contain atomic values of type xs:ID: that is, it includes types derived
from ID by restriction, list, or union. Note that for a node to be treated
as an ID, its typed value must be a *single* atomic value of type ID; the type of the
node, however, can still allow a list.
Ask whether this type is an IDREF or IDREFS type. This is defined to be any simple type
who typed value may contain atomic values of type xs:IDREF: that is, it includes types derived
from IDREF or IDREFS by restriction, list, or union
Determine whether the atomic type is a built-in type. The built-in atomic types are the 41 atomic types
defined in XML Schema, plus xs:dayTimeDuration and xs:yearMonthDuration,
xs:untypedAtomic, and all supertypes of these (xs:anyAtomicType, xs:numeric, ...)
Get extra diagnostic information about why a supplied item does not conform to this
item type, if available. If extra information is returned, it should be in the form of a complete
sentence, minus the closing full stop. No information should be returned for obvious cases.
the default priority. For an atomic type this is 1 minus 0.5^N, where
N is the depth of the type in the type hierarchy. The result is 0 for
xs:anyAtomicType, 0.5 for a primitive type such as xs:date, and between 0.5 and
1.0 for derived atomic types.