Interface PlainType

All Superinterfaces:
HyperType, ItemType
All Known Subinterfaces:
AtomicType
All Known Implementing Classes:
BuiltInAtomicType, EnumerationType, ErrorType, LocalUnionType, NumericType, UserAtomicType, UserUnionType

public interface PlainType extends ItemType, HyperType
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
    • getPlainMemberTypes

      List<? 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).