Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.10

Stylesheet Class Reference

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

Inheritance diagram for Stylesheet:

PrefixResolver StylesheetRoot

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


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

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

MemoryManagerType& Stylesheet::getMemoryManager (  ) 

Reimplemented in StylesheetRoot.

double Stylesheet::getXSLTVerDeclared (  )  const

Retrieve XSLT version number.

Returns:
number representing XSLT version

void Stylesheet::setXSLTVerDeclared ( double  ver  ) 

Set XSLT version number.

Parameters:
ver number representing XSLT version

const StylesheetRoot& Stylesheet::getStylesheetRoot (  )  const

Retrieve the root stylesheet object.

Returns:
const reference to the stylesheet object

StylesheetRoot& Stylesheet::getStylesheetRoot (  ) 

Retrieve the root stylesheet object.

Returns:
reference to the stylesheet object

const NamespacesStackType& Stylesheet::getNamespaces (  )  const

Retrieve the stack of namespace lists.

Returns:
vector of namespace vectors

NamespacesStackType& Stylesheet::getNamespaces (  ) 

Retrieve the stack of namespace lists.

Returns:
vector of namespace vectors

const NamespacesHandler& Stylesheet::getNamespacesHandler (  )  const

NamespacesHandler& Stylesheet::getNamespacesHandler (  ) 

const NamespaceVectorType& Stylesheet::getNamespaceDecls (  )  const

Retrieve the list of namespace declarations currently in effect.

Returns:
vector of namespace vectors

NamespaceVectorType& Stylesheet::getNamespaceDecls (  ) 

Retrieve the list of namespace declarations currently in effect.

Returns:
vector of namespace vectors

void Stylesheet::setNamespaceDecls ( const NamespaceVectorType ns  ) 

Set the list of namespace declarations currently in effect.

Parameters:
ns vector of namespace vectors

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::popNamespaces (  ) 

Pop a namespace declaration from the namespace stack.

void Stylesheet::addWhitespaceElement ( const XalanSpaceNodeTester theTester  ) 

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

Called after construction is completed.

Reimplemented in StylesheetRoot.

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

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.

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

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::addTemplate ( ElemTemplate theTemplate,
StylesheetConstructionContext constructionContext 
)

Add a template to the list of names templates.

Parameters:
theTemplate template to add
constructionContext context for construction

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

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

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::processDecimalFormatElement ( StylesheetConstructionContext constructionContext,
const AttributeListType atts,
const LocatorType locator = 0 
)

Process an xsl:decimal-format element.

Parameters:
elemDecimalFormat the element

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

void Stylesheet::addImport ( Stylesheet theStylesheet  ) 

Add an imported stylesheet.

Parameters:
theStylesheet The stylesheet to add.

bool Stylesheet::isWrapperless (  )  const

whether there is a wrapper template

Returns:
true is there is a wrapper

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

URLStackType& Stylesheet::getIncludeStack (  ) 

Retrieve the stack of who's including who.

Returns:
stack of includes

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.

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

static 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

static 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

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

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.

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::setTopLevelVariable ( ElemVariable var  ) 

Set a top level variable.

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

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

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.

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

Retrieve the base URI for the resolver.

Returns:
URI string

Implements PrefixResolver.

const XalanDOMString& Stylesheet::getXSLTNamespaceURI (  )  const

void Stylesheet::setXSLTNamespaceURI ( const XalanDOMString theURI  ) 

const ElemTemplate* Stylesheet::getFirstTemplate (  )  const


Member Data Documentation

The root of the stylesheet tree.

The base URL of the XSL document.

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


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.

dot

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

Apache Logo