## Xalan-C++ API Documentation

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

Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members

# XPathExecutionContextDefault Class Reference

A basic implementation of the class XPathExecutionContext. More...

`#include <XPathExecutionContextDefault.hpp>`

Inheritance diagram for XPathExecutionContextDefault:

[legend]
Collaboration diagram for XPathExecutionContextDefault:

[legend]
List of all members.

## Public Methods

- XPathExecutionContextDefault (XPathEnvSupport &theXPathEnvSupport, DOMSupport &theDOMSupport, XObjectFactory &theXObjectFactory, XalanNode *theCurrentNode=0, const NodeRefListBase *theContextNodeList=0, const PrefixResolver *thePrefixResolver=0)
    Construct an XPathExecutionContextDefault object. More...
- XPathExecutionContextDefault (XalanNode *theCurrentNode=0, const NodeRefListBase *theContextNodeList=0, const PrefixResolver *thePrefixResolver=0)
    Construct an XPathExecutionContextDefault object. More...
- virtual ~XPathExecutionContextDefault ()
- XPathEnvSupport* getXPathEnvSupport () const
    Get the XPathEnvSupport instance. More...
- void setXPathEnvSupport (XPathEnvSupport *theSupport)
    Set the XPathEnvSupport instance. More...
- void setDOMSupport (DOMSupport *theDOMSupport)
    Set the DOMSupport instance. More...
- void setXObjectFactory (XObjectFactory *theXObjectFactory)
    Set the XObjectFactory instance. More...
- XalanQNameByValue& getScratchQName () const
    Get a reference to the scratch QNameByValue instance. More...
- virtual void reset ()
    Reset the instance. More...
- virtual XalanNode* getCurrentNode () const
    Retrieve the node currently being executed. More...
- virtual void setCurrentNode (XalanNode *theCurrentNode)
    Change the node currently being executed. More...
- virtual bool isNodeAfter (const XalanNode &node1, const XalanNode &node2) const
    Determine if a node is after another node, in document order. More...
- virtual const NodeRefListBase& getContextNodeList () const
    Retrieve node list for current context. More...
- virtual void setContextNodeList (const NodeRefListBase &theList)
    Set node list for current context. More...
- virtual size_type getContextNodeListLength () const
- virtual size_type getContextNodeListPosition (const XalanNode &contextNode) const
- virtual bool elementAvailable (const XalanQName &theQName) const
    Determine if an external element is available. More...
- virtual bool elementAvailable (const XalanDOMString &theName, const LocatorType *locator) const
    Determine if an external element is available by resolving a string to a QName. More...
- virtual bool functionAvailable (const XalanQName &theQName) const
    Determine if a function is available. More...
- virtual bool functionAvailable (const XalanDOMString &theName, const LocatorType *locator) const
    Determine if a function is available. More...
- virtual const XObjectPtr extFunction (const XalanDOMString &theNamespace, const XalanDOMString &functionName, XalanNode *context, const XObjectArgVectorType &argVec, const LocatorType *locator)
    Handle an extension function. More...
- virtual XalanDocument* parseXML (const XalanDOMString &urlString, const XalanDOMString &base) const
    Provides support for XML parsing service. More...
- virtual MutableNodeRefList* borrowMutableNodeRefList ()
    Borrow a cached MutableNodeRefList instance. More...
- virtual bool returnMutableNodeRefList (MutableNodeRefList *theList)
    Return a previously borrowed MutableNodeRefList instance. More...
- virtual MutableNodeRefList* createMutableNodeRefList () const
    Create a MutableNodeRefList with the appropriate context. More...
- virtual XalanDOMString& getCachedString ()
    Get a cached string for temporary use. More...
- virtual bool releaseCachedString (XalanDOMString &theString)
    Return a cached string. More...
- virtual void getNodeSetByKey (XalanDocument *doc, const XalanQName &qname, const XalanDOMString &ref, MutableNodeRefList &nodelist)
    Given a valid element key, return the corresponding node list. More...
- virtual void getNodeSetByKey (XalanDocument *doc, const XalanDOMString &name, const XalanDOMString &ref, const LocatorType *locator, MutableNodeRefList &nodelist)
    Given a valid element key, return the corresponding node list. More...
- virtual const XObjectPtr getVariable (const XalanQName &name, const LocatorType *locator=0)
    Given a name, locate a variable in the current context, and return a pointer to the object. More...
- virtual const PrefixResolver* getPrefixResolver () const
    Retrieve the resolver for namespaces. More...
- virtual void setPrefixResolver (const PrefixResolver *thePrefixResolver)
    Change the resolver for namespaces. More...
- virtual const XalanDOMString* getNamespaceForPrefix (const XalanDOMString &prefix) const
    Retrieve the URI corresponding to a namespace prefix. More...
- virtual XalanDOMString findURIFromDoc (const XalanDocument *owner) const
    Given a DOM Document, tell what URI was used to parse it. More...
- virtual const XalanDOMString& getUnparsedEntityURI (const XalanDOMString &theName, const XalanDocument &theDocument) const
    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]). More...
- virtual bool shouldStripSourceNode (const XalanNode &node)
    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. More...
- virtual bool getThrowFoundIndex () const
    Tells if FoundIndex should be thrown if index is found. More...
- virtual void setThrowFoundIndex (bool fThrow)
    Changes whether FoundIndex should be thrown if index is found. More...
- virtual XalanDocument* getSourceDocument (const XalanDOMString &theURI) const
- virtual void setSourceDocument (const XalanDOMString &theURI, XalanDocument *theDocument)
    Associate a document with a given URI. More...
- virtual const XalanDecimalFormatSymbols* getDecimalFormatSymbols (const XalanQName &qname)
    Retrieve the XalanDecimalFormatSymbols instance associated with the name. More...
- virtual void error (const XalanDOMString &msg, const XalanNode *sourceNode=0, const LocatorType *locator=0) const
    Report an error and throw an exception. More...
- virtual void error (const char *msg, const XalanNode *sourceNode=0, const LocatorType *locator=0) const
    Report an error and throw an exception. More...
- virtual void warn (const XalanDOMString &msg, const XalanNode *sourceNode=0, const LocatorType *locator=0) const
    Report a warning. More...
- virtual void warn (const char *msg, const XalanNode *sourceNode=0, const LocatorType *locator=0) const
    Report a warning. More...
- virtual void message (const XalanDOMString &msg, const XalanNode *sourceNode=0, const LocatorType *locator=0) const
    Output a message. More...
- virtual void message (const char *msg, const XalanNode *sourceNode=0, const LocatorType *locator=0) const
    Output a message. More...

## Protected Types

- typedef XalanObjectCache<MutableNodeRefList,
  DefaultCacheCreateFunctor<
  MutableNodeRefList>, DeleteFunctor<
  MutableNodeRefList>, ClearCacheResetFunctor<
  MutableNodeRefList> > NodeListCacheType
- enum { eNodeListCacheListSize = 50 }

## Protected Attributes

- XPathEnvSupport* m_xpathEnvSupport
- DOMSupport* m_domSupport
- XalanNode* m_currentNode
- const NodeRefListBase* m_contextNodeList
- const PrefixResolver* m_prefixResolver
- bool m_throwFoundIndex
- XalanDOMString m_currentPattern
- NodeListCacheType m_nodeListCache
- XalanDOMStringCache m_stringCache
- ContextNodeListPositionCache m_cachedPosition
- XalanQNameByValue m_scratchQName

## Static Protected Attributes

- const NodeRefList s_dummyList

## Detailed Description

A basic implementation of the class XPathExecutionContext.

## Member Typedef Documentation

typedef XalanObjectCache< MutableNodeRefList, DefaultCacheCreateFunctor< MutableNodeRefList >, DeleteFunctor< MutableNodeRefList >, ClearCacheResetFunctor< MutableNodeRefList > > XPathExecutionContextDefault::NodeListCacheType<MutableNodeRefList, DefaultCacheCreateFunctor<MutableNodeRefList>, DeleteFunctor<MutableNodeRefList>, ClearCacheResetFunctor<MutableNodeRefList> >`[protected]`

## Member Enumeration Documentation

anonymous enum`[protected]`

  | Enumeration values:
  eNodeListCacheListSize |

## Constructor & Destructor Documentation

XPathExecutionContextDefault::XPathExecutionContextDefault ( | XPathEnvSupport & theXPathEnvSupport,
| DOMSupport & theDOMSupport,
| XObjectFactory & theXObjectFactory,
| XalanNode * theCurrentNode = 0,
| const NodeRefListBase * theContextNodeList = 0,
| const PrefixResolver * thePrefixResolver = 0 )

  | Construct an XPathExecutionContextDefault object. Parameters:
  theXPathEnvSupport | XPathEnvSupport class instance
  theDOMSupport | DOMSupport class instance
  theXobjectFactory | factory class instance for XObjects
  theCurrentNode | current node in the source tree
  theContextNodeList | node list for current context
  thePrefixResolver | pointer to prefix resolver to use

XPathExecutionContextDefault::XPathExecutionContextDefault ( | XalanNode * theCurrentNode = 0,
| const NodeRefListBase * theContextNodeList = 0,
| const PrefixResolver * thePrefixResolver = 0 )`[explicit]`

  | Construct an XPathExecutionContextDefault object. Parameters:
  theXPathEnvSupport | XPathEnvSupport class instance
  theXObjectFactory | factory class instance for XObjects
  theCurrentNode | current node in the source tree
  theContextNodeList | node list for current context
  thePrefixResolver | pointer to prefix resolver to use

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

## Member Function Documentation

MutableNodeRefList * XPathExecutionContextDefault::borrowMutableNodeRefList ( | )`[virtual]`

| Borrow a cached MutableNodeRefList instance. Returns: A pointer to the instance. Reimplemented from XPathExecutionContext.

MutableNodeRefList * XPathExecutionContextDefault::createMutableNodeRefList ( | ) const`[virtual]`

| Create a MutableNodeRefList with the appropriate context. Returns: pointer to node list created Reimplemented from XPathExecutionContext.

bool XPathExecutionContextDefault::elementAvailable ( | const XalanDOMString & theName,
| const LocatorType * locator ) const`[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 Reimplemented from XPathExecutionContext.

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

  | Determine if an external element is available. Parameters:
  theQName | The QName of the element
Returns: whether the given element is available or not Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::error ( | const char * msg,
| const XalanNode * sourceNode = 0,
| const LocatorType * locator = 0 ) const`[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.
Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::error ( | const XalanDOMString & msg,
| const XalanNode * sourceNode = 0,
| const LocatorType * locator = 0 ) const`[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.
Reimplemented from XPathExecutionContext.

const XObjectPtr XPathExecutionContextDefault::extFunction ( | const XalanDOMString & theNamespace,
| const XalanDOMString & functionName,
| XalanNode * context,
| const XObjectArgVectorType & argVec,
| const LocatorType * locator )`[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 Reimplemented from XPathExecutionContext.

XalanDOMString XPathExecutionContextDefault::findURIFromDoc ( | const XalanDocument * owner ) const`[virtual]`

  | Given a DOM Document, tell what URI was used to parse it. Needed for relative resolution. Parameters:
  owner | source document
Returns: document URI Reimplemented from XPathExecutionContext.

bool XPathExecutionContextDefault::functionAvailable ( | const XalanDOMString & theName,
| const LocatorType * locator ) const`[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 Reimplemented from XPathExecutionContext.

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

  | Determine if a function is available. Parameters:
  theQName | The QName of the function
Returns: whether the function is available or not Reimplemented from XPathExecutionContext.

XalanDOMString & XPathExecutionContextDefault::getCachedString ( | )`[virtual]`

| Get a cached string for temporary use. Returns: A reference to the string Reimplemented from XPathExecutionContext.

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

| Retrieve node list for current context. Returns: node list Reimplemented from XPathExecutionContext.

size_type XPathExecutionContextDefault::getContextNodeListLength ( | ) const`[virtual]`

| Reimplemented from XPathExecutionContext.

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

| Reimplemented from XPathExecutionContext.

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

| Retrieve the node currently being executed. Returns: current node Reimplemented from XPathExecutionContext.

const XalanDecimalFormatSymbols * XPathExecutionContextDefault::getDecimalFormatSymbols ( | const XalanQName & qname )`[virtual]`

  | Retrieve the XalanDecimalFormatSymbols instance associated with the name. Parameters:
  qname | the QName for the lookup
Returns: a pointer to the matching instance, or 0 if none was found Reimplemented from XPathExecutionContext.

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

  | Retrieve the URI corresponding to a namespace prefix. Parameters:
  prefix | prefix for a namespace
Returns: URI corresponding to namespace Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::getNodeSetByKey ( | XalanDocument * doc,
| const XalanDOMString & name,
| const XalanDOMString & ref,
| const LocatorType * locator,
| MutableNodeRefList & nodelist )`[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
Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::getNodeSetByKey ( | XalanDocument * doc,
| const XalanQName & qname,
| const XalanDOMString & ref,
| MutableNodeRefList & nodelist )`[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
Reimplemented from XPathExecutionContext.

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

| Retrieve the resolver for namespaces. Returns: object for namespace resolution Reimplemented from XPathExecutionContext.

XalanQNameByValue & XPathExecutionContextDefault::getScratchQName ( | ) const

| Get a reference to the scratch QNameByValue instance. Returns: A reference to a QNameByValue instance.

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

| Reimplemented from XPathExecutionContext.

bool XPathExecutionContextDefault::getThrowFoundIndex ( | ) const`[virtual]`

| Tells if FoundIndex should be thrown if index is found. This is an optimization for match patterns, and is used internally by the XPath engine. Returns: true to throw FoundIndex Reimplemented from XPathExecutionContext.

const XalanDOMString & XPathExecutionContextDefault::getUnparsedEntityURI ( | const XalanDOMString & theName,
| const XalanDocument & theDocument ) const`[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 Reimplemented from XPathExecutionContext.

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

  | Given a name, locate a variable in the current context, and return a pointer to the object. Parameters:
  theName | name of variable
Returns: pointer to an XObject if the variable was found, 0 if it was not Reimplemented from XPathExecutionContext.

XPathEnvSupport * XPathExecutionContextDefault::getXPathEnvSupport ( | ) const

| Get the XPathEnvSupport instance. Returns: a pointer to the instance.

bool XPathExecutionContextDefault::isNodeAfter ( | const XalanNode & node1,
| const XalanNode & node2 ) const`[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. Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::message ( | const char * msg,
| const XalanNode * sourceNode = 0,
| const LocatorType * locator = 0 ) const`[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.
Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::message ( | const XalanDOMString & msg,
| const XalanNode * sourceNode = 0,
| const LocatorType * locator = 0 ) const`[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.
Reimplemented from XPathExecutionContext.

XalanDocument * XPathExecutionContextDefault::parseXML ( | const XalanDOMString & urlString,
| const XalanDOMString & base ) const`[virtual]`

  | Provides support for XML parsing service. Parameters:
  urlString | location of the XML
  base | base location for URI
Returns: parsed document Reimplemented from XPathExecutionContext.

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

  | Return a cached string. Parameters:
  theString | The string to release.
Returns: true if the string was released successfully. Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::reset ( | )`[virtual]`

| Reset the instance. This must be called before another execution is attempted. Reimplemented from XPathExecutionContext.

bool XPathExecutionContextDefault::returnMutableNodeRefList ( | MutableNodeRefList * theList )`[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. Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::setContextNodeList ( | const NodeRefListBase & theList )`[virtual]`

  | Set node list for current context. Parameters:
  theList | new node list
Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::setCurrentNode ( | XalanNode * theCurrentNode )`[virtual]`

  | Change the node currently being executed. Parameters:
  theCurrentNode | new current node
Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::setDOMSupport ( | DOMSupport * theDOMSupport )

  | Set the DOMSupport instance. Parameters:
  theDOMSupport | a reference to the instance to use.

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

  | Change the resolver for namespaces. Parameters:
  thePrefixResolver | new object for namespace resolution
Reimplemented from XPathExecutionContext.

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

  | Associate a document with a given URI. Parameters:
  theURI | document URI
  theDocument | source document
Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::setThrowFoundIndex ( | bool fThrow )`[virtual]`

  | Changes whether FoundIndex should be thrown if index is found. This is an optimization for match patterns, and is used internally by the XPath engine. Parameters:
  fThrow | true to throw FoundIndex
Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::setXObjectFactory ( | XObjectFactory * theXObjectFactory )

  | Set the XObjectFactory instance. Parameters:
  theFactory | a reference to the instance to use.

void XPathExecutionContextDefault::setXPathEnvSupport ( | XPathEnvSupport * theSupport )

  | Set the XPathEnvSupport instance. Parameters:
  theSupport | a reference to the instance to use.

bool XPathExecutionContextDefault::shouldStripSourceNode ( | const XalanNode & node )`[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 Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::warn ( | const char * msg,
| const XalanNode * sourceNode = 0,
| const LocatorType * locator = 0 ) const`[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.
Reimplemented from XPathExecutionContext.

void XPathExecutionContextDefault::warn ( | const XalanDOMString & msg,
| const XalanNode * sourceNode = 0,
| const LocatorType * locator = 0 ) const`[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.
Reimplemented from XPathExecutionContext.

## Member Data Documentation

ContextNodeListPositionCache XPathExecutionContextDefault::m_cachedPosition`[mutable, protected]`

const NodeRefListBase * XPathExecutionContextDefault::m_contextNodeList`[protected]`

XalanNode * XPathExecutionContextDefault::m_currentNode`[protected]`

XalanDOMString XPathExecutionContextDefault::m_currentPattern`[protected]`

DOMSupport * XPathExecutionContextDefault::m_domSupport`[protected]`

NodeListCacheType XPathExecutionContextDefault::m_nodeListCache`[protected]`

const PrefixResolver * XPathExecutionContextDefault::m_prefixResolver`[protected]`

XalanQNameByValue XPathExecutionContextDefault::m_scratchQName`[mutable, protected]`

XalanDOMStringCache XPathExecutionContextDefault::m_stringCache`[protected]`

bool XPathExecutionContextDefault::m_throwFoundIndex`[protected]`

XPathEnvSupport * XPathExecutionContextDefault::m_xpathEnvSupport`[protected]`

const NodeRefList XPathExecutionContextDefault::s_dummyList`[static, protected]`

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

- XPathExecutionContextDefault.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.5 Copyright © 2000, 2001, 2002, 2003 The Apache Software Foundation. All Rights Reserved.