## Xalan-C++ API Documentation

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

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

# XSLTProcessor Class Reference

This is an interface for an XSLT Processor engine. More...

`#include <XSLTProcessor.hpp>`

Inheritance diagram for XSLTProcessor

List of all members.

## Public Types

- typedef size_t size_type

## Public Methods

- XSLTProcessor ()
- virtual ~XSLTProcessor ()
- virtual void process ( const XSLTInputSource& inputSource, const XSLTInputSource& stylesheetSource, XSLTResultTarget& outputTarget, StylesheetConstructionContext& constructionContext, StylesheetExecutionContext& executionContext) = 0
    Transform the source tree to the output in the given result tree target. More...
- virtual void process ( const XSLTInputSource& inputSource, XSLTResultTarget& outputTarget, StylesheetExecutionContext& executionContext) = 0
    Transform the source tree to the output in the given result tree target. More...
- virtual StylesheetRoot* processStylesheet ( const XSLTInputSource& stylesheetSource, StylesheetConstructionContext& constructionContext) = 0
    Given a stylesheet input source, compile the stylesheet into an internal representation. More...
- virtual StylesheetRoot* processStylesheet ( const XalanDOMString& xsldocURLString, StylesheetConstructionContext& constructionContext) = 0
    Given a URI to an XSL stylesheet, compile the stylesheet into an internal representation. More...
- virtual void reset () = 0
    Reset the state. More...
- virtual XalanNode* getSourceTreeFromInput (const XSLTInputSource& inputSource) = 0
    Given an input source, get the source tree. More...
- virtual const StylesheetRoot* getStylesheetRoot () const = 0
    Retrieve the root stylesheet. More...
- virtual void setStylesheetRoot (const StylesheetRoot* theStylesheet) = 0
    Set the root stylesheet. More...
- virtual void setExecutionContext (StylesheetExecutionContext* theExecutionContext) = 0
    Set the execution context. More...
- virtual void resolveTopLevelParams (StylesheetExecutionContext& executionContext) = 0
    Resolve the params that were pushed by the caller.
- virtual XMLParserLiaison& getXMLParserLiaison () const = 0
    Get the XML Parser Liaison that this processor uses. More...
- virtual const XalanDOMString getUniqueNamespaceValue () = 0
    Generate a random namespace prefix guaranteed to be unique. More...
- virtual void getUniqueNamespaceValue (XalanDOMString& theValue) = 0
    Generate a random namespace prefix guaranteed to be unique. More...
- virtual void setStylesheetParam ( const XalanDOMString& key, XObjectPtr value) = 0
    Push a top-level stylesheet parameter. More...
- virtual void setStylesheetParam ( const XalanDOMString& key, const XalanDOMString& expression) = 0
    Push a top-level stylesheet parameter. More...
- virtual bool shouldStripSourceNode ( StylesheetExecutionContext& executionContext, const XalanNode& node) const = 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. More...
- virtual FormatterListener* getFormatterListener () const = 0
    Get the current formatter listener. More...
- virtual void setFormatterListener (FormatterListener* flistener) = 0
    Set the current formatter listener. More...
- virtual size_type getTraceListeners () const = 0
    Determine the number of trace listeners. More...
- virtual void addTraceListener (TraceListener* tl) = 0
    Add a trace listener for the purposes of debugging and diagnosis. More...
- virtual void removeTraceListener (TraceListener* tl) = 0
    Remove a trace listener. More...
- virtual void fireGenerateEvent (const GenerateEvent& ge) = 0
    Fire a generate event. More...
- virtual void fireTraceEvent (const TracerEvent& te) = 0
    Fire a trace event. More...
- virtual void fireSelectEvent (const SelectionEvent& se) = 0
    Fire a selection event. More...
- virtual bool getTraceSelects () const = 0
    If this is set to true, simple traces of template calls are made. More...
- virtual void traceSelect ( StylesheetExecutionContext& executionContext, const ElemTemplateElement& theStylesheetElement, const NodeRefListBase& nl, const XPath* xpath) const = 0
    Compose a diagnostic trace of the current selection. More...
- virtual void setQuietConflictWarnings (bool b) = 0
    If the quietConflictWarnings property is set to true, warnings about pattern conflicts won't be printed to the diagnostics stream. More...
- virtual void setDiagnosticsOutput (PrintWriter* pw) = 0
    If this is set, diagnostics will be written to the m_diagnosticsPrintWriter stream. More...
- virtual void message ( const XalanDOMString& msg, const XalanNode* sourceNode = 0, const ElemTemplateElement* styleNode = 0) const = 0
    Report a message. More...
- virtual void message ( const XalanDOMString& msg, const LocatorType& locator, const XalanNode* sourceNode = 0) const = 0
    Report a message. More...
- virtual void warn ( const XalanDOMString& msg, const XalanNode* sourceNode = 0, const ElemTemplateElement* styleNode = 0) const = 0
    Report a warning. More...
- virtual void warn ( const XalanDOMString& msg, const LocatorType& locator, const XalanNode* sourceNode = 0) const = 0
    Report a warning. More...
- virtual void error ( const XalanDOMString& msg, const XalanNode* sourceNode = 0, const ElemTemplateElement* styleNode = 0) const = 0
    Report an error and throw an exception. More...
- virtual void error ( const XalanDOMString& msg, const LocatorType& locator, const XalanNode* sourceNode = 0) const = 0
    Report an error and throw an exception. More...

## Detailed Description

This is an interface for an XSLT Processor engine.

It's the responsibility of the implementation of the XSLTProcessor interface, collaborating with a XMLParserLiaison, the DOM, and the XPath engine, to transform a source tree of nodes into a result tree according to instructions and templates specified by a stylesheet tree. The methods process(...) are the primary public entry points.

If you reuse the processor instance, you should call reset() between calls.

## Member Typedef Documentation

typedef size_t XSLTProcessor::size_type

## Constructor & Destructor Documentation

XSLTProcessor::XSLTProcessor ( | )

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

## Member Function Documentation

void XSLTProcessor::addTraceListener ( | TraceListener * tl )`[pure virtual]`

Add a trace listener for the purposes of debugging and diagnosis.

Parameters:

  tl | pointer to listener to add

Reimplemented in XSLTEngineImpl.

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

Report an error and throw an exception.

Parameters:

  msg | text of message to output
  locator | A LocatorType for error reporting
  sourceNode | node in source where error occurred

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::error ( | const XalanDOMString & msg,
| const XalanNode * sourceNode = 0,
| const ElemTemplateElement * styleNode = 0 ) const`[pure virtual]`

Report an error and throw an exception.

Parameters:

  msg | text of message to output
  sourceNode | node in source where error occurred
  styleNode | node in stylesheet where error occurred

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::fireGenerateEvent ( | const GenerateEvent & ge )`[pure virtual]`

Fire a generate event.

Parameters:

  ge | generate event to fire

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::fireSelectEvent ( | const SelectionEvent & se )`[pure virtual]`

Fire a selection event.

Parameters:

  se | selection event to fire

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::fireTraceEvent ( | const TracerEvent & te )`[pure virtual]`

Fire a trace event.

Parameters:

  te | trace event to fire

Reimplemented in XSLTEngineImpl.

FormatterListener * XSLTProcessor::getFormatterListener ( | ) const`[pure virtual]`

Get the current formatter listener.

Returns:
  pointer to formatter listener

Reimplemented in XSLTEngineImpl.

XalanNode * XSLTProcessor::getSourceTreeFromInput ( | const XSLTInputSource & inputSource )`[pure virtual]`

Given an input source, get the source tree.

Parameters:

  inputSource | pointer to input source

Returns:
  source tree

Reimplemented in XSLTEngineImpl.

const StylesheetRoot * XSLTProcessor::getStylesheetRoot ( | ) const`[pure virtual]`

Retrieve the root stylesheet.

Returns:
  pointer to root stylesheet

Reimplemented in XSLTEngineImpl.

size_type XSLTProcessor::getTraceListeners ( | ) const`[pure virtual]`

Determine the number of trace listeners.

Returns:
  number of listeners

Reimplemented in XSLTEngineImpl.

bool XSLTProcessor::getTraceSelects ( | ) const`[pure virtual]`

If this is set to true, simple traces of template calls are made.

Returns:
  true if traces made

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::getUniqueNamespaceValue ( | XalanDOMString & theValue )`[pure virtual]`

Generate a random namespace prefix guaranteed to be unique.

Parameters:

  theValue | A string for returning the new prefix

Reimplemented in XSLTEngineImpl.

const XalanDOMString XSLTProcessor::getUniqueNamespaceValue ( | )`[pure virtual]`

Generate a random namespace prefix guaranteed to be unique.

Returns:
  unique namespace prefix

Reimplemented in XSLTEngineImpl.

XMLParserLiaison & XSLTProcessor::getXMLParserLiaison ( | ) const`[pure virtual]`

Get the XML Parser Liaison that this processor uses.

Returns:
  XML parser liaison object

Reimplemented in XSLTEngineImpl.

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

Report a message.

Parameters:

  msg | text of message to output
  locator | A LocatorType for error reporting
  sourceNode | node in source where message occurred

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::message ( | const XalanDOMString & msg,
| const XalanNode * sourceNode = 0,
| const ElemTemplateElement * styleNode = 0 ) const`[pure virtual]`

Report a message.

Parameters:

  msg | text of message to output
  sourceNode | node in source where message occurred
  styleNode | node in stylesheet where message occurred

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::process ( | const XSLTInputSource & inputSource,
| XSLTResultTarget & outputTarget,
| StylesheetExecutionContext & executionContext )`[pure virtual]`

Transform the source tree to the output in the given result tree target.

This function does not create a stylesheet tree, it assumes the provided StylesheetExecutionContext has the stylesheet tree to use. This is set by calling StylesheetExecutionContext::setStylesheetRoot().

Parameters:

  inputSource | input source
  outputTarget | output source tree
  executionContext | current execution context

Exceptions:

  XSLProcessorException |

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::process ( | const XSLTInputSource & inputSource,
| const XSLTInputSource & stylesheetSource,
| XSLTResultTarget & outputTarget,
| StylesheetConstructionContext & constructionContext,
| StylesheetExecutionContext & executionContext )`[pure virtual]`

Transform the source tree to the output in the given result tree target.

The processor will process the input source, the stylesheet source, and transform to the output target.

Parameters:

  inputSource | input source
  stylesheetSource | stylesheet source
  outputTarget | output source tree
  constructionContext | context for construction of objects
  executionContext | current execution context

Exceptions:

  XSLProcessorException |

Reimplemented in XSLTEngineImpl.

StylesheetRoot * XSLTProcessor::processStylesheet ( | const XalanDOMString & xsldocURLString,
| StylesheetConstructionContext & constructionContext )`[pure virtual]`

Given a URI to an XSL stylesheet, compile the stylesheet into an internal representation.

Parameters:

  xmldocURLString | URI to the input XML document
  constructionContext | context for construction of objects

Returns:
  pointer to compiled stylesheet object

Exceptions:

  XSLProcessorException |

Reimplemented in XSLTEngineImpl.

StylesheetRoot * XSLTProcessor::processStylesheet ( | const XSLTInputSource & stylesheetSource,
| StylesheetConstructionContext & constructionContext )`[pure virtual]`

Given a stylesheet input source, compile the stylesheet into an internal representation.

Parameters:

  stylesheetSource | input source for the stylesheet
  constructionContext | context for construction of objects

Returns:
  pointer to the compiled stylesheet object

Exceptions:

  XSLProcessorException |

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::removeTraceListener ( | TraceListener * tl )`[pure virtual]`

Remove a trace listener.

Parameters:

  tl | Trace listener to be removed.

Reimplemented in XSLTEngineImpl.

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

Reset the state.

This needs to be called after a process() call is invoked, if the processor is to be used again.

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::resolveTopLevelParams ( | StylesheetExecutionContext & executionContext )`[pure virtual]`

Resolve the params that were pushed by the caller.

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::setDiagnosticsOutput ( | PrintWriter * pw )`[pure virtual]`

If this is set, diagnostics will be written to the m_diagnosticsPrintWriter stream.

If the value is null, then diagnostics will be turned off.

Parameters:

  pw | pointer to print writer

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::setExecutionContext ( | StylesheetExecutionContext * theExecutionContext )`[pure virtual]`

Set the execution context.

Must be set if after calling setStylesheetRoot.

Parameters:

  theExecutionContext | pointer to new execution context.

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::setFormatterListener ( | FormatterListener * flistener )`[pure virtual]`

Set the current formatter listener.

Parameters:

  flistener | pointer to new formatter listener

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::setQuietConflictWarnings ( | bool b )`[pure virtual]`

If the quietConflictWarnings property is set to true, warnings about pattern conflicts won't be printed to the diagnostics stream.

True by default.

Parameters:

  b | true if conflict warnings should be suppressed.

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::setStylesheetParam ( | const XalanDOMString & key,
| const XalanDOMString & expression )`[pure virtual]`

Push a top-level stylesheet parameter.

This value can be evaluated via xsl:param-variable.

Parameters:

  key | name of the param
  expression | expression that will be evaluated

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::setStylesheetParam ( | const XalanDOMString & key,
| XObjectPtr value )`[pure virtual]`

Push a top-level stylesheet parameter.

This value can be evaluated via xsl:param-variable.

Parameters:

  key | name of the parameter
  value | XObject value for parameter

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::setStylesheetRoot ( | const StylesheetRoot * theStylesheet )`[pure virtual]`

Set the root stylesheet.

Parameters:

  theStylesheet | pointer to new root stylesheet

Reimplemented in XSLTEngineImpl.

bool XSLTProcessor::shouldStripSourceNode ( | StylesheetExecutionContext & executionContext,
| const XalanNode & node ) const`[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:

  executionContext | current execution context
  node | text node from the source tree

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

$$$ ToDo: This has no business being here in the engine...

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::traceSelect ( | StylesheetExecutionContext & executionContext,
| const ElemTemplateElement & theTemplate,
| const NodeRefListBase & nl,
| const XPath * xpath ) const`[pure virtual]`

Compose a diagnostic trace of the current selection.

Parameters:

  executionContext | The current execution context
  theStylesheetElement | The executing stylesheet element
  nl | The list of selected nodes
  xpath | A pointer to the XPath which generated the list of nodes, if any.

Reimplemented in XSLTEngineImpl.

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

Report a warning.

Parameters:

  msg | text of message to output
  locator | A LocatorType for error reporting
  sourceNode | node in source where error occurred

Reimplemented in XSLTEngineImpl.

void XSLTProcessor::warn ( | const XalanDOMString & msg,
| const XalanNode * sourceNode = 0,
| const ElemTemplateElement * styleNode = 0 ) const`[pure virtual]`

Report a warning.

Parameters:

  msg | text of message to output
  sourceNode | node in source where warning occurred
  styleNode | node in stylesheet where warning occurred

Reimplemented in XSLTEngineImpl.

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

- XSLTProcessor.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.7 Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.