StaticContext
Date: 2016-07-03

com.icl.saxon.expr

## Interface StaticContext

- All Known Implementing Classes:
    ExpressionContext, StandaloneContext

      public interface StaticContext

  A StaticContext contains the information needed while an expression or pattern is being parsed. The information is also sometimes needed at run-time.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `allowsKeyFunction()` Determine whether the key() function is permmitted in this context
    `Binding` | `bindVariable(int fingerprint)` Bind a variable to an object that can be used to refer to it
    `boolean` | `forwardsCompatibleModeIsEnabled()` Determine whether forwards-compatible mode is enabled
    `java.lang.String` | `getBaseURI()` Get the Base URI of the stylesheet element, for resolving any relative URI's used in the expression.
    `java.lang.Class` | `getExternalJavaClass(java.lang.String uri)` Get an external Java class corresponding to a given namespace prefix, if there is one.
    `int` | `getFingerprint(java.lang.String qname, boolean useDefault)` Get a fingerprint for a name, using this as the context for namespace resolution
    `int` | `getLineNumber()` Get the line number of the expression within its containing entity Returns -1 if no line number is available
    `Function` | `getStyleSheetFunction(int fingerprint)`
    `java.lang.String` | `getSystemId()` Get the System ID of the container of the expression.
    `java.lang.String` | `getURIForPrefix(java.lang.String prefix)` Get the URI for a prefix, using this Element as the context for namespace resolution
    `java.lang.String` | `getVersion()` Get the effective XSLT version in this region of the stylesheet
    `boolean` | `isElementAvailable(java.lang.String qname)` Determine if an extension element is available
    `boolean` | `isExtensionNamespace(short uriCode)` Determine whether a given URI code identifies an extension element namespace
    `boolean` | `isFunctionAvailable(java.lang.String qname)` Determine if a function is available
    `int` | `makeNameCode(java.lang.String qname, boolean useDefault)` Make a NameCode, using this Element as the context for namespace resolution
    `NamespaceTest` | `makeNamespaceTest(short nodeType, java.lang.String prefix)` Make a NamespaceTest, using this element as the context for namespace resolution
    `NameTest` | `makeNameTest(short nodeType, java.lang.String qname, boolean useDefault)` Make a NameTest, using this element as the context for namespace resolution
    `StaticContext` | `makeRuntimeContext(NamePool pool)` Copy the context with a different namepool

- - ### Method Detail

    - #### makeRuntimeContext

          StaticContext makeRuntimeContext(NamePool pool)

      Copy the context with a different namepool

    - #### getSystemId

          java.lang.String getSystemId()

      Get the System ID of the container of the expression. This is the containing entity (file) and is therefore useful for diagnostics. Use getBaseURI() to get the base URI, which may be different.

    - #### getLineNumber

          int getLineNumber()

      Get the line number of the expression within its containing entity Returns -1 if no line number is available

    - #### getBaseURI

          java.lang.String getBaseURI()

      Get the Base URI of the stylesheet element, for resolving any relative URI's used in the expression. Used by the document() function.

    - #### getURIForPrefix

          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
      Parameters:
        `prefix` - The prefix
      Throws:
        `XPathException`

    - #### makeNameCode

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

      Make a NameCode, using this Element as the context for namespace resolution
      Parameters:
        `qname` - The name as written, in the form "[prefix:]localname"
      Throws:
        `XPathException`

    - #### getFingerprint

          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"
      Returns:
        -1 if the name is not already present in the name pool
      Throws:
        `XPathException`

    - #### makeNameTest

          NameTest makeNameTest(short nodeType,
                              java.lang.String qname,
                              boolean useDefault)
                                throws XPathException

      Make a NameTest, using this element as the context for namespace resolution
      Throws:
        `XPathException`

    - #### makeNamespaceTest

          NamespaceTest makeNamespaceTest(short nodeType,
                                        java.lang.String prefix)
                                          throws XPathException

      Make a NamespaceTest, using this element as the context for namespace resolution
      Throws:
        `XPathException`

    - #### bindVariable

          Binding bindVariable(int fingerprint)
                               throws XPathException

      Bind a variable to an object that can be used to refer to it
      Parameters:
        `fingerprint` - The fingerprint of the variable name
      Returns:
        a Binding object that can be used to identify it in the Bindery
      Throws:
        `XPathException` - if the variable has not been declared, or if the context does not allow the use of variables

    - #### isExtensionNamespace

          boolean isExtensionNamespace(short uriCode)
                                       throws XPathException

      Determine whether a given URI code identifies an extension element namespace
      Throws:
        `XPathException`

    - #### forwardsCompatibleModeIsEnabled

          boolean forwardsCompatibleModeIsEnabled()
                                                  throws XPathException

      Determine whether forwards-compatible mode is enabled
      Throws:
        `XPathException`

    - #### getStyleSheetFunction

          Function getStyleSheetFunction(int fingerprint)
                                         throws XPathException

      Throws:
        `XPathException`

    - #### getExternalJavaClass

          java.lang.Class getExternalJavaClass(java.lang.String uri)
                                               throws javax.xml.transform.TransformerException

      Get an external Java class corresponding to a given namespace prefix, if there is one.
      Parameters:
        `uri` - The namespace URI corresponding to the prefix used in the function call.
      Returns:
        the Java class if a suitable class exists, otherwise return null.
      Throws:
        `javax.xml.transform.TransformerException` - if the class is found, but cannot be loaded.

    - #### isElementAvailable

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

      Determine if an extension element is available
      Throws:
        `XPathException`

    - #### isFunctionAvailable

          boolean isFunctionAvailable(java.lang.String qname)
                                      throws XPathException

      Determine if a function is available
      Throws:
        `XPathException`

    - #### allowsKeyFunction

          boolean allowsKeyFunction()

      Determine whether the key() function is permmitted in this context

    - #### getVersion

          java.lang.String getVersion()

      Get the effective XSLT version in this region of the stylesheet