Class 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 Detail

      • ExpressionContext

        public ExpressionContext​(StyleElement styleElement)
    • Method Detail

      • issueWarning

        public void issueWarning​(java.lang.String s,
                                 javax.xml.transform.SourceLocator locator)
        Issue a compile-time warning
        Specified by:
        issueWarning in interface StaticContext
      • 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
      • 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
      • 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
      • 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
        Throws:
        XPathException - if the prefix is not declared
      • 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
      • bindVariable

        public VariableReference bindVariable​(int fingerprint)
                                       throws StaticError
        Bind a variable to an object that can be used to refer to it
        Specified by:
        bindVariable in interface StaticContext
        Parameters:
        fingerprint - The fingerprint of the variable name
        Returns:
        a VariableDeclaration object that can be used to identify it in the Bindery
        Throws:
        StaticError - if the variable has not been declared
      • getCollation

        public java.util.Comparator 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 short getDefaultElementNamespace()
        Get the default XPath namespace, as a namespace code that can be looked up in the NamePool
        Specified by:
        getDefaultElementNamespace in interface StaticContext
      • 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​(AtomicType 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
      • getStyleElement

        public StyleElement getStyleElement()
        Get the stylesheet element containing this XPath expression
        Returns:
        the element in the tree representation of the source stylesheet