## 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
`ExpressionContext(StyleElement styleElement)` Create a static context for XPath expressions in an XSLT stylesheet

Method Summary
`VariableReference` `bindVariable(StructuredQName qName)` Bind a variable to an object that can be used to refer to it
`java.lang.String` `getBaseURI()` Get the Base URI of the element containing the expression, for resolving any relative URI's used in the expression.
`StringCollator` `getCollation(java.lang.String name)` Get a named collation.
`Configuration` `getConfiguration()` Get the system configuration
`java.lang.String` `getDefaultCollationName()` Get the default collation.
`java.lang.String` `getDefaultElementNamespace()` Get the default XPath namespace for elements and types Return NamespaceConstant.NULL for the non-namespace
`java.lang.String` `getDefaultFunctionNamespace()` Get the default function namespace
`Executable` `getExecutable()` Get the executable
`int` `getFingerprint(java.lang.String qname, boolean useDefault)` Get a fingerprint for a name, using this as the context for namespace resolution
`FunctionLibrary` `getFunctionLibrary()` Get the function library containing all the in-scope functions available in this static context
`java.util.Set` `getImportedSchemaNamespaces()` Get the set of imported schemas
`int` `getLineNumber()` Get the line number of the expression within its containing entity Returns -1 if no line number is available
`LocationMap` `getLocationMap()` Get the location map
`NamePool` `getNamePool()` Get the NamePool used for compiling expressions
`NamespaceResolver` `getNamespaceResolver()` Get a copy of the NamespaceResolver suitable for saving in the executable code
`StructuredQName` `getStructuredQName(java.lang.String qname, boolean useDefault)` Get a StructuredQName for a name, using this as the context for namespace resolution
`StyleElement` `getStyleElement()` Get the stylesheet element containing this XPath expression
`java.lang.String` `getSystemId()` Get the System ID of the entity containing the expression (used for diagnostics)
`java.lang.String` `getURIForPrefix(java.lang.String prefix)` Get the URI for a prefix, using this Element as the context for namespace resolution.
`XSLStylesheet` `getXSLStylesheet()` Get the XSLStylesheet object
`boolean` `isAllowedBuiltInType(BuiltInAtomicType type)` Determine whether a built-in type is available in this context.
`boolean` `isElementAvailable(java.lang.String qname)` Determine if an extension element is available
`boolean` `isImportedSchema(java.lang.String namespace)` Test whether a schema has been imported for a given namespace
`boolean` `isInBackwardsCompatibleMode()` Determine whether Backwards Compatible Mode is used
`void` `issueWarning(java.lang.String s, javax.xml.transform.SourceLocator locator)` Issue a compile-time warning
`XPathContext` `makeEarlyEvaluationContext()` Construct a dynamic context for early evaluation of constant subexpressions

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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:
    `getConfiguration` in interface `StaticContext`
  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:
    `makeEarlyEvaluationContext` in interface `StaticContext`
  Returns:
    a newly constructed dynamic context

### getLocationMap

    public LocationMap getLocationMap()

  Get the location map

  Specified by:
    `getLocationMap` in interface `StaticContext`
  Returns:
    the location map

### issueWarning

    public void issueWarning(java.lang.String s,
                             javax.xml.transform.SourceLocator locator)

  Issue a compile-time warning

  Specified by:
    `issueWarning` in interface `StaticContext`
  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:
    `getNamePool` in interface `StaticContext`
  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:
    `getSystemId` in interface `StaticContext`
  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:
    `getLineNumber` in interface `StaticContext`
  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:
    `getBaseURI` in interface `StaticContext`
  Returns:
    the static base URI, or null if not known

### getURIForPrefix

    public java.lang.String getURIForPrefix(java.lang.String prefix)
                                     throws XPathException

  Get 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:
    `getURIForPrefix` in interface `StaticContext`
  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:
    `getNamespaceResolver` in interface `StaticContext`
  Returns:
    a NamespaceResolver

### getFingerprint

    public int getFingerprint(java.lang.String qname,
                              boolean useDefault)
                       throws XPathException

  Get 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:
    `bindVariable` in interface `StaticContext`
  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:
    `getFunctionLibrary` in interface `StaticContext`
  Returns:
    the function library

### isElementAvailable

    public boolean isElementAvailable(java.lang.String qname)
                               throws XPathException

  Determine if an extension element is available

  Specified by:
    `isElementAvailable` in interface `XSLTStaticContext`
  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:
    `getCollation` in interface `StaticContext`
  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:
    `getDefaultCollationName` in interface `StaticContext`
  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:
    `getDefaultElementNamespace` in interface `StaticContext`
  Returns:
    the default namespace, or NamespaceConstant.NULL for the non-namespace

### getDefaultFunctionNamespace

    public java.lang.String getDefaultFunctionNamespace()

  Get the default function namespace

  Specified by:
    `getDefaultFunctionNamespace` in interface `StaticContext`
  Returns:
    the default namespace for function names

### isInBackwardsCompatibleMode

    public boolean isInBackwardsCompatibleMode()

  Determine whether Backwards Compatible Mode is used

  Specified by:
    `isInBackwardsCompatibleMode` in interface `StaticContext`
  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:
    `isImportedSchema` in interface `StaticContext`
  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:
    `getImportedSchemaNamespaces` in interface `StaticContext`
  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:
    `isAllowedBuiltInType` in interface `StaticContext`
  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

Copyright (c) Saxonica Limited. All rights reserved.