Interface PlainType

All Superinterfaces:
ItemType
All Known Subinterfaces:
AtomicType
All Known Implementing Classes:
BuiltInAtomicType, ErrorType, LocalUnionType, NumericType

public interface PlainType extends ItemType
A "plain type" is either an atomic type, or a union type that (a) imposes no restrictions other than those imposed by its member types, and (b) has exclusively plain types as its member types
  • Method Details

    • getTypeName

      StructuredQName getTypeName()
      Get the name of this type as a structured QName
      Returns:
      the name of this type. If the type is anonymous, an internally-generated type name is returned
    • isNamespaceSensitive

      boolean isNamespaceSensitive()
      Test whether this type is namespace sensitive, that is, if a namespace context is needed to translate between the lexical space and the value space. This is true for types derived from, or containing, QNames and NOTATIONs
      Returns:
      true if any of the member types is namespace-sensitive, or if namespace sensitivity cannot be determined because there are components missing from the schema.
    • getPlainMemberTypes

      Iterable<? extends PlainType> getPlainMemberTypes() throws MissingComponentException
      Get the list of plain types that are subsumed by this type
      Returns:
      for an atomic type, the type itself; for a plain union type, the list of plain types in its transitive membership
      Throws:
      MissingComponentException
    • matches

      boolean matches(Item item, TypeHierarchy th)
      Test whether a given item conforms to this type
      Specified by:
      matches in interface ItemType
      Parameters:
      item - The item to be tested
      th - The type hierarchy cache. Currently used only when matching function items.
      Returns:
      true if the item is an instance of this type; false otherwise
    • getPrimitiveItemType

      AtomicType getPrimitiveItemType()
      Redeclare getPrimitiveItemType() to return a more specific result type Get the primitive item type corresponding to this item type. For anyAtomicValue and union types it is Type.ATOMIC_VALUE. For numeric it is Type.NUMBER. For other atomic types it is the primitive type as defined in XML Schema, except that integer, xs:dayTimeDuration, and xs:yearMonthDuration are considered to be primitive types.
      Specified by:
      getPrimitiveItemType in interface ItemType
      Returns:
      the corresponding primitive type (this is an instance of BuiltInAtomicType in all cases except where this type is xs:error. The class ErrorType does not inherit from BuiltInAtomicType because of multiple inheritance problems).