Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.10

Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Attributes
ElemTemplateElement Class Reference
Inheritance diagram for ElemTemplateElement:
PrefixResolver ElemApplyImport ElemAttribute ElemCallTemplate ElemChoose ElemComment ElemCopyOf ElemDecimalFormat ElemEmpty ElemFallback ElemForEach ElemForwardCompatible ElemIf ElemMessage ElemNumber ElemOtherwise ElemPI ElemSort ElemTemplate ElemText ElemTextLiteral ElemUse ElemValueOf ElemVariable ElemWhen ElemWithParam

List of all members.

Classes

Public Member Functions

Static Public Member Functions

Protected Member Functions

Static Protected Attributes


Constructor & Destructor Documentation

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

Construct a template element instance.

Parameters:
constructionContextcontext when object constructed
stylesheetTreeowning stylesheet
lineNumberline in the XSLT file where the element occurs
columnNumbercolumn index in the XSLT file where the element occurs
xslTokenan 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:
constructionContextcontext when object constructed
stylesheetTreeowning stylesheet
baseURIThe base URI of the XSLT file where the element occurs.
lineNumberline in the XSLT file where the element occurs
columnNumbercolumn index in the XSLT file where the element occurs
xslTokenan integer representing the type of instance.
virtual ElemTemplateElement::~ElemTemplateElement ( ) [virtual]

Member Function Documentation

virtual 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:
constructionContextThe current construction context
theStylesheetThe owning stylesheet
Returns:
nothing

Reimplemented in ElemAttributeSet, ElemTemplate, and ElemVariable.

virtual 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:
executionContextcontext to execute this element
resultstring to contain the final result
Returns:
the first child element to execute
virtual const ElemTemplateElement* ElemTemplateElement::beginExecuteChildren ( StylesheetExecutionContext executionContext) const [virtual]

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

Parameters:
executionContextcontext to execute this element
Returns:
the first child element to execute
bool ElemTemplateElement::canGenerateAttributes ( ) const
void ElemTemplateElement::canGenerateAttributes ( bool  value) [protected]
virtual 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:
xslTokenThe 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:
executionContextcontext to execute this element
virtual 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:
executionContextcontext 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.

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

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

Parameters:
executionContextcontext to execute this element
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:
theContextThe StylesheetConstructionContext to use
theCodeThe code of the message
theToken1The first substitution token for the message
theToken2The second 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:
theContextThe StylesheetExecutionContext to use
theCodeThe code of the message
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:
theContextThe StylesheetExecutionContext to use
theCodeThe code of the message
theTokenThe substitution token for 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:
theContextThe StylesheetExecutionContext to use
theCodeThe code of the message
theLocatorThe 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:
theContextThe StylesheetConstructionContext to use
theCodeThe code of the message
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:
theContextThe StylesheetConstructionContext to use
theCodeThe code of the message
theTokenThe substitution token for the message
theLocatorThe Locator instance to use, if any
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:
theContextThe StylesheetConstructionContext to use
theCodeThe code of the message
theTokenThe substitution token for the message
theLocatorThe Locator instance to use, if any
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:
theContextThe StylesheetConstructionContext to use
theCodeThe code of the message
theToken1The first substitution token for the message
theToken2The second substitution token for the message
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:
theContextThe StylesheetConstructionContext to use
theCodeThe code of the message
theToken1The first substitution token for the message
theToken2The second substitution token for the message
theToken3The third substitution token for the message
virtual void ElemTemplateElement::execute ( StylesheetExecutionContext executionContext) const [virtual]

Execute the element.

Parameters:
executecontext to execute this element
virtual bool ElemTemplateElement::executeChildElement ( StylesheetExecutionContext executionContext,
const ElemTemplateElement element 
) const [virtual]

Filters sub-elements that should be executed.

Parameters:
executionContextcontext to execute element
elementthe element to be executed
Returns:
true if element should be executed, false otherwise

Reimplemented in ElemElement, ElemExtensionCall, and ElemForwardCompatible.

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

Execute the children of this element.

Parameters:
executecontext to execute this element
virtual 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:
executionContextThe current execution context
xslInstructionThe calling element
templateThe template to use if xsl:for-each, or null.
childThe source context node.
nodeTypeThe type of child.
Returns:
matching template if any. Returns 0 if no matching template or corresponds to a default rule.
virtual 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:
executionContextThe current execution context
xslInstructionThe calling element
templateThe template to use if xsl:for-each, or null.
childThe 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
virtual const XalanDOMString& ElemTemplateElement::getElementName ( ) const [pure virtual]
bool ElemTemplateElement::getFinishedConstruction ( ) const

Get the flag indicating construction of the element is completed.

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

Get the first child.

Returns:
first child node of this node
virtual const ElemTemplateElement* ElemTemplateElement::getFirstChildElemToExecute ( StylesheetExecutionContext executionContext) const [virtual]

Returns the first sub-element (i.e.

children, attribute-sets, templates) to execute.

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

Reimplemented in ElemApplyTemplates, ElemCallTemplate, and ElemUse.

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

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

Get the last child.

Returns:
last child node of this node
LocatorProxy::size_type ElemTemplateElement::getLineNumber ( ) const
virtual const LocatorType* ElemTemplateElement::getLocator ( ) const [virtual]

Get the Locator for the node.

This may return 0.

Returns:
The Locator for the node.
virtual 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.

virtual 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:
prefixPrefix to resolve
Returns:
namespace that prefix resolves to, or null if prefix is not found

Implements PrefixResolver.

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

Get the namespace for a given prefix.

Parameters:
prefixThe prefix to search for
fExistsIf 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.
virtual 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:
executionContextcontext to execute element
currentElemthe 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.

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

Get the next sibling.

Returns:
next sibling node of this node
virtual ElemTemplateElement* ElemTemplateElement::getParentNodeElem ( ) const [virtual]

Get the parent node.

Returns:
parent node of this node
virtual 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
virtual const XalanDOMString& ElemTemplateElement::getURI ( ) const [virtual]

Retrieve the base URI for the resolver.

Returns:
URI string

Implements PrefixResolver.

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

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

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
virtual 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:
attrNamequalified name of attribute
attsattribute list where the element comes from (not used at this time)
whichindex into the attribute list (not used at this time)
constructionContextThe current construction context
Returns:
true if this is a namespace name

Reimplemented in ElemLiteralResult.

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

Validate that the string is an NCName.

Parameters:
sname 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
virtual 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.

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

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

Called after construction is completed.

Reimplemented in ElemCallTemplate, ElemForEach, ElemLiteralResult, and ElemUse.

void ElemTemplateElement::preserveSpace ( bool  value) [protected]
bool ElemTemplateElement::preserveSpace ( ) const [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:
constructionContextcontext when object consructed
stylesheetTreeThe current Stylesheet object.
localNameThe local name of the attribute.
attrValueThe value of the attribute.
virtual 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:
constructionContextThe current construction context
theStylesheetThe owning stylesheet
attsThe list of attributes for the sort element
locatorA 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:
elementNamename of the element with the attribute
anamename of the attribute in question
attsattribute list that owns the attribute
whichindex of the attribute into the attribute list
constructionContextThe current construction context
Returns:
true if this is a xml:space attribute
virtual void ElemTemplateElement::setDefaultTemplate ( bool  value) [virtual]

Sets a flag indicating this is the default template.

Parameters:
valueThe value of flag.
void ElemTemplateElement::setFinishedConstruction ( bool  fValue)

Set the flag indicating construction of the element is completed.

Parameters:
fValueThe value to set
virtual void ElemTemplateElement::setFirstChildElem ( ElemTemplateElement theChild) [virtual]

Set the first child.

theChild - the new value for the first child.

Returns:
nothing
virtual void ElemTemplateElement::setNextSiblingElem ( ElemTemplateElement theSibling) [virtual]

Set the next sibling.

theSibling - the new value for the next sibling.

Returns:
nothing
virtual void ElemTemplateElement::setParentNodeElem ( ElemTemplateElement theParent) [virtual]

Set the parent node.

theParent - the new value for the parent.

Returns:
nothing

Reimplemented in ElemVariable.

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

Set the previous sibling.

theSibling - the new value for the previous sibling.

Returns:
nothing
virtual 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:
executionContextcontext 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 ( StylesheetExecutionContext theContext,
XalanMessages::Codes  theCode 
) const [protected]

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

Parameters:
theContextThe StylesheetExecutionContext to use
theCodeThe code of 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:
theContextThe StylesheetExecutionContext to use
theCodeThe code of the message
theLocatorThe 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:
theContextThe StylesheetExecutionContext to use
theCodeThe code of the message
theTokenThe substitution token for the message
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:
theContextThe StylesheetConstructionContext to use
theCodeThe code of the message
theToken1The first substitution token for the message
theToken2The second substitution token for the message
theToken3The third substitution token for the message

Member Data Documentation


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