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
|
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)
|
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()
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.XPathExceptionItemType 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 cachedefault 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 generatedXPathExceptionjava.lang.String toString()
toString in class java.lang.Objectdefault 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-2018 Saxonica Limited. All rights reserved.