Interface AtomicType

    • Method Detail

      • getGenre

        default Genre getGenre()
        Determine the Genre (top-level classification) of this type
        Specified by:
        getGenre in interface ItemType
        Returns:
        the Genre to which this type belongs, specifically Genre.ATOMIC
      • validate

        ValidationFailure validate​(AtomicValue primValue,
                                   CharSequence lexicalValue,
                                   ConversionRules rules)
        Validate that a primitive atomic value is a valid instance of a type derived from the same primitive type.
        Parameters:
        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
        Returns:
        null if the value is valid; otherwise, a ValidationFailure object indicating the nature of the error.
        Throws:
        UnsupportedOperationException - in the case of an external object type
      • isOrdered

        boolean isOrdered​(boolean optimistic)
        Determine whether the atomic type is ordered, that is, whether less-than and greater-than comparisons are permitted
        Parameters:
        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.
        Returns:
        true if ordering operations are permitted
      • isAbstract

        boolean isAbstract()
        Determine whether the type is abstract, that is, whether it cannot have instances that are not also instances of some concrete subtype
        Returns:
        true if the type is abstract
      • isPrimitiveType

        boolean isPrimitiveType()
        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, ...)
        Returns:
        true if the type is considered primitive under the above rules
      • isBuiltInType

        boolean isBuiltInType()
        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, ...)
        Specified by:
        isBuiltInType in interface SimpleType
        Returns:
        true if this is a built-in type
      • getTypeName

        StructuredQName getTypeName()
        Get the name of this type as a StructuredQName, unless the type is anonymous, in which case return null
        Specified by:
        getTypeName in interface PlainType
        Returns:
        the name of the atomic type, or null if the type is anonymous.
      • getStringConverter

        StringConverter getStringConverter​(ConversionRules rules)
        Get a StringConverter, an object which converts strings in the lexical space of this data type to instances (in the value space) of the data type.
        Parameters:
        rules - the conversion rules to be used
        Returns:
        a StringConverter to do the conversion, or null if no built-in converter is available.
      • explainMismatch

        default Optional<String> explainMismatch​(Item item,
                                                 TypeHierarchy th)
        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.
        Specified by:
        explainMismatch in interface ItemType
        Parameters:
        item - the item that doesn't match this type
        th - the type hierarchy cache
        Returns:
        optionally, a message explaining why the item does not match the type