net.sf.saxon.xpath

Class JAXPXPathStaticContext

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
Constructor Summary
JAXPXPathStaticContext(Configuration config)
Create a StandaloneContext using a specific Configuration.
Method Summary
ExpressionbindVariable(StructuredQName qName)
Bind a variable used in an XPath Expression to the XSLVariable element in which it is declared.
intgetContainerGranularity()
Get the granularity of the container.
SetgetImportedSchemaNamespaces()
Get the set of imported schemas
NamespaceContextgetNamespaceContext()
Get the NamespaceContext that was set using
NamespaceResolvergetNamespaceResolver()
SlotManagergetStackFrameMap()
Get the stack frame map containing the slot number allocations for the variables declared in this static context
StringgetURIForPrefix(String prefix)
Get the URI for a prefix, using the declared namespaces as the context for namespace resolution.
StringgetURIForPrefix(String prefix, boolean useDefault)
Get the namespace URI corresponding to a given prefix.
XPathFunctionResolvergetXPathFunctionResolver()
XPathVariableResolvergetXPathVariableResolver()
Get the XPathVariableResolver
voidimportSchema(Source source)
Import a schema.
booleanisImportedSchema(String namespace)
Determine whether a Schema for a given target namespace has been imported.
IteratoriteratePrefixes()
Get an iterator over all the prefixes declared in this namespace context.
voidsetNamespaceContext(NamespaceContext context)
Supply the NamespaceContext used to resolve namespaces.
voidsetXPathFunctionResolver(XPathFunctionResolver xPathFunctionResolver)
voidsetXPathVariableResolver(XPathVariableResolver resolver)
Set an XPathVariableResolver.

Constructor Detail

JAXPXPathStaticContext

public JAXPXPathStaticContext(Configuration config)
Create a StandaloneContext using a specific Configuration.

Parameters: config the Configuration. For schema-aware XPath expressions, this must be an EnterpriseConfiguration.

Method Detail

bindVariable

public final Expression bindVariable(StructuredQName qName)
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.

Parameters: qName

Throws: XPathException if no VariableResolver has been supplied.

getContainerGranularity

public int getContainerGranularity()
Get the granularity of the container.

Returns: 0 for a temporary container created during parsing; 1 for a container that operates at the level of an XPath expression; 2 for a container at the level of a global function or template

getImportedSchemaNamespaces

public Set getImportedSchemaNamespaces()
Get the set of imported schemas

Returns: a Set, the set of URIs representing the names of imported schemas

getNamespaceContext

public NamespaceContext getNamespaceContext()
Get the NamespaceContext that was set using JAXPXPathStaticContext

getNamespaceResolver

public NamespaceResolver getNamespaceResolver()

getStackFrameMap

public SlotManager getStackFrameMap()
Get the stack frame map containing the slot number allocations for the variables declared in this static context

getURIForPrefix

public String getURIForPrefix(String prefix)
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.

Parameters: prefix The prefix

Throws: net.sf.saxon.trans.XPathException if the prefix is not declared

getURIForPrefix

public String getURIForPrefix(String prefix, boolean useDefault)
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 using setNamespaceContext.

Parameters: prefix the namespace prefix useDefault 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.

getXPathFunctionResolver

public XPathFunctionResolver getXPathFunctionResolver()

getXPathVariableResolver

public XPathVariableResolver getXPathVariableResolver()
Get the XPathVariableResolver

importSchema

public void importSchema(Source source)
Import a schema. This is possible only if Saxon-EE is being used, and if the Configuration is a EnterpriseConfiguration. 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: net.sf.saxon.type.SchemaException if the schema contained in this document is invalid UnsupportedOperationException if the configuration is not schema-aware

isImportedSchema

public boolean isImportedSchema(String namespace)
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).

Returns: true if schema components for the given namespace have been imported into the schema-aware configuration

iteratePrefixes

public Iterator 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 using JAXPXPathStaticContext is an instance of Saxon's NamespaceResolver class. In other cases the method throws an UnsupportedOperationException

Returns: an iterator over all the inscope namespace prefixes, if available

Throws: UnsupportedOperationException if the NamespaceContext object is not a NamespaceResolver.

setNamespaceContext

public void setNamespaceContext(NamespaceContext context)
Supply the NamespaceContext used to resolve namespaces.

setXPathFunctionResolver

public void setXPathFunctionResolver(XPathFunctionResolver xPathFunctionResolver)

setXPathVariableResolver

public void setXPathVariableResolver(XPathVariableResolver resolver)
Set an XPathVariableResolver. This is used to resolve variable references if no variable has been explicitly declared.

Parameters: resolver A JAXP 1.3 XPathVariableResolver