## Xalan-C++ API Documentation

### The Xalan C++ XSLT Processor Version 1.9

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

# XPathExecutionContext Class Reference

Inheritance diagram for XPathExecutionContext:

[legend]
Collaboration diagram for XPathExecutionContext:

[legend]
List of all members.

## Public Types

- typedef XalanVector< XObjectPtr > XObjectArgVectorType
- typedef NodeRefListBase::size_type size_type

## Public Member Functions

- XPathExecutionContext (MemoryManagerType &m_memoryManager, XObjectFactory *theXObjectFactory=0)
- virtual ~XPathExecutionContext ()
- virtual void reset ()=0
    Reset the instance.
- virtual XalanNode * getCurrentNode () const=0
    Retrieve the node currently being executed.
- virtual void pushCurrentNode (XalanNode *theCurrentNode)=0
    Change the node currently being executed.
- virtual void popCurrentNode ()=0
    Reset the node currently being executed.
- XObjectFactory & getXObjectFactory () const
    Retrieve the factory object for creating XObjects.
- virtual bool isNodeAfter (const XalanNode &node1, const XalanNode &node2) const=0
    Determine if a node is after another node, in document order.
- virtual void pushContextNodeList (const NodeRefListBase &theList)=0
    Push the node list for current context.
- virtual void popContextNodeList ()=0
    Pop the node list for current context.
- virtual const NodeRefListBase & getContextNodeList () const=0
    Get the node list for current context.
- virtual size_type getContextNodeListLength () const=0
- virtual size_type getContextNodeListPosition (const XalanNode &contextNode) const=0
- virtual bool elementAvailable (const XalanQName &theQName) const=0
    Determine if an external element is available.
- virtual bool elementAvailable (const XalanDOMString &theName, const LocatorType *locator) const=0
    Determine if an external element is available by resolving a string to a QName.
- virtual bool functionAvailable (const XalanQName &theQName) const=0
    Determine if a function is available.
- virtual bool functionAvailable (const XalanDOMString &theName, const LocatorType *locator) const=0
    Determine if a function is available.
- virtual const XObjectPtr extFunction (const XalanDOMString &theNamespace, const XalanDOMString &functionName, XalanNode *context, const XObjectArgVectorType &argVec, const LocatorType *locator)=0
    Handle an extension function.
- virtual XalanDocument * parseXML (MemoryManagerType &theManager, const XalanDOMString &urlString, const XalanDOMString &base) const=0
    Provides support for XML parsing service.
- virtual MutableNodeRefList * borrowMutableNodeRefList ()=0
    Borrow a cached MutableNodeRefList instance.
- virtual bool returnMutableNodeRefList (MutableNodeRefList *theList)=0
    Return a previously borrowed MutableNodeRefList instance.
- virtual XalanDOMString & getCachedString ()=0
    Get a cached string for temporary use.
- virtual bool releaseCachedString (XalanDOMString &theString)=0
    Return a cached string.
- virtual MutableNodeRefList * createMutableNodeRefList (MemoryManagerType &theManager) const=0
    Create a MutableNodeRefList with the appropriate context.
- virtual void getNodeSetByKey (XalanDocument *doc, const XalanQName &qname, const XalanDOMString &ref, MutableNodeRefList &nodelist)=0
    Given a valid element key, return the corresponding node list.
- virtual void getNodeSetByKey (XalanDocument *doc, const XalanDOMString &name, const XalanDOMString &ref, const LocatorType *locator, MutableNodeRefList &nodelist)=0
    Given a valid element key, return the corresponding node list.
- virtual const XObjectPtr getVariable (const XalanQName &name, const LocatorType *locator=0)=0
    Given a name, locate a variable in the current context, and return a pointer to the object.
- virtual const PrefixResolver * getPrefixResolver () const=0
    Retrieve the resolver for namespaces.
- virtual void setPrefixResolver (const PrefixResolver *thePrefixResolver)=0
    Change the resolver for namespaces.
- virtual const XalanDOMString * getNamespaceForPrefix (const XalanDOMString &prefix) const=0
    Retrieve the URI corresponding to a namespace prefix.
- virtual const XalanDOMString & findURIFromDoc (const XalanDocument *owner) const=0
    Given a DOM Document, tell what URI was used to parse it.
- virtual const XalanDOMString & getUnparsedEntityURI (const XalanDOMString &theName, const XalanDocument &theDocument) const=0
    The getUnparsedEntityURI function returns the URI of the unparsed entity with the specified name in the same document as the context node (see [3.3 Unparsed Entities]).
- virtual bool shouldStripSourceNode (const XalanText &node)=0
    Tells, through the combination of the default-space attribute on xsl:stylesheet, xsl:strip-space, xsl:preserve-space, and the xml:space attribute, whether or not extra whitespace should be stripped from the node.
- virtual XalanDocument * getSourceDocument (const XalanDOMString &theURI) const=0
    Get the document associated with the given URI.
- virtual void setSourceDocument (const XalanDOMString &theURI, XalanDocument *theDocument)=0
    Associate a document with a given URI.
- virtual void formatNumber (double number, const XalanDOMString &pattern, XalanDOMString &theResult, const XalanNode *context=0, const LocatorType *locator=0)=0
    Formats a number according to the specified pattern.
- virtual void formatNumber (double number, const XalanDOMString &pattern, const XalanDOMString &dfsName, XalanDOMString &theResult, const XalanNode *context=0, const LocatorType *locator=0)=0
    Formats a number according to the specified pattern.
- virtual void error (const XalanDOMString &msg, const XalanNode *sourceNode=0, const LocatorType *locator=0) const=0
    Report an error and throw an exception.
- virtual void warn (const XalanDOMString &msg, const XalanNode *sourceNode=0, const LocatorType *locator=0) const=0
    Report a warning.
- virtual void message (const XalanDOMString &msg, const XalanNode *sourceNode=0, const LocatorType *locator=0) const=0
    Output a message.

## Protected Attributes

- XObjectFactory * m_xobjectFactory

## Member Typedef Documentation

typedef NodeRefListBase::size_type XPathExecutionContext::size_type

typedef XalanVector<XObjectPtr> XPathExecutionContext::XObjectArgVectorType

## Constructor & Destructor Documentation

XPathExecutionContext::XPathExecutionContext | ( | MemoryManagerType & | m_memoryManager,
|  | XObjectFactory * | theXObjectFactory = 0
| ) | `[explicit]`

virtual XPathExecutionContext::~XPathExecutionContext | ( |  | ) | `[virtual]`

## Member Function Documentation

virtual MutableNodeRefList* XPathExecutionContext::borrowMutableNodeRefList | ( |  | ) | `[pure virtual]`

Borrow a cached MutableNodeRefList instance.

Returns:
  A pointer to the instance.

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual MutableNodeRefList* XPathExecutionContext::createMutableNodeRefList | ( | MemoryManagerType & | theManager | ) | const`[pure virtual]`

Create a MutableNodeRefList with the appropriate context.

Returns:
  pointer to node list created

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual bool XPathExecutionContext::elementAvailable | ( | const XalanDOMString & | theName,
|  | const LocatorType * | locator
| ) | const`[pure virtual]`

Determine if an external element is available by resolving a string to a QName.

Parameters:

  theName | The name of the element
  locator | A LocatorType instance for error reporting

Returns:
  whether the given element is available or not

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual bool XPathExecutionContext::elementAvailable | ( | const XalanQName & | theQName | ) | const`[pure virtual]`

Determine if an external element is available.

Parameters:

  theQName | The QName of the element

Returns:
  whether the given element is available or not

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::error | ( | const XalanDOMString & | msg,
|  | const XalanNode * | sourceNode = 0,
|  | const LocatorType * | locator = 0
| ) | const`[pure virtual]`

Report an error and throw an exception.

Parameters:

  msg | The text of the message.
  sourceNode | The source node where the error occurred. May be 0.
  locator | A Locator to determine where the error occurred. May be 0.

Implements ExecutionContext.

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual const XObjectPtr XPathExecutionContext::extFunction | ( | const XalanDOMString & | theNamespace,
|  | const XalanDOMString & | functionName,
|  | XalanNode * | context,
|  | const XObjectArgVectorType & | argVec,
|  | const LocatorType * | locator
| ) | `[pure virtual]`

Handle an extension function.

Parameters:

  theNamespace | namespace of function
  functionName | extension function name
  context | The context node
  argVec | vector of arguments to function
  locator | A LocatorType instance for error reporting

Returns:
  pointer to XObject result

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual const XalanDOMString& XPathExecutionContext::findURIFromDoc | ( | const XalanDocument * | owner | ) | const`[pure virtual]`

Given a DOM Document, tell what URI was used to parse it.

Needed for relative resolution.

Parameters:

  owner | source document

Returns:
  document URI

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::formatNumber | ( | double | number,
|  | const XalanDOMString & | pattern,
|  | const XalanDOMString & | dfsName,
|  | XalanDOMString & | theResult,
|  | const XalanNode * | context = 0,
|  | const LocatorType * | locator = 0
| ) | `[pure virtual]`

Formats a number according to the specified pattern.

Parameters:

  number | the number to be formatted
  pattern | the format pattern
  dfsName | the name of decimal format to use
  theResult | the formatted number
  context | the source node
  locator | the locator

Returns:
  a pointer to the functor, 0 if none was found

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::formatNumber | ( | double | number,
|  | const XalanDOMString & | pattern,
|  | XalanDOMString & | theResult,
|  | const XalanNode * | context = 0,
|  | const LocatorType * | locator = 0
| ) | `[pure virtual]`

Formats a number according to the specified pattern.

Parameters:

  number | the number to be formatted
  pattern | the format pattern
  theResult | the formatted number
  context | the source node
  locator | the locator

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual bool XPathExecutionContext::functionAvailable | ( | const XalanDOMString & | theName,
|  | const LocatorType * | locator
| ) | const`[pure virtual]`

Determine if a function is available.

Parameters:

  theName | The name of the function
  locator | A LocatorType instance for error reporting

Returns:
  whether the function is available or not

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual bool XPathExecutionContext::functionAvailable | ( | const XalanQName & | theQName | ) | const`[pure virtual]`

Determine if a function is available.

Parameters:

  theQName | The QName of the function

Returns:
  whether the function is available or not

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual XalanDOMString& XPathExecutionContext::getCachedString | ( |  | ) | `[pure virtual]`

Get a cached string for temporary use.

Returns:
  A reference to the string

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual const NodeRefListBase& XPathExecutionContext::getContextNodeList | ( |  | ) | const`[pure virtual]`

Get the node list for current context.

Returns:
  node list

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual size_type XPathExecutionContext::getContextNodeListLength | ( |  | ) | const`[pure virtual]`

| Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual size_type XPathExecutionContext::getContextNodeListPosition | ( | const XalanNode & | contextNode | ) | const`[pure virtual]`

| Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual XalanNode* XPathExecutionContext::getCurrentNode | ( |  | ) | const`[pure virtual]`

Retrieve the node currently being executed.

Returns:
  current node

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual const XalanDOMString* XPathExecutionContext::getNamespaceForPrefix | ( | const XalanDOMString & | prefix | ) | const`[pure virtual]`

Retrieve the URI corresponding to a namespace prefix.

Parameters:

  prefix | prefix for a namespace

Returns:
  URI corresponding to namespace

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::getNodeSetByKey | ( | XalanDocument * | doc,
|  | const XalanDOMString & | name,
|  | const XalanDOMString & | ref,
|  | const LocatorType * | locator,
|  | MutableNodeRefList & | nodelist
| ) | `[pure virtual]`

Given a valid element key, return the corresponding node list.

Parameters:

  doc | source document
  name | name of the key, which must match the 'name' attribute on xsl:key. Will be resolved to a qname using the provided resolver.
  ref | value that must match the value found by the 'match' attribute on xsl:key
  locator | The LocatorType to use for error reporting. Can be 0.
  nodelist | A node list to contain the nodes found

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::getNodeSetByKey | ( | XalanDocument * | doc,
|  | const XalanQName & | qname,
|  | const XalanDOMString & | ref,
|  | MutableNodeRefList & | nodelist
| ) | `[pure virtual]`

Given a valid element key, return the corresponding node list.

Parameters:

  doc | source document
  name | qname of the key, which must match the 'name' attribute on xsl:key
  ref | value that must match the value found by the 'match' attribute on xsl:key
  nodelist | A node list to contain the nodes found

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual const PrefixResolver* XPathExecutionContext::getPrefixResolver | ( |  | ) | const`[pure virtual]`

Retrieve the resolver for namespaces.

Returns:
  object for namespace resolution

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual XalanDocument* XPathExecutionContext::getSourceDocument | ( | const XalanDOMString & | theURI | ) | const`[pure virtual]`

Get the document associated with the given URI.

Parameters:

  theURI | document URI

Returns:
  a pointer to the document instance, if any.

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual const XalanDOMString& XPathExecutionContext::getUnparsedEntityURI | ( | const XalanDOMString & | theName,
|  | const XalanDocument & | theDocument
| ) | const`[pure virtual]`

The getUnparsedEntityURI function returns the URI of the unparsed entity with the specified name in the same document as the context node (see [3.3 Unparsed Entities]).

It returns the empty string if there is no such entity.

Parameters:

  theName | name of entity
  theDocument | document containing entity

Returns:
  URI for the entity

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual const XObjectPtr XPathExecutionContext::getVariable | ( | const XalanQName & | name,
|  | const LocatorType * | locator = 0
| ) | `[pure virtual]`

Given a name, locate a variable in the current context, and return a pointer to the object.

Parameters:

  theName | name of variable

Returns:
  An XObjectPtr instance. If the variable is not found, an exception is thrown, or the routine returns an instance of XUnknown.

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

XObjectFactory& XPathExecutionContext::getXObjectFactory | ( |  | ) | const

Retrieve the factory object for creating XObjects.

Returns:
  factory object instance

virtual bool XPathExecutionContext::isNodeAfter | ( | const XalanNode & | node1,
|  | const XalanNode & | node2
| ) | const`[pure virtual]`

Determine if a node is after another node, in document order.

Parameters:

  node1 | The first node
  node2 | The second node

Returns:
  true if node1 one is after node2, or false if it is not.

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::message | ( | const XalanDOMString & | msg,
|  | const XalanNode * | sourceNode = 0,
|  | const LocatorType * | locator = 0
| ) | const`[pure virtual]`

Output a message.

Parameters:

  msg | The text of the message.
  sourceNode | The source node where the message occurred. May be 0.
  locator | A Locator to determine where the message occurred. May be 0.

Implements ExecutionContext.

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual XalanDocument* XPathExecutionContext::parseXML | ( | MemoryManagerType & | theManager,
|  | const XalanDOMString & | urlString,
|  | const XalanDOMString & | base
| ) | const`[pure virtual]`

Provides support for XML parsing service.

Parameters:

  urlString | location of the XML
  base | base location for URI

Returns:
  parsed document

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::popContextNodeList | ( |  | ) | `[pure virtual]`

| Pop the node list for current context. Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::popCurrentNode | ( |  | ) | `[pure virtual]`

| Reset the node currently being executed. Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::pushContextNodeList | ( | const NodeRefListBase & | theList | ) | `[pure virtual]`

Push the node list for current context.

Parameters:

  theList | new node list

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::pushCurrentNode | ( | XalanNode * | theCurrentNode | ) | `[pure virtual]`

Change the node currently being executed.

Parameters:

  theCurrentNode | new current node

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual bool XPathExecutionContext::releaseCachedString | ( | XalanDOMString & | theString | ) | `[pure virtual]`

Return a cached string.

Parameters:

  theString | The string to release.

Returns:
  true if the string was released successfully.

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::reset | ( |  | ) | `[pure virtual]`

| Reset the instance. This must be called before another execution is attempted. Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual bool XPathExecutionContext::returnMutableNodeRefList | ( | MutableNodeRefList * | theList | ) | `[pure virtual]`

Return a previously borrowed MutableNodeRefList instance.

Parameters:

  theList | A pointer the to previously borrowed instance.

Returns:
  true if the list was borrowed (at therefore, destroyed), false if not.

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::setPrefixResolver | ( | const PrefixResolver * | thePrefixResolver | ) | `[pure virtual]`

Change the resolver for namespaces.

Parameters:

  thePrefixResolver | new object for namespace resolution

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::setSourceDocument | ( | const XalanDOMString & | theURI,
|  | XalanDocument * | theDocument
| ) | `[pure virtual]`

Associate a document with a given URI.

Parameters:

  theURI | document URI
  theDocument | source document

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual bool XPathExecutionContext::shouldStripSourceNode | ( | const XalanText & | node | ) | `[pure virtual]`

Tells, through the combination of the default-space attribute on xsl:stylesheet, xsl:strip-space, xsl:preserve-space, and the xml:space attribute, whether or not extra whitespace should be stripped from the node.

Literal elements from template elements should not be tested with this function.

Parameters:

  textNode | text node from the source tree

Returns:
  true if the text node should be stripped of extra whitespace

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

virtual void XPathExecutionContext::warn | ( | const XalanDOMString & | msg,
|  | const XalanNode * | sourceNode = 0,
|  | const LocatorType * | locator = 0
| ) | const`[pure virtual]`

Report a warning.

Parameters:

  msg | The text of the message.
  sourceNode | The source node where the warning occurred. May be 0.
  locator | A Locator to determine where the warning occurred. May be 0.

Implements ExecutionContext.

Implemented in XPathExecutionContextDefault, StylesheetExecutionContext, and StylesheetExecutionContextDefault.

## Member Data Documentation

XObjectFactory* XPathExecutionContext::m_xobjectFactory `[protected]`

The documentation for this class was generated from the following file:

- XPathExecutionContext.hpp

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

Xalan-C++ XSLT Processor Version 1.9 Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.