public interface ItemType
Saxon assumes that apart from AnyItemType
(which corresponds to item()
and matches anything), every ItemType will be either an AtomicType
, a NodeTest
,
or a FunctionItemType
. User-defined implementations of ItemType must therefore extend one of those
three classes/interfaces.
AtomicType
,
NodeTest
,
FunctionItemType
Modifier and Type | Interface and Description |
---|---|
static interface |
ItemType.WithSequenceTypeCache
Extension of the ItemType interface implemented by some item types, to provide
a cache of SequenceType objects based on this item type, with different
occurrence indicators.
|
Modifier and Type | Method and Description |
---|---|
default java.util.Optional<java.lang.String> |
explainMismatch(Item item,
TypeHierarchy th)
Get extra diagnostic information about why a supplied item does not conform to this
item type, if available.
|
java.lang.String |
generateJavaScriptItemTypeAcceptor(java.lang.String errorCode,
int targetVersion)
Generate Javascript code to convert a supplied Javascript value to this item type,
if conversion is possible, or throw an error otherwise.
|
java.lang.String |
generateJavaScriptItemTypeTest(ItemType knownToBe,
int targetVersion)
Generate Javascript code to test whether an item conforms to this item type
|
java.lang.String |
getAlphaCode()
Get an alphabetic code representing the type, or at any rate, the nearest built-in type
from which this type is derived.
|
PlainType |
getAtomizedItemType()
Get the item type of the atomic values that will be produced when an item
of this type is atomized
|
Genre |
getGenre()
Determine the Genre (top-level classification) of this type
|
ItemType |
getPrimitiveItemType()
Get the primitive item type corresponding to this item type.
|
int |
getPrimitiveType()
Get the primitive type corresponding to this item type.
|
UType |
getUType()
Get the corresponding
UType . |
boolean |
isAtomicType()
Determine whether this item type is an atomic type
|
boolean |
isAtomizable(TypeHierarchy th)
Ask whether values of this type are atomizable
|
boolean |
isPlainType()
Determine whether this item type is a plain type (that is, whether it can ONLY match
atomic values)
|
default boolean |
isTrueItemType()
Ask whether this
ItemType actually represents an item type in the XDM sense
of the term. |
boolean |
matches(Item item,
TypeHierarchy th)
Test whether a given item conforms to this type
|
default java.lang.String |
toExportString()
Return a string representation of this ItemType suitable for use in stylesheet
export files.
|
java.lang.String |
toString() |
Genre getGenre()
boolean isAtomicType()
boolean isPlainType()
default boolean isTrueItemType()
ItemType
actually represents an item type in the XDM sense
of the term. The only instances that aren't true item types are user-defined union types
derived by restriction from other union types or containing list types in their transitive
membership ("impure union types")boolean matches(Item item, TypeHierarchy th) throws XPathException
item
- The item to be testedth
- The type hierarchy cache. Currently used only when matching function items.XPathException
ItemType getPrimitiveItemType()
int getPrimitiveType()
UType getUType()
UType
. A UType is a union of primitive item
types.PlainType getAtomizedItemType()
boolean isAtomizable(TypeHierarchy th)
th
- the type hierarchy cachejava.lang.String getAlphaCode()
default java.lang.String toExportString()
toString()
.java.lang.String generateJavaScriptItemTypeTest(ItemType knownToBe, int targetVersion) throws XPathException
knownToBe
- An item type that the supplied item is known to conform to; the generated code
can assume that the item is an instance of this type.targetVersion
- The version of Saxon-JS for which code is being generated. Currently either 1 or 2.XPathException
- if JS code cannot be generated for this item type, for example because
the test is schema-aware.java.lang.String generateJavaScriptItemTypeAcceptor(java.lang.String errorCode, int targetVersion) throws XPathException
errorCode
- the error to be thrown if conversion is not possibletargetVersion
- the version of Saxon-JS for which code is being generatedXPathException
java.lang.String toString()
toString
in class java.lang.Object
default java.util.Optional<java.lang.String> explainMismatch(Item item, TypeHierarchy th)
item
- the item that doesn't match this typeth
- the type hierarchy cacheCopyright (c) 2004-2020 Saxonica Limited. All rights reserved.