net.sf.saxon.trans
Class KeyDefinition
- Serializable, Container, InstructionInfoProvider, Serializable, SourceLocator, LocationProvider
public class KeyDefinition
Corresponds to a single xsl:key declaration.
getBody , getColumnNumber , getExecutable , getHostLanguage , getLineNumber , getLineNumber , getLocationProvider , getPublicId , getStackFrameMap , getSystemId , getSystemId , replaceSubExpression , setBody , setExecutable , setHostLanguage , setLineNumber , setStackFrameMap , setSystemId |
KeyDefinition
public KeyDefinition(PatternFinder match,
SequenceIterable use,
String collationName,
StringCollator collation)
Constructor to create a key definition
match
- the pattern in the xsl:key match attributeuse
- the expression in the xsl:key use attribute, or the expression that results from compiling
the xsl:key contained instructions. Note that a KeyDefinition constructed by the XSLT or XQuery parser will
always use an Expression here; however, a KeyDefinition constructed at run-time by a compiled stylesheet
or XQuery might use a simple ExpressionEvaluator that lacks all the compile-time information associated
with an ExpressioncollationName
- the name of the collation being usedcollation
- the actual collation. This must be one that supports generation of collation keys.
getCollationName
public String getCollationName()
Get the collation name for this key definition.
- the collation name (the collation URI)
getIndexedItemType
public BuiltInAtomicType getIndexedItemType()
Get the primitive item type of the values returned by the use expression
- the primitive item type of the indexed values
getMatch
public PatternFinder getMatch()
Get the match pattern for the key definition
- the pattern specified in the "match" attribute of the xsl:key declaration
getUse
public SequenceIterable getUse()
Get the use expression for the key definition
- the expression specified in the "use" attribute of the xsl:key declaration
isBackwardsCompatible
public boolean isBackwardsCompatible()
Test backwards compatibility mode
- true if running in XSLT backwards compatibility mode
isConvertUntypedToOther
public boolean isConvertUntypedToOther()
Determine whether untypedAtomic values are converted to the type of the other operand.
- true if comparisons follow the semantics of the "=" operator rather than
the "eq" operator
isStrictComparison
public boolean isStrictComparison()
Get whether strict comparison is needed. Strict comparison treats non-comparable values as an
error rather than a no-match. This is used for internal keys that support value comparisons in
Saxon-SA, it is not used for user-defined XSLT keys.
- true if strict comparison is needed.
setBackwardsCompatible
public void setBackwardsCompatible(boolean bc)
Set backwards compatibility mode. The key definition is backwards compatible if ANY of the xsl:key
declarations has version="1.0" in scope.
bc
- set to true if running in XSLT 2.0 backwards compatibility mode
setConvertUntypedToOther
public void setConvertUntypedToOther(boolean convertToOther)
Indicate that untypedAtomic values should be converted to the type of the other operand,
rather than to strings. This is used for indexes constructed internally by Saxon-SA to
support filter expressions that use the "=" operator, as distinct from "eq".
convertToOther
- true if comparisons follow the semantics of the "=" operator rather than
the "eq" operator
setIndexedItemType
public void setIndexedItemType(BuiltInAtomicType itemType)
Set the primitive item type of the values returned by the use expression
itemType
- the primitive type of the indexed values
setLocation
public void setLocation(String systemId,
int lineNumber)
Set the system Id and line number of the source xsl:key definition
systemId
- the URI of the module containing the key definitionlineNumber
- the line number of the key definition
setStrictComparison
public void setStrictComparison(boolean strict)
Set whether strict comparison is needed. Strict comparison treats non-comparable values as an
error rather than a no-match. This is used for internal keys that support value comparisons in
Saxon-SA, it is not used for user-defined XSLT keys.
strict
- true if strict comparison is needed