Package net.sf.saxon.style
Class ExpressionContext
- java.lang.Object
-
- net.sf.saxon.style.ExpressionContext
-
- All Implemented Interfaces:
StaticContext,XSLTStaticContext
public class ExpressionContext extends java.lang.Object implements XSLTStaticContext
An ExpressionContext represents the context for an XPath expression written in the stylesheet.
-
-
Constructor Summary
Constructors Constructor Description ExpressionContext(StyleElement styleElement)Create a static context for XPath expressions in an XSLT stylesheet
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description VariableReferencebindVariable(StructuredQName qName)Bind a variable to an object that can be used to refer to itjava.lang.StringgetBaseURI()Get the Base URI of the element containing the expression, for resolving any relative URI's used in the expression.StringCollatorgetCollation(java.lang.String name)Get a named collation.ConfigurationgetConfiguration()Get the system configurationjava.lang.StringgetDefaultCollationName()Get the default collation.java.lang.StringgetDefaultElementNamespace()Get the default XPath namespace for elements and types Return NamespaceConstant.NULL for the non-namespacejava.lang.StringgetDefaultFunctionNamespace()Get the default function namespaceExecutablegetExecutable()Get the executableintgetFingerprint(java.lang.String qname, boolean useDefault)Get a fingerprint for a name, using this as the context for namespace resolutionFunctionLibrarygetFunctionLibrary()Get the function library containing all the in-scope functions available in this static contextjava.util.SetgetImportedSchemaNamespaces()Get the set of imported schemasintgetLineNumber()Get the line number of the expression within its containing entity Returns -1 if no line number is availableLocationMapgetLocationMap()Get the location mapNamePoolgetNamePool()Get the NamePool used for compiling expressionsNamespaceResolvergetNamespaceResolver()Get a copy of the NamespaceResolver suitable for saving in the executable codeStructuredQNamegetStructuredQName(java.lang.String qname, boolean useDefault)Get a StructuredQName for a name, using this as the context for namespace resolutionStyleElementgetStyleElement()Get the stylesheet element containing this XPath expressionjava.lang.StringgetSystemId()Get the System ID of the entity containing the expression (used for diagnostics)java.lang.StringgetURIForPrefix(java.lang.String prefix)Get the URI for a prefix, using this Element as the context for namespace resolution.XSLStylesheetgetXSLStylesheet()Get the XSLStylesheet objectbooleanisAllowedBuiltInType(BuiltInAtomicType type)Determine whether a built-in type is available in this context.booleanisElementAvailable(java.lang.String qname)Determine if an extension element is availablebooleanisImportedSchema(java.lang.String namespace)Test whether a schema has been imported for a given namespacebooleanisInBackwardsCompatibleMode()Determine whether Backwards Compatible Mode is usedvoidissueWarning(java.lang.String s, javax.xml.transform.SourceLocator locator)Issue a compile-time warningXPathContextmakeEarlyEvaluationContext()Construct a dynamic context for early evaluation of constant subexpressions
-
-
-
Constructor Detail
-
ExpressionContext
public ExpressionContext(StyleElement styleElement)
Create a static context for XPath expressions in an XSLT stylesheet- Parameters:
styleElement- the element on which the XPath expression appears
-
-
Method Detail
-
getConfiguration
public Configuration getConfiguration()
Get the system configuration- Specified by:
getConfigurationin interfaceStaticContext- Returns:
- the Saxon configuration
-
getExecutable
public Executable getExecutable()
Get the executable- Returns:
- the executable
-
makeEarlyEvaluationContext
public XPathContext makeEarlyEvaluationContext()
Construct a dynamic context for early evaluation of constant subexpressions- Specified by:
makeEarlyEvaluationContextin interfaceStaticContext- Returns:
- a newly constructed dynamic context
-
getLocationMap
public LocationMap getLocationMap()
Get the location map- Specified by:
getLocationMapin interfaceStaticContext- Returns:
- the location map
-
issueWarning
public void issueWarning(java.lang.String s, javax.xml.transform.SourceLocator locator)Issue a compile-time warning- Specified by:
issueWarningin interfaceStaticContext- Parameters:
s- The warning message. This should not contain any prefix such as "Warning".locator- the location of the construct in question. May be null.
-
getNamePool
public NamePool getNamePool()
Get the NamePool used for compiling expressions- Specified by:
getNamePoolin interfaceStaticContext- Returns:
- the name pool
-
getSystemId
public java.lang.String getSystemId()
Get the System ID of the entity containing the expression (used for diagnostics)- Specified by:
getSystemIdin interfaceStaticContext- Returns:
- the system ID
-
getLineNumber
public int getLineNumber()
Get the line number of the expression within its containing entity Returns -1 if no line number is available- Specified by:
getLineNumberin interfaceStaticContext- Returns:
- the line number, or -1 if not available
-
getBaseURI
public java.lang.String getBaseURI()
Get the Base URI of the element containing the expression, for resolving any relative URI's used in the expression. Used by the document() function.- Specified by:
getBaseURIin interfaceStaticContext- Returns:
- the static base URI, or null if not known
-
getURIForPrefix
public java.lang.String getURIForPrefix(java.lang.String prefix) throws XPathExceptionGet the URI for a prefix, using this Element as the context for namespace resolution. The default namespace will not be used when the prefix is empty.- Specified by:
getURIForPrefixin interfaceStaticContext- Parameters:
prefix- The prefix- Returns:
- the corresponding namespace URI
- Throws:
XPathException- if the prefix is not declared
-
getNamespaceResolver
public NamespaceResolver getNamespaceResolver()
Get a copy of the NamespaceResolver suitable for saving in the executable code- Specified by:
getNamespaceResolverin interfaceStaticContext- Returns:
- a NamespaceResolver
-
getFingerprint
public int getFingerprint(java.lang.String qname, boolean useDefault) throws XPathExceptionGet a fingerprint for a name, using this as the context for namespace resolution- Parameters:
qname- The name as written, in the form "[prefix:]localname"useDefault- Defines the action when there is no prefix. If true, use the default namespace URI (as for element names). If false, use no namespace URI (as for attribute names).- Returns:
- -1 if the name is not already present in the name pool
- Throws:
XPathException
-
getStructuredQName
public StructuredQName getStructuredQName(java.lang.String qname, boolean useDefault) throws XPathException
Get a StructuredQName for a name, using this as the context for namespace resolution- Parameters:
qname- The name as written, in the form "[prefix:]localname"useDefault- Defines the action when there is no prefix. If true, use the default namespace URI (as for element names). If false, use no namespace URI (as for attribute names).- Returns:
- -1 if the name is not already present in the name pool
- Throws:
XPathException
-
bindVariable
public VariableReference bindVariable(StructuredQName qName) throws XPathException
Bind a variable to an object that can be used to refer to it- Specified by:
bindVariablein interfaceStaticContext- Parameters:
qName- the name of the variable- Returns:
- a VariableDeclaration object that can be used to identify it in the Bindery
- Throws:
XPathException- if the variable has not been declared
-
getFunctionLibrary
public FunctionLibrary getFunctionLibrary()
Get the function library containing all the in-scope functions available in this static context- Specified by:
getFunctionLibraryin interfaceStaticContext- Returns:
- the function library
-
isElementAvailable
public boolean isElementAvailable(java.lang.String qname) throws XPathExceptionDetermine if an extension element is available- Specified by:
isElementAvailablein interfaceXSLTStaticContext- Throws:
XPathException- if the name is invalid or the prefix is not declared
-
getCollation
public StringCollator getCollation(java.lang.String name)
Get a named collation.- Specified by:
getCollationin interfaceStaticContext- Parameters:
name- The name of the required collation. Supply null to get the default collation.- Returns:
- the collation; or null if the required collation is not found.
-
getDefaultCollationName
public java.lang.String getDefaultCollationName()
Get the default collation. Return null if no default collation has been defined- Specified by:
getDefaultCollationNamein interfaceStaticContext- Returns:
- the name of the default collation; or the name of the codepoint collation if no default collation has been defined
-
getDefaultElementNamespace
public java.lang.String getDefaultElementNamespace()
Get the default XPath namespace for elements and types Return NamespaceConstant.NULL for the non-namespace- Specified by:
getDefaultElementNamespacein interfaceStaticContext- Returns:
- the default namespace, or NamespaceConstant.NULL for the non-namespace
-
getDefaultFunctionNamespace
public java.lang.String getDefaultFunctionNamespace()
Get the default function namespace- Specified by:
getDefaultFunctionNamespacein interfaceStaticContext- Returns:
- the default namespace for function names
-
isInBackwardsCompatibleMode
public boolean isInBackwardsCompatibleMode()
Determine whether Backwards Compatible Mode is used- Specified by:
isInBackwardsCompatibleModein interfaceStaticContext- Returns:
- true if running in XPath 1.0 compatibility mode
-
isImportedSchema
public boolean isImportedSchema(java.lang.String namespace)
Test whether a schema has been imported for a given namespace- Specified by:
isImportedSchemain interfaceStaticContext- Parameters:
namespace- the target namespace of the required schema- Returns:
- true if a schema for this namespace has been imported
-
getImportedSchemaNamespaces
public java.util.Set getImportedSchemaNamespaces()
Get the set of imported schemas- Specified by:
getImportedSchemaNamespacesin interfaceStaticContext- Returns:
- a Set, the set of URIs representing the names of imported schemas
-
isAllowedBuiltInType
public boolean isAllowedBuiltInType(BuiltInAtomicType type)
Determine whether a built-in type is available in this context. This method caters for differences between host languages as to which set of types are built in.- Specified by:
isAllowedBuiltInTypein interfaceStaticContext- Parameters:
type- the supposedly built-in type. This will always be a type in the XS or XDT namespace.- Returns:
- true if this type can be used in this static context
-
getXSLStylesheet
public XSLStylesheet getXSLStylesheet()
Get the XSLStylesheet object- Returns:
- the XSLStylesheet object representing the outermost element of the stylesheet module
-
getStyleElement
public StyleElement getStyleElement()
Get the stylesheet element containing this XPath expression- Returns:
- the element in the tree representation of the source stylesheet
-
-