Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.10

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

ElemTemplateElement Class Reference

#include <ElemTemplateElement.hpp>

Inheritance diagram for ElemTemplateElement:

Inheritance graph
[legend]
Collaboration diagram for ElemTemplateElement:

Collaboration graph
[legend]
List of all members.

Public Methods

Static Public Methods

Protected Methods

Static Protected Attributes


Constructor & Destructor Documentation

ElemTemplateElement::ElemTemplateElement ( StylesheetConstructionContext & constructionContext,
Stylesheet & stylesheetTree,
int lineNumber,
int columnNumber,
int xslToken )
 

Construct a template element instance.

Parameters:
constructionContext   context when object constructed
stylesheetTree   owning stylesheet
lineNumber   line in the XSLT file where the element occurs
columnNumber   column index in the XSLT file where the element occurs
xslToken   an integer representing the type of instance.

ElemTemplateElement::ElemTemplateElement ( StylesheetConstructionContext & constructionContext,
Stylesheet & stylesheetTree,
int xslToken,
const XalanDOMString & baseURI = XalanDOMString(XalanMemMgrs::getDummyMemMgr()),
int lineNumber = XalanLocator::getUnknownValue(),
int columnNumber = XalanLocator::getUnknownValue() )
 

Special constructor used by dummy elements which do not exist in the final stylesheet.

Parameters:
constructionContext   context when object constructed
stylesheetTree   owning stylesheet
baseURI   The base URI of the XSLT file where the element occurs.
lineNumber   line in the XSLT file where the element occurs
columnNumber   column index in the XSLT file where the element occurs
xslToken   an integer representing the type of instance.

ElemTemplateElement::~ElemTemplateElement ( ) [virtual]
 


Member Function Documentation

void ElemTemplateElement::addToStylesheet ( StylesheetConstructionContext & constructionContext,
Stylesheet & theStylesheet ) [virtual]
 

Called during compilation when an instance is not parented by another element, and thus, is a child of the stylesheet..

Parameters:
constructionContext   The current construction context
theStylesheet   The owning stylesheet
Returns:
nothing

Reimplemented in ElemAttributeSet, ElemTemplate, and ElemVariable.

ElemTemplateElement * ElemTemplateElement::appendChildElem ( ElemTemplateElement * newChild ) [virtual]
 

Append a child.

theParent - the new value for the parent.

Returns:
nothing

Reimplemented in ElemApplyImport.

const ElemTemplateElement * ElemTemplateElement::beginChildrenToString ( StylesheetExecutionContext & executionContext,
XalanDOMString & result ) const
 

Method to initiate output from the children to a string.

Parameters:
executionContext   context to execute this element
result   string to contain the final result
Returns:
the first child element to execute

const ElemTemplateElement * ElemTemplateElement::beginExecuteChildren ( StylesheetExecutionContext & executionContext ) const [virtual]
 

Method to initiate the execution of the element's children.

Parameters:
executionContext   context to execute this element
Returns:
the first child element to execute

void ElemTemplateElement::canGenerateAttributes ( bool value ) [protected]
 

bool ElemTemplateElement::canGenerateAttributes ( ) const
 

bool ElemTemplateElement::childTypeAllowed ( int xslToken ) const [protected, virtual]
 

Given an xsl token type, determine whether or not a child of that type is allowed.

This is so derived types can determine whether a particular type of child is allowed for the instance. It is called from appendChildElem().

The default is to allow no types (no children)

Parameters:
xslToken   The xsl token value of the child.

Returns:
true if the child is allowed, or false if not.

Reimplemented in ElemApplyTemplates, ElemAttribute, ElemAttributeSet, ElemCallTemplate, ElemChoose, ElemComment, ElemEmpty, ElemPI, ElemTemplate, and ElemText.

bool ElemTemplateElement::disableOutputEscaping ( ) const [protected]
 

void ElemTemplateElement::disableOutputEscaping ( bool value ) [protected]
 

void ElemTemplateElement::endChildrenToString ( StylesheetExecutionContext & executionContext ) const
 

Method to indicate string output from the children is complete.

Parameters:
executionContext   context to execute this element

void ElemTemplateElement::endElement ( StylesheetExecutionContext & executionContext ) const [virtual]
 

Completes "post-processing" afer any sub-elements are invoked (i.e.

children, attribute sets and templates). If there are no sub-elements it does nothing

Parameters:
executionContext   context to execute this element

Reimplemented in ElemApplyImport, ElemApplyTemplates, ElemAttribute, ElemAttributeSet, ElemCallTemplate, ElemComment, ElemCopy, ElemElement, ElemExtensionCall, ElemForEach, ElemIf, ElemLiteralResult, ElemMessage, ElemOtherwise, ElemParam, ElemPI, ElemTemplate, ElemUse, ElemVariable, ElemWhen, and ElemWithParam.

void ElemTemplateElement::endExecuteChildren ( StylesheetExecutionContext & executionContext ) const [virtual]
 

Method to indicate the execution of the element's children is complete.

Parameters:
executionContext   context to execute this element

void ElemTemplateElement::error ( StylesheetConstructionContext & theContext,
XalanMessages::Codes theCode,
const XalanDOMChar * theToken1,
const XalanDOMChar * theToken2,
const XalanDOMChar * theToken3 ) [protected]
 

A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance.

Parameters:
theContext   The StylesheetConstructionContext to use
theCode   The code of the message
theToken1   The first substitution token for the message
theToken2   The second substitution token for the message
theToken3   The third substitution token for the message

void ElemTemplateElement::error ( StylesheetConstructionContext & theContext,
XalanMessages::Codes theCode,
const XalanDOMChar * theToken1,
const XalanDOMChar * theToken2 ) [protected]
 

A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance.

Parameters:
theContext   The StylesheetConstructionContext to use
theCode   The code of the message
theToken1   The first substitution token for the message
theToken2   The second substitution token for the message

void ElemTemplateElement::error ( StylesheetConstructionContext & theContext,
XalanMessages::Codes theCode,
const XalanDOMString & theToken1,
const XalanDOMString & theToken2 ) [protected]
 

A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance.

Parameters:
theContext   The StylesheetConstructionContext to use
theCode   The code of the message
theToken1   The first substitution token for the message
theToken2   The second substitution token for the message

void ElemTemplateElement::error ( StylesheetConstructionContext & theContext,
XalanMessages::Codes theCode,
const XalanDOMString & theToken,
const Locator * theLocator ) [protected]
 

A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance.

Parameters:
theContext   The StylesheetConstructionContext to use
theCode   The code of the message
theToken   The substitution token for the message
theLocator   The Locator instance to use, if any

void ElemTemplateElement::error ( StylesheetConstructionContext & theContext,
XalanMessages::Codes theCode,
const XalanDOMString & theToken ) [protected]
 

A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance.

Parameters:
theContext   The StylesheetConstructionContext to use
theCode   The code of the message
theToken   The substitution token for the message
theLocator   The Locator instance to use, if any

void ElemTemplateElement::error ( StylesheetConstructionContext & theContext,
XalanMessages::Codes theCode ) [protected]
 

A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance.

Parameters:
theContext   The StylesheetConstructionContext to use
theCode   The code of the message

void ElemTemplateElement::error ( StylesheetExecutionContext & theContext,
XalanMessages::Codes theCode,
const Locator * theLocator ) const [protected]
 

A convenience function for loading a message and reporting an error through the provided StylesheetExecutionContext instance.

Parameters:
theContext   The StylesheetExecutionContext to use
theCode   The code of the message
theLocator   The Locator instance to use, if any

void ElemTemplateElement::error ( StylesheetExecutionContext & theContext,
XalanMessages::Codes theCode,
const XalanDOMString & theToken ) const [protected]
 

A convenience function for loading a message and reporting an error through the provided StylesheetExecutionContext instance.

Parameters:
theContext   The StylesheetExecutionContext to use
theCode   The code of the message
theToken   The substitution token for the message

void ElemTemplateElement::error ( StylesheetExecutionContext & theContext,
XalanMessages::Codes theCode ) const [protected]
 

A convenience function for loading a message and reporting an error through the provided StylesheetExecutionContext instance.

Parameters:
theContext   The StylesheetExecutionContext to use
theCode   The code of the message

void ElemTemplateElement::execute ( StylesheetExecutionContext & executionContext ) const [virtual]
 

Execute the element.

Parameters:
execute   context to execute this element

bool ElemTemplateElement::executeChildElement ( StylesheetExecutionContext & executionContext,
const ElemTemplateElement * element ) const [virtual]
 

Filters sub-elements that should be executed.

Parameters:
executionContext   context to execute element
element   the element to be executed
Returns:
true if element should be executed, false otherwise

Reimplemented in ElemElement, ElemExtensionCall, and ElemForwardCompatible.

void ElemTemplateElement::executeChildren ( StylesheetExecutionContext & executionContext ) const [virtual]
 

Execute the children of this element.

Parameters:
execute   context to execute this element

const ElemTemplateElement * ElemTemplateElement::findTemplateToTransformChild ( StylesheetExecutionContext & executionContext,
const ElemTemplateElement & xslInstruction,
const ElemTemplateElement * theTemplate,
XalanNode * child,
XalanNode::NodeType nodeType ) const [protected, virtual]
 

Given an element, find the corresponding template.

Parameters:
executionContext   The current execution context
xslInstruction   The calling element
template   The template to use if xsl:for-each, or null.
child   The source context node.
nodeType   The type of child.
Returns:
matching template if any. Returns 0 if no matching template or corresponds to a default rule.

const ElemTemplateElement * ElemTemplateElement::findTemplateToTransformChild ( StylesheetExecutionContext & executionContext,
const ElemTemplateElement & xslInstruction,
const ElemTemplateElement * theTemplate,
XalanNode * child ) const [protected, virtual]
 

Given an element, find the corresponding template.

Parameters:
executionContext   The current execution context
xslInstruction   The calling element
template   The template to use if xsl:for-each, or null.
child   The source context node.
Returns:
matching template if any. Returns 0 if no matching template or corresponds to a default rule.

LocatorProxy::size_type ElemTemplateElement::getColumnNumber ( ) const
 

const XalanDOMString & ElemTemplateElement::getElementName ( ) const [pure virtual]
 

Get a string for the name of the element.

Useful for debugging purposes, and error reporting.

Returns:
A string containing the name of the element.

Reimplemented in ElemApplyImport, ElemApplyTemplates, ElemAttribute, ElemAttributeSet, ElemCallTemplate, ElemChoose, ElemComment, ElemCopy, ElemCopyOf, ElemDecimalFormat, ElemElement, ElemEmpty, ElemFallback, ElemForEach, ElemForwardCompatible, ElemIf, ElemLiteralResult, ElemMessage, ElemNumber, ElemOtherwise, ElemParam, ElemPI, ElemSort, ElemTemplate, ElemText, ElemTextLiteral, ElemUse, ElemValueOf, ElemVariable, ElemWhen, and ElemWithParam.

bool ElemTemplateElement::getFinishedConstruction ( ) const
 

Get the flag indicating construction of the element is completed.

ElemTemplateElement * ElemTemplateElement::getFirstChildElem ( ) const [virtual]
 

Get the first child.

Returns:
first child node of this node

const ElemTemplateElement * ElemTemplateElement::getFirstChildElemToExecute ( StylesheetExecutionContext & executionContext ) const [virtual]
 

Returns the first sub-element (i.e.

children, attribute-sets, templates) to execute.

Parameters:
executionContext   context to execute element
Returns:
first sub-element to execute, 0 only if no sub-elements to execute

Reimplemented in ElemApplyTemplates, ElemCallTemplate, and ElemUse.

const ElemTemplateElement * ElemTemplateElement::getInvoker ( StylesheetExecutionContext & executionContext ) const [virtual]
 

Returns the element that invoked this element.

Returns:
element that invoked this element.

Reimplemented in ElemAttributeSet, and ElemTemplate.

ElemTemplateElement * ElemTemplateElement::getLastChildElem ( ) const [virtual]
 

Get the last child.

Returns:
last child node of this node

LocatorProxy::size_type ElemTemplateElement::getLineNumber ( ) const
 

const LocatorType * ElemTemplateElement::getLocator ( ) const [virtual]
 

Get the Locator for the node.

This may return 0.

Returns:
The Locator for the node.

const XalanQName & ElemTemplateElement::getNameAttribute ( ) const [virtual]
 

Get the QName associated with any name attribute of this element.

If the element has no name attribute, this will be an empty QName.

Returns:
A string containing the name of the element.

Reimplemented in ElemTemplate, and ElemVariable.

const XalanDOMString * ElemTemplateElement::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

Reimplemented from PrefixResolver.

const XalanDOMString * ElemTemplateElement::getNamespaceForPrefixInternal ( const XalanDOMString & prefix ) const [protected]
 

Get the namespace for a given prefix.

Parameters:
prefix   The prefix to search for
fExists   If not null, set to true if the namespace was defined.
Returns:
The namespace string.

const NamespacesHandler & ElemTemplateElement::getNamespaces ( ) const [protected]
 

const NamespacesHandler & ElemTemplateElement::getNamespacesHandler ( ) const
 

Get the namespaces handler for this element.

Returns:
The element's NamespacesHandler instance.

const ElemTemplateElement * ElemTemplateElement::getNextChildElemToExecute ( StylesheetExecutionContext & executionContext,
const ElemTemplateElement * currentElem ) const [virtual]
 

Returns the next sub-element (i.e.

children, attribute-sets, templates) to execute.

Parameters:
executionContext   context to execute element
currentElem   the last sub-element to be executed
Returns:
next sub-element to execute, 0 only if no more sub-elements to execute

Reimplemented in ElemApplyImport, ElemApplyTemplates, ElemCallTemplate, ElemChoose, ElemFallback, ElemForEach, and ElemUse.

ElemTemplateElement * ElemTemplateElement::getNextSiblingElem ( ) const [virtual]
 

Get the next sibling.

Returns:
next sibling node of this node

ElemTemplateElement * ElemTemplateElement::getParentNodeElem ( ) const [virtual]
 

Get the parent node.

Returns:
parent node of this node

ElemTemplateElement * ElemTemplateElement::getPreviousSiblingElem ( ) const [virtual]
 

Get the previous sibling.

Returns:
previous sibling node of this node

const Stylesheet & ElemTemplateElement::getStylesheet ( ) const
 

Retrieve the stylesheet from which this element comes.

Returns:
reference to source stylesheet

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

Retrieve the base URI for the resolver.

Returns:
URI string

Reimplemented from PrefixResolver.

const XPath * ElemTemplateElement::getXPath ( unsigned int index = 0 ) const [virtual]
 

Get XPath pattern/expression of one of the element atribute.

@index number of the attribute. If an attribute has more then one attribute with pattern/expression,the order of the returned expressions are undefined

Returns:
pointer or null

Reimplemented in ElemCopyOf, ElemDecimalFormat, ElemForEach, ElemIf, ElemNumber, ElemSort, ElemTemplate, ElemValueOf, ElemVariable, ElemWhen, and ElemWithParam.

int ElemTemplateElement::getXSLToken ( ) const
 

bool ElemTemplateElement::hasChildren ( ) const
 

bool ElemTemplateElement::hasDirectTemplate ( ) const
 

bool ElemTemplateElement::hasParams ( ) const
 

bool ElemTemplateElement::hasPrefix ( ) const [protected]
 

void ElemTemplateElement::hasPrefix ( bool value ) [protected]
 

bool ElemTemplateElement::hasSingleTextChild ( ) const
 

bool ElemTemplateElement::hasVariables ( ) const
 

bool ElemTemplateElement::isAttrOK ( const XalanDOMChar * attrName,
const AttributeListType & atts,
int which,
StylesheetConstructionContext & constructionContext ) const [virtual]
 

See if this is a xmlns attribute or in a non-XSLT.

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)
constructionContext   The current construction context
Returns:
true if this is a namespace name

Reimplemented in ElemLiteralResult.

bool ElemTemplateElement::isDefaultTemplate ( ) const
 

bool ElemTemplateElement::isValidNCName ( const XalanDOMString & s ) [static]
 

Validate that the string is an NCName.

Parameters:
s   name in question
Returns:
true if the string is a valid NCName according to XML rules
See also:
http://www.w3.org/TR/REC-xml-names#NT-NCName

bool ElemTemplateElement::isWhitespace ( ) const [virtual]
 

Tell if the element will generate text which is XML whitespace.

Returns:
true if the text is pure whitespace

Reimplemented in ElemTextLiteral.

void ElemTemplateElement::namespacesPostConstruction ( StylesheetConstructionContext & constructionContext,
const NamespacesHandler & theParentHandler,
NamespacesHandler & theHandler ) [protected, virtual]
 

Called after construction is completed.

This is a hook for deriving classes to handle post-construction with the instances HamespaceHandler instance, which is otherwise only available through a const accessor.

Reimplemented in ElemElement, and ElemLiteralResult.

void ElemTemplateElement::postConstruction ( StylesheetConstructionContext & constructionContext,
const NamespacesHandler & theParentHandler ) [virtual]
 

Called after construction is completed.

Reimplemented in ElemCallTemplate, ElemForEach, ElemLiteralResult, and ElemUse.

bool ElemTemplateElement::preserveSpace ( ) const [protected]
 

void ElemTemplateElement::preserveSpace ( bool value ) [protected]
 

bool ElemTemplateElement::processPrefixControl ( StylesheetConstructionContext & constructionContext,
const Stylesheet & stylesheetTree,
const XalanDOMString & localName,
const XalanDOMChar * attrValue ) [protected]
 

Process the exclude-result-prefixes or the extension-element-prefixes attributes, for the purpose of prefix exclusion.

Parameters:
constructionContext   context when object consructed
stylesheetTree   The current Stylesheet object.
localName   The local name of the attribute.
attrValue   The value of the attribute.

void ElemTemplateElement::processSortElement ( StylesheetConstructionContext & constructionContext,
Stylesheet & theStylesheet,
const AttributeListType & atts,
const LocatorType * locator = 0 ) [virtual]
 

Called during compilation to process xsl:sort elements in the stylesheet.

Parameters:
constructionContext   The current construction context
theStylesheet   The owning stylesheet
atts   The list of attributes for the sort element
locator   A Locator instance for error reporting, if available.

Returns:
nothing

Reimplemented in ElemForEach.

bool ElemTemplateElement::processSpaceAttr ( const XalanDOMChar * elementName,
const XalanDOMChar * aname,
const AttributeListType & atts,
int which,
StylesheetConstructionContext & constructionContext )
 

Tell whether or not this is a xml:space attribute and, if so, process it.

Parameters:
elementName   name of the element with the attribute
aname   name of the attribute in question
atts   attribute list that owns the attribute
which   index of the attribute into the attribute list
constructionContext   The current construction context
Returns:
true if this is a xml:space attribute

void ElemTemplateElement::setDefaultTemplate ( bool value ) [virtual]
 

Sets a flag indicating this is the default template.

Parameters:
value   The value of flag.

void ElemTemplateElement::setFinishedConstruction ( bool fValue )
 

Set the flag indicating construction of the element is completed.

Parameters:
fValue   The value to set

void ElemTemplateElement::setFirstChildElem ( ElemTemplateElement * theChild ) [virtual]
 

Set the first child.

theChild - the new value for the first child.

Returns:
nothing

void ElemTemplateElement::setNextSiblingElem ( ElemTemplateElement * theSibling ) [virtual]
 

Set the next sibling.

theSibling - the new value for the next sibling.

Returns:
nothing

void ElemTemplateElement::setParentNodeElem ( ElemTemplateElement * theParent ) [virtual]
 

Set the parent node.

theParent - the new value for the parent.

Returns:
nothing

Reimplemented in ElemVariable.

void ElemTemplateElement::setPreviousSiblingElem ( ElemTemplateElement * theSibling ) [virtual]
 

Set the previous sibling.

theSibling - the new value for the previous sibling.

Returns:
nothing

const ElemTemplateElement * ElemTemplateElement::startElement ( StylesheetExecutionContext & executionContext ) const [virtual]
 

Completes "pre-processing" before any sub-elements are invoked (i.e.

children, attribute sets and templates). If there are no sub-elements it executes the primary function of the element.

Parameters:
executionContext   context to execute this element

Reimplemented in ElemApplyImport, ElemApplyTemplates, ElemAttribute, ElemAttributeSet, ElemCallTemplate, ElemChoose, ElemComment, ElemCopy, ElemCopyOf, ElemElement, ElemEmpty, ElemExtensionCall, ElemFallback, ElemForEach, ElemForwardCompatible, ElemIf, ElemLiteralResult, ElemMessage, ElemNumber, ElemOtherwise, ElemParam, ElemPI, ElemTemplate, ElemTextLiteral, ElemUse, ElemValueOf, ElemVariable, ElemWhen, and ElemWithParam.

void ElemTemplateElement::warn ( StylesheetConstructionContext & theContext,
XalanMessages::Codes theCode,
const XalanDOMChar * theToken1,
const XalanDOMChar * theToken2,
const XalanDOMChar * theToken3 ) [protected]
 

A convenience function for loading a message and reporting a warning through the provided StylesheetConstructionContext instance.

Parameters:
theContext   The StylesheetConstructionContext to use
theCode   The code of the message
theToken1   The first substitution token for the message
theToken2   The second substitution token for the message
theToken3   The third substitution token for the message

void ElemTemplateElement::warn ( StylesheetExecutionContext & theContext,
XalanMessages::Codes theCode,
const Locator * theLocator ) const [protected]
 

A convenience function for loading a message and reporting a warning through the provided StylesheetExecutionContext instance.

Parameters:
theContext   The StylesheetExecutionContext to use
theCode   The code of the message
theLocator   The Locator instance to use, if any

void ElemTemplateElement::warn ( StylesheetExecutionContext & theContext,
XalanMessages::Codes theCode,
const XalanDOMString & theToken ) const [protected]
 

A convenience function for loading a message and reporting a warning through the provided StylesheetExecutionContext instance.

Parameters:
theContext   The StylesheetExecutionContext to use
theCode   The code of the message
theToken   The substitution token for the message

void ElemTemplateElement::warn ( StylesheetExecutionContext & theContext,
XalanMessages::Codes theCode ) const [protected]
 

A convenience function for loading a message and reporting a warning through the provided StylesheetExecutionContext instance.

Parameters:
theContext   The StylesheetExecutionContext to use
theCode   The code of the message


Member Data Documentation

const ElemTemplate* ElemTemplateElement::m_directTemplate
 

ElemTemplateElement* ElemTemplateElement::m_firstChild
 

const ElemTextLiteral* ElemTemplateElement::m_textLiteralChild
 

const XalanDOMString ElemTemplateElement::s_emptyString [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.

dot

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

Apache Logo