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

Stylesheet Class Reference

This class represents the base stylesheet or an "import" stylesheet. More...

Inheritance diagram for Stylesheet:

Inheritance graph
[legend]
Collaboration diagram for Stylesheet:

Collaboration graph
[legend]
List of all members.

Public Types

Public Member Functions

Static Public Member Functions

Protected Attributes

Static Protected Attributes


Detailed Description

This class represents the base stylesheet or an "import" stylesheet.

"include" stylesheets are combined with the including stylesheet.


Member Typedef Documentation

typedef XalanVector<ElemDecimalFormat*> Stylesheet::ElemDecimalFormatVectorType
 

typedef XalanMap<XalanQNameByReference, const ElemTemplate* > Stylesheet::ElemTemplateMapType
 

typedef XalanVector<ElemVariable*> Stylesheet::ElemVariableVectorType
 

typedef XalanMap<XalanDOMString, ExtensionNSHandler*> Stylesheet::ExtensionNamespacesMapType
 

typedef StylesheetConstructionContext::GetAndReleaseCachedString Stylesheet::GetAndReleaseCachedString
 

typedef XalanVector<KeyDeclaration> Stylesheet::KeyDeclarationVectorType
 

typedef XalanMap<const XalanNode*, KeyTable* > Stylesheet::KeyTablesTableType
 

typedef XalanQName::NamespacesStackType Stylesheet::NamespacesStackType
 

typedef XalanQName::NamespaceVectorType Stylesheet::NamespaceVectorType
 

typedef StylesheetExecutionContext::ParamVectorType Stylesheet::ParamVectorType
 

typedef XalanMap<XalanDOMString, PatternTableVectorType> Stylesheet::PatternTableMapType
 

typedef PatternTableVectorTypeDecl Stylesheet::PatternTableVectorType
 

typedef StylesheetConstructionContext::size_type Stylesheet::size_type
 

typedef XalanVector<Stylesheet*> Stylesheet::StylesheetVectorType
 

typedef XalanVector<XalanDOMString> Stylesheet::URLStackType
 

typedef XalanVector<XalanSpaceNodeTester> Stylesheet::WhitespaceElementsVectorType
 


Constructor & Destructor Documentation

Stylesheet::Stylesheet StylesheetRoot root,
const XalanDOMString baseIdentifier,
StylesheetConstructionContext constructionContext
 

Constructor for a Stylesheet needs a Document.

Exceptions:
XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide the error condition is severe enough to halt processing.

virtual Stylesheet::~Stylesheet  )  [virtual]
 


Member Function Documentation

void Stylesheet::addImport Stylesheet theStylesheet  ) 
 

Add an imported stylesheet.

Parameters:
theStylesheet The stylesheet to add.

void Stylesheet::addObjectIfNotFound const XalanMatchPatternData thePattern,
const XalanMatchPatternData theArray[],
unsigned int &  theArraySize
[static]
 

Add object to array of match patterns if not already there.

theArraySize size will be incremented if the pattern was added.

Parameters:
thePattern pattern to add
theArray vector of patterns to add to
theArraySize The size of the array

void Stylesheet::addObjectIfNotFound const XalanMatchPatternData thePattern,
PatternTableVectorType theVector
[static]
 

Add object to vector of match patterns if not already there.

Parameters:
thePattern pattern to add
theVector vector of patterns to add to

void Stylesheet::addTemplate ElemTemplate theTemplate,
StylesheetConstructionContext constructionContext
 

Add a template to the list of names templates.

Parameters:
theTemplate template to add
constructionContext context for construction

void Stylesheet::addWhitespaceElement const XalanSpaceNodeTester theTester  ) 
 

Stylesheet* Stylesheet::create MemoryManagerType theManager,
StylesheetRoot root,
const XalanDOMString baseIdentifier,
StylesheetConstructionContext constructionContext
[static]
 

const ElemTemplate* Stylesheet::findNamedTemplate const XalanQName qname  )  const
 

Locate a template via the "name" attribute.

Parameters:
name qualified name of template
Returns:
pointer to template found or 0 if none found

const ElemTemplate* Stylesheet::findTemplate StylesheetExecutionContext executionContext,
XalanNode targetNode,
XalanNode::NodeType  targetNodeType,
const XalanQName mode,
bool  onlyUseImports
const
 

Given a target element, find the template that best matches in the given XSL document, according to the rules specified in the xsl draft.

Parameters:
executionContext current execution context
targetNode node that needs a rule
targetNodeType the type of targetNode
mode string indicating the mode
onlyUseImports only use imports, do not use any templates from the stylesheet itself
Returns:
pointer to rule that best matches targetElem

const ElemTemplate* Stylesheet::findTemplate StylesheetExecutionContext executionContext,
XalanNode targetNode
const
 

Given a target element, find the template that best matches in the given XSL document, according to the rules specified in the xsl draft.

Parameters:
executionContext current execution context
targetNode element that needs a rule
Returns:
pointer to rule that best matches targetNode

const XalanDOMString& Stylesheet::getBaseIdentifier  )  const
 

Retrieve the base identifier with which this stylesheet is associated.

Returns:
string for base identifier

const XalanDOMString& Stylesheet::getCurrentIncludeBaseIdentifier  )  const
 

Retrieve the base identifier for the most recently included stylesheet.

This will return the same value as getBaseIdentifier(), if no include is being processed.

Returns:
string for base identifier

const XalanDecimalFormatSymbols* Stylesheet::getDecimalFormatSymbols const XalanQName theQName  )  const
 

Retrieve the XalanDecimalFormatSymbols instance associated with the QName.

Parameters:
theQName the QName for the lookup
Returns:
a pointer to the matching instance, or 0 if none was found

const ElemTemplate* Stylesheet::getFirstTemplate  )  const
 

URLStackType& Stylesheet::getIncludeStack  ) 
 

Retrieve the stack of who's including who.

Returns:
stack of includes

MemoryManagerType& Stylesheet::getMemoryManager  ) 
 

Reimplemented in StylesheetRoot.

NamespaceVectorType& Stylesheet::getNamespaceDecls  ) 
 

Retrieve the list of namespace declarations currently in effect.

Returns:
vector of namespace vectors

const NamespaceVectorType& Stylesheet::getNamespaceDecls  )  const
 

Retrieve the list of namespace declarations currently in effect.

Returns:
vector of namespace vectors

virtual const XalanDOMString* Stylesheet::getNamespaceForPrefix const XalanDOMString prefix  )  const [virtual]
 

Retrieve a namespace corresponding to a prefix.

This assumes that the PrevixResolver holds its own namespace context, or is a namespace context itself.

Parameters:
prefix Prefix to resolve
Returns:
namespace that prefix resolves to, or null if prefix is not found

Implements PrefixResolver.

const XalanDOMString* Stylesheet::getNamespaceForPrefix const XalanDOMChar *  prefix,
StylesheetConstructionContext constructionContext
const
 

Get the namespace for a prefix, and report an error if it wasn't found.

Parameters:
prefix prefix to search
constructionContext The current construction context
Returns:
namespace corresponding to prefix, or null if not found.

const XalanDOMString* Stylesheet::getNamespaceForPrefix const XalanDOMString prefix,
StylesheetConstructionContext constructionContext
const
 

Get the namespace for a prefix, and report an error if it wasn't found.

Parameters:
prefix prefix to search
constructionContext The current construction context
Returns:
namespace corresponding to prefix, or null if not found.

const XalanDOMString* Stylesheet::getNamespaceForPrefixFromStack const XalanDOMChar *  prefix  )  const
 

Get the namespace from a prefix by searching the stack of namespace lists.

Parameters:
prefix prefix to search
Returns:
namespace corresponding to prefix, or null if not found.

const XalanDOMString* Stylesheet::getNamespaceForPrefixFromStack const XalanDOMString prefix  )  const
 

Get the namespace from a prefix by searching the stack of namespace lists.

Parameters:
prefix prefix to search
Returns:
namespace corresponding to prefix, or null if not found.

const XalanDOMString* Stylesheet::getNamespaceFromStack const XalanDOMChar *  nodeName,
XalanDOMString theBuffer
const
 

Get the namespace from a qualified name.

Parameters:
nodeName name of node
Returns:
namespace string for node, or null if not found.

const XalanDOMString* Stylesheet::getNamespaceFromStack const XalanDOMString nodeName,
XalanDOMString theBuffer
const
 

Get the namespace from a qualified name.

Parameters:
nodeName name of node
Returns:
namespace string for node, or null if not found.

NamespacesStackType& Stylesheet::getNamespaces  ) 
 

Retrieve the stack of namespace lists.

Returns:
vector of namespace vectors

const NamespacesStackType& Stylesheet::getNamespaces  )  const
 

Retrieve the stack of namespace lists.

Returns:
vector of namespace vectors

NamespacesHandler& Stylesheet::getNamespacesHandler  ) 
 

const NamespacesHandler& Stylesheet::getNamespacesHandler  )  const
 

StylesheetRoot& Stylesheet::getStylesheetRoot  ) 
 

Retrieve the root stylesheet object.

Returns:
reference to the stylesheet object

const StylesheetRoot& Stylesheet::getStylesheetRoot  )  const
 

Retrieve the root stylesheet object.

Returns:
const reference to the stylesheet object

virtual const XalanDOMString& Stylesheet::getURI  )  const [virtual]
 

Retrieve the base URI for the resolver.

Returns:
URI string

Implements PrefixResolver.

const XalanDOMString& Stylesheet::getXSLTNamespaceURI  )  const
 

double Stylesheet::getXSLTVerDeclared  )  const
 

Retrieve XSLT version number.

Returns:
number representing XSLT version

bool Stylesheet::getYesOrNo const XalanDOMChar *  aname,
const XalanDOMChar *  val,
StylesheetConstructionContext constructionContext
const
 

Process an attribute that has the value of 'yes' or 'no'.

Parameters:
aname name of attribute
val value
constructionContext context for construction
Returns:
true if value equals string constant for "yes," false otherwise

ElemTemplateElement* Stylesheet::initWrapperless StylesheetConstructionContext constructionContext,
const LocatorType locator
 

bool Stylesheet::isAttrOK const XalanDOMChar *  attrName,
const AttributeListType atts,
int  which,
StylesheetConstructionContext constructionContext
const
 

See if this is a xmlns attribute, and, if so, process it.

Parameters:
attrName qualified name of attribute
atts attribute list where the element comes from (not used at this time)
which index into the attribute list (not used at this time)
Returns:
true if this is a namespace name

bool Stylesheet::isWrapperless  )  const
 

whether there is a wrapper template

Returns:
true is there is a wrapper

const PatternTableVectorType* Stylesheet::locateAttributeMatchPatternDataList const XalanDOMString theName  )  const
 

Given a name, locate the start of a list of possible templates that match that name.

If none match, then use the default list.

Parameters:
theName The name to match

const PatternTableVectorType* Stylesheet::locateElementMatchPatternDataList const XalanDOMString theName  )  const
 

Given a name, locate the start of a list of possible templates that match that name.

If none match, then use the default list.

Parameters:
theName The name to match

const PatternTableVectorType* Stylesheet::locateMatchPatternDataList const XalanNode theNode,
XalanNode::NodeType  targetNodeType
const
 

Given a XalanNode, locate the start of a list of possible templates that match it.

Parameters:
XalanNode The node to match

ExtensionNSHandler* Stylesheet::lookupExtensionNSHandler const XalanDOMString uri  )  const
 

Return the handler for a given extension namespace.

Parameters:
uri the URI of the extension namespace.
Returns:
pointer to extension handler

void Stylesheet::popNamespaces  ) 
 

Pop a namespace declaration from the namespace stack.

virtual void Stylesheet::postConstruction StylesheetConstructionContext constructionContext  )  [virtual]
 

Called after construction is completed.

Reimplemented in StylesheetRoot.

void Stylesheet::processDecimalFormatElement StylesheetConstructionContext constructionContext,
const AttributeListType atts,
const LocatorType locator = 0
 

Process an xsl:decimal-format element.

Parameters:
elemDecimalFormat the element

void Stylesheet::processExcludeResultPrefixes StylesheetConstructionContext theConstructionContext,
const XalanDOMChar *  theValue
 

See if a namespace should be excluded.

Parameters:
theConstructionContext the current construction context.
theValue the prefix of the namespace.
Returns:

void Stylesheet::processExtensionNamespace StylesheetConstructionContext theConstructionContext,
const XalanDOMString uri
 

Add an extension namespace handler.

This provides methods for calling an element extension as well as for function calls (which is passed on to XPath).

Parameters:
constructionContext The current construction context.
uri The namespace URI of the extension.

void Stylesheet::processKeyElement const PrefixResolver nsContext,
const AttributeListType atts,
const LocatorType locator,
StylesheetConstructionContext constructionContext
 

Process the xsl:key element.

Parameters:
nsContext The PrefixResolver instance for namespace prefixes.
atts The attribute list for element. #param locator The Locator instance for error reporting, if any. May be 0.
constructionContext The current construction context.

void Stylesheet::processNSAliasElement const XalanDOMChar *  name,
const AttributeListType atts,
StylesheetConstructionContext constructionContext
 

Process an xsl:namespace-alias element.

Parameters:
name the element name.
attrs the current attribute list
constructionContext the active construction context

void Stylesheet::pushNamespaces const AttributeListType atts  ) 
 

Push the namespace declarations from the current attribute list onto the namespace stack.

Parameters:
atts attribute list constaining namespaces

void Stylesheet::pushTopLevelVariables StylesheetExecutionContext executionContext,
const ParamVectorType topLevelParams
const
 

Set a list of top level variables in the specified execution context stylesheet.

Parameters:
executionContext current execution context
topLevelParams list of top level parameters

void Stylesheet::setNamespaceDecls const NamespaceVectorType ns  ) 
 

Set the list of namespace declarations currently in effect.

Parameters:
ns vector of namespace vectors

void Stylesheet::setTopLevelVariable ElemVariable var  ) 
 

Set a top level variable.

Parameters:
var top-level variable declared with "xsl:variable" or xsl:param-variable.

void Stylesheet::setXSLTNamespaceURI const XalanDOMString theURI  ) 
 

void Stylesheet::setXSLTVerDeclared double  ver  ) 
 

Set XSLT version number.

Parameters:
ver number representing XSLT version


Member Data Documentation

XalanDOMString Stylesheet::m_baseIdent [protected]
 

The base URL of the XSL document.

KeyDeclarationVectorType Stylesheet::m_keyDeclarations [protected]
 

Table of KeyDeclaration objects, which are set by the xsl:key element.

StylesheetRoot& Stylesheet::m_stylesheetRoot [protected]
 

The root of the stylesheet tree.

WhitespaceElementsVectorType Stylesheet::m_whitespaceElements [protected]
 

const XalanQNameByReference Stylesheet::s_emptyQName [static, protected]
 


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

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.