## 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

# KeyTable Class Reference

Table of element keys, keyed by document node. More...

`#include <KeyTable.hpp>`

Collaboration diagram for KeyTable:

[legend]
List of all members.

## Public Types

- typedef std::vector<KeyDeclaration> KeyDeclarationVectorType
- typedef std::map<XalanDOMString,
  MutableNodeRefList> NodeListMapType
- typedef std::map<XalanQNameByReference,
  NodeListMapType> KeysMapType

## Public Methods

- KeyTable (XalanNode *startNode, const PrefixResolver &resolver, const KeyDeclarationVectorType &keyDeclarations, StylesheetExecutionContext &executionContext)
    Build a keys table. More...
- virtual ~KeyTable ()
- const MutableNodeRefList& getNodeSetByKey (const XalanQName &qname, const XalanDOMString &ref) const
    Given a valid element key, return the corresponding node list. More...

## Detailed Description

Table of element keys, keyed by document node.

An instance of this class is keyed by a Document node that should be matched with the root of the current context. It contains a table of name mappings to tables that contain mappings of identifier values to nodes.

## Member Typedef Documentation

typedef std::vector< KeyDeclaration > KeyTable::KeyDeclarationVectorType<KeyDeclaration>

typedef std::map< XalanQNameByReference, NodeListMapType > KeyTable::KeysMapType<XalanQNameByReference, NodeListMapType>

typedef std::map< XalanDOMString, MutableNodeRefList > KeyTable::NodeListMapType<XalanDOMString, MutableNodeRefList>

## Constructor & Destructor Documentation

KeyTable::KeyTable ( | XalanNode * startNode,
| const PrefixResolver & resolver,
| const KeyDeclarationVectorType & keyDeclarations,
| StylesheetExecutionContext & executionContext )

  | Build a keys table. Parameters:
  startNode | node to start iterating from to build the keys index
  nscontext | stylesheet's namespace context
  keyDeclarations | stylesheet's xsl:key declarations
  executionContext | current execution context

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

## Member Function Documentation

const MutableNodeRefList & KeyTable::getNodeSetByKey ( | const XalanQName & qname,
| const XalanDOMString & ref ) const

  | Given a valid element key, return the corresponding node list. If the name was not declared with xsl:key, this will return null, the identifier is not found, it will return an empty node set, otherwise it will return a nodeset of nodes. Parameters:
  name | name 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
Returns: pointer to nodeset for key

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

- KeyTable.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.