Package net.sf.saxon.xpath
Class JAXPXPathStaticContext
java.lang.Object
net.sf.saxon.sxpath.AbstractStaticContext
net.sf.saxon.xpath.JAXPXPathStaticContext
- All Implemented Interfaces:
Serializable
,SourceLocator
,Container
,StaticContext
,NamespaceResolver
public class JAXPXPathStaticContext
extends AbstractStaticContext
implements StaticContext, NamespaceResolver, Container
A StandaloneContext provides a context for parsing an XPath expression
in a context other than a stylesheet. In particular, it is used to support
the JAXP 1.3 XPath API. The JAXP API does not actually expose the StaticContext
object directly; rather, the static context (namespaces, variables, and functions)
is manipulated through the XPath object, implemented in Saxon by the
XPathEvaluator
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionJAXPXPathStaticContext
(Configuration config) Create a StandaloneContext using a specific Configuration. -
Method Summary
Modifier and TypeMethodDescriptionfinal VariableReference
bindVariable
(StructuredQName qName) Bind a variable used in an XPath Expression to the XSLVariable element in which it is declared.Get the set of imported schemasGet the NamespaceContext that was set usingsetNamespaceContext(javax.xml.namespace.NamespaceContext)
Get a namespace resolver to resolve the namespaces declared in this static context.Get the stack frame map containing the slot number allocations for the variables declared in this static contextgetURIForPrefix
(String prefix) Get the URI for a prefix, using the declared namespaces as the context for namespace resolution.getURIForPrefix
(String prefix, boolean useDefault) Get the namespace URI corresponding to a given prefix.Get the XPathVariableResolvervoid
importSchema
(Source source) Import a schema.boolean
isImportedSchema
(String namespace) Determine whether a Schema for a given target namespace has been imported.Get an iterator over all the prefixes declared in this namespace context.void
setNamespaceContext
(NamespaceContext context) Supply the NamespaceContext used to resolve namespaces.void
setXPathFunctionResolver
(XPathFunctionResolver xPathFunctionResolver) void
Set an XPathVariableResolver.Methods inherited from class net.sf.saxon.sxpath.AbstractStaticContext
addFunctionLibrary, declareCollation, getBaseURI, getCollation, getColumnNumber, getConfiguration, getDefaultCollationName, getDefaultElementNamespace, getDefaultFunctionNamespace, getExecutable, getFunctionLibrary, getHostLanguage, getLineNumber, getLocationMap, getLocationProvider, getNamePool, getPublicId, getSystemId, isAllowedBuiltInType, isInBackwardsCompatibleMode, issueWarning, makeEarlyEvaluationContext, replaceSubExpression, setBackwardsCompatibilityMode, setBaseURI, setConfiguration, setDefaultElementNamespace, setDefaultFunctionLibrary, setDefaultFunctionNamespace, setFunctionLibrary, setLocationMap
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.sf.saxon.expr.Container
getExecutable, getHostLanguage, getLocationProvider, replaceSubExpression
Methods inherited from interface javax.xml.transform.SourceLocator
getColumnNumber, getLineNumber, getPublicId, getSystemId
Methods inherited from interface net.sf.saxon.expr.StaticContext
getBaseURI, getCollation, getConfiguration, getDefaultCollationName, getDefaultElementNamespace, getDefaultFunctionNamespace, getFunctionLibrary, getLineNumber, getLocationMap, getNamePool, getSystemId, isAllowedBuiltInType, isInBackwardsCompatibleMode, issueWarning, makeEarlyEvaluationContext
-
Constructor Details
-
JAXPXPathStaticContext
Create a StandaloneContext using a specific Configuration.- Parameters:
config
- the Configuration. For schema-aware XPath expressions, this must be a SchemaAwareConfiguration.
-
-
Method Details
-
setNamespaceContext
Supply the NamespaceContext used to resolve namespaces. -
getNamespaceContext
Get the NamespaceContext that was set usingsetNamespaceContext(javax.xml.namespace.NamespaceContext)
-
getStackFrameMap
Get the stack frame map containing the slot number allocations for the variables declared in this static context -
setXPathVariableResolver
Set an XPathVariableResolver. This is used to resolve variable references if no variable has been explicitly declared.- Parameters:
resolver
- A JAXP 1.3 XPathVariableResolver
-
getXPathVariableResolver
Get the XPathVariableResolver -
setXPathFunctionResolver
-
getXPathFunctionResolver
-
getURIForPrefix
Get the URI for a prefix, using the declared namespaces as the context for namespace resolution. The default namespace is NOT used when the prefix is empty. This method is provided for use by the XPath parser.- Specified by:
getURIForPrefix
in interfaceStaticContext
- Parameters:
prefix
- The prefix- Returns:
- the corresponding namespace URI
- Throws:
XPathException
- if the prefix is not declared
-
getNamespaceResolver
Description copied from interface:StaticContext
Get a namespace resolver to resolve the namespaces declared in this static context.- Specified by:
getNamespaceResolver
in interfaceStaticContext
- Returns:
- a namespace resolver.
-
getURIForPrefix
Get the namespace URI corresponding to a given prefix. Return null if the prefix is not in scope. This method searches any namespace context supplied usingsetNamespaceContext(javax.xml.namespace.NamespaceContext)
.- Specified by:
getURIForPrefix
in interfaceNamespaceResolver
- Parameters:
prefix
- the namespace prefixuseDefault
- true if the default namespace for elements and types is to be used when the prefix is ""- Returns:
- the uri for the namespace, or null if the prefix is not in scope. Return "" if the prefix maps to the null namespace.
-
iteratePrefixes
Get an iterator over all the prefixes declared in this namespace context. This method is implemented only in the case where the NamespaceContext supplied usingsetNamespaceContext(javax.xml.namespace.NamespaceContext)
is an instance of Saxon'sNamespaceResolver
class. In other cases the method throws an UnsupportedOperationException- Specified by:
iteratePrefixes
in interfaceNamespaceResolver
- Returns:
- an iterator over all the inscope namespace prefixes, if available
- Throws:
UnsupportedOperationException
- if the NamespaceContext object is not a NamespaceResolver.
-
bindVariable
Bind a variable used in an XPath Expression to the XSLVariable element in which it is declared. This method is provided for use by the XPath parser, and it should not be called by the user of the API.- Specified by:
bindVariable
in interfaceStaticContext
- Parameters:
qName
-- Returns:
- a VariableReference representing the variable reference, suitably initialized to refer to the corresponding variable declaration
- Throws:
XPathException
- if no VariableResolver has been supplied.
-
importSchema
Import a schema. This is possible only if the schema-aware version of Saxon is being used, and if the Configuration is a SchemaAwareConfiguration. Having imported a schema, the types defined in that schema become part of the static context.- Parameters:
source
- A Source object identifying the schema document to be loaded- Throws:
SchemaException
- if the schema contained in this document is invalidUnsupportedOperationException
- if the configuration is not schema-aware
-
isImportedSchema
Determine whether a Schema for a given target namespace has been imported. Note that the in-scope element declarations, attribute declarations and schema types are the types registered with the (schema-aware) configuration, provided that their namespace URI is registered in the static context as being an imported schema namespace. (A consequence of this is that within a Configuration, there can only be one schema for any given namespace, including the null namespace).- Specified by:
isImportedSchema
in interfaceStaticContext
- Parameters:
namespace
- the target namespace in question- Returns:
- true if schema components for the given namespace have been imported into the schema-aware configuration
-
getImportedSchemaNamespaces
Get the set of imported schemas- Specified by:
getImportedSchemaNamespaces
in interfaceStaticContext
- Returns:
- a Set, the set of URIs representing the names of imported schemas
-