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

[legend]
Collaboration diagram for ElemTemplateElement:

[legend]
List of all members.

## Public Methods

- ElemTemplateElement (StylesheetConstructionContext &constructionContext, Stylesheet &stylesheetTree, int lineNumber, int columnNumber, int xslToken)
    Construct a template element instance. More...
- 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. More...
- virtual ~ElemTemplateElement ()
- virtual const LocatorType* getLocator () const
    Get the Locator for the node. More...
- virtual bool isAttrOK (const XalanDOMChar *attrName, const AttributeListType &atts, int which, StylesheetConstructionContext &constructionContext) const
    See if this is a xmlns attribute or in a non-XSLT. More...
- bool 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. More...
- virtual const ElemTemplateElement* startElement (StylesheetExecutionContext &executionContext) const
    Completes "pre-processing" before any sub-elements are invoked (i.e. More...
- virtual void endElement (StylesheetExecutionContext &executionContext) const
    Completes "post-processing" afer any sub-elements are invoked (i.e. More...
- virtual void execute (StylesheetExecutionContext &executionContext) const
    Execute the element. More...
- virtual void executeChildren (StylesheetExecutionContext &executionContext) const
    Execute the children of this element. More...
- virtual const ElemTemplateElement* getInvoker (StylesheetExecutionContext &executionContext) const
    Returns the element that invoked this element. More...
- int getXSLToken () const
- virtual bool isWhitespace () const
    Tell if the element will generate text which is XML whitespace. More...
- virtual const XalanDOMString& getElementName () const=0
    Get a string for the name of the element. More...
- virtual const XalanQName& getNameAttribute () const
    Get the QName associated with any name attribute of this element. More...
- virtual void addToStylesheet (StylesheetConstructionContext &constructionContext, Stylesheet &theStylesheet)
    Called during compilation when an instance is not parented by another element, and thus, is a child of the stylesheet.. More...
- virtual void processSortElement (StylesheetConstructionContext &constructionContext, Stylesheet &theStylesheet, const AttributeListType &atts, const LocatorType *locator=0)
    Called during compilation to process xsl:sort elements in the stylesheet. More...
- virtual void setDefaultTemplate (bool value)
    Sets a flag indicating this is the default template. More...
- const NamespacesHandler& getNamespacesHandler () const
    Get the namespaces handler for this element. More...
- const Stylesheet& getStylesheet () const
    Retrieve the stylesheet from which this element comes. More...
- void setFinishedConstruction (bool fValue)
    Set the flag indicating construction of the element is completed. More...
- bool getFinishedConstruction () const
    Get the flag indicating construction of the element is completed. More...
- virtual void postConstruction (StylesheetConstructionContext &constructionContext, const NamespacesHandler &theParentHandler)
    Called after construction is completed. More...
- virtual ElemTemplateElement* getFirstChildElem () const
    Get the first child. More...
- virtual const ElemTemplateElement* beginExecuteChildren (StylesheetExecutionContext &executionContext) const
    Method to initiate the execution of the element's children. More...
- virtual void endExecuteChildren (StylesheetExecutionContext &executionContext) const
    Method to indicate the execution of the element's children is complete. More...
- const ElemTemplateElement* beginChildrenToString (StylesheetExecutionContext &executionContext, XalanDOMString &result) const
    Method to initiate output from the children to a string. More...
- void endChildrenToString (StylesheetExecutionContext &executionContext) const
    Method to indicate string output from the children is complete. More...
- virtual void setFirstChildElem (ElemTemplateElement *theChild)
    Set the first child. More...
- virtual ElemTemplateElement* getLastChildElem () const
    Get the last child. More...
- virtual ElemTemplateElement* getNextSiblingElem () const
    Get the next sibling. More...
- virtual const ElemTemplateElement* getNextChildElemToExecute (StylesheetExecutionContext &executionContext, const ElemTemplateElement *currentElem) const
    Returns the next sub-element (i.e. More...
- virtual const ElemTemplateElement* getFirstChildElemToExecute (StylesheetExecutionContext &executionContext) const
    Returns the first sub-element (i.e. More...
- virtual bool executeChildElement (StylesheetExecutionContext &executionContext, const ElemTemplateElement *element) const
    Filters sub-elements that should be executed. More...
- virtual void setNextSiblingElem (ElemTemplateElement *theSibling)
    Set the next sibling. More...
- virtual ElemTemplateElement* getPreviousSiblingElem () const
    Get the previous sibling. More...
- virtual void setPreviousSiblingElem (ElemTemplateElement *theSibling)
    Set the previous sibling. More...
- virtual ElemTemplateElement* getParentNodeElem () const
    Get the parent node. More...
- virtual void setParentNodeElem (ElemTemplateElement *theParent)
    Set the parent node. More...
- virtual ElemTemplateElement* appendChildElem (ElemTemplateElement *newChild)
    Append a child. More...
- virtual const XPath* getXPath (unsigned int index=0) const
    Get XPath pattern/expression of one of the element atribute. More...
- virtual const XalanDOMString* getNamespaceForPrefix (const XalanDOMString &prefix) const
    Retrieve a namespace corresponding to a prefix. More...
- virtual const XalanDOMString& getURI () const
    Retrieve the base URI for the resolver. More...
- LocatorProxy::size_type getLineNumber () const
- LocatorProxy::size_type getColumnNumber () const
- bool hasParams () const
- bool hasVariables () const
- bool hasSingleTextChild () const
- bool hasChildren () const
- bool hasDirectTemplate () const
- bool canGenerateAttributes () const
- bool isDefaultTemplate () const

## Static Public Methods

- bool isValidNCName (const XalanDOMString &s)
    Validate that the string is an NCName. More...

## Protected Methods

- void canGenerateAttributes (bool value)
- void hasPrefix (bool value)
- bool hasPrefix () const
- void preserveSpace (bool value)
- bool preserveSpace () const
- void disableOutputEscaping (bool value)
- bool disableOutputEscaping () const
- bool processPrefixControl (StylesheetConstructionContext &constructionContext, const Stylesheet &stylesheetTree, const XalanDOMString &localName, const XalanDOMChar *attrValue)
    Process the exclude-result-prefixes or the extension-element-prefixes attributes, for the purpose of prefix exclusion. More...
- const XalanDOMString* getNamespaceForPrefixInternal (const XalanDOMString &prefix) const
    Get the namespace for a given prefix. More...
- virtual const ElemTemplateElement* findTemplateToTransformChild (StylesheetExecutionContext &executionContext, const ElemTemplateElement &xslInstruction, const ElemTemplateElement *theTemplate, XalanNode *child) const
    Given an element, find the corresponding template. More...
- virtual const ElemTemplateElement* findTemplateToTransformChild (StylesheetExecutionContext &executionContext, const ElemTemplateElement &xslInstruction, const ElemTemplateElement *theTemplate, XalanNode *child, XalanNode::NodeType nodeType) const
    Given an element, find the corresponding template. More...
- virtual bool childTypeAllowed (int xslToken) const
    Given an xsl token type, determine whether or not a child of that type is allowed. More...
- virtual void namespacesPostConstruction (StylesheetConstructionContext &constructionContext, const NamespacesHandler &theParentHandler, NamespacesHandler &theHandler)
    Called after construction is completed. More...
- const NamespacesHandler& getNamespaces () const
- void error (StylesheetExecutionContext &theContext, XalanMessages::Codes theCode) const
    A convenience function for loading a message and reporting an error through the provided StylesheetExecutionContext instance. More...
- void error (StylesheetExecutionContext &theContext, XalanMessages::Codes theCode, const XalanDOMString &theToken) const
    A convenience function for loading a message and reporting an error through the provided StylesheetExecutionContext instance. More...
- void error (StylesheetExecutionContext &theContext, XalanMessages::Codes theCode, const Locator *theLocator) const
    A convenience function for loading a message and reporting an error through the provided StylesheetExecutionContext instance. More...
- void warn (StylesheetExecutionContext &theContext, XalanMessages::Codes theCode) const
    A convenience function for loading a message and reporting a warning through the provided StylesheetExecutionContext instance. More...
- void warn (StylesheetExecutionContext &theContext, XalanMessages::Codes theCode, const XalanDOMString &theToken) const
    A convenience function for loading a message and reporting a warning through the provided StylesheetExecutionContext instance. More...
- void warn (StylesheetExecutionContext &theContext, XalanMessages::Codes theCode, const Locator *theLocator) const
    A convenience function for loading a message and reporting a warning through the provided StylesheetExecutionContext instance. More...
- void error (StylesheetConstructionContext &theContext, XalanMessages::Codes theCode)
    A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance. More...
- void error (StylesheetConstructionContext &theContext, XalanMessages::Codes theCode, const XalanDOMString &theToken)
    A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance. More...
- void error (StylesheetConstructionContext &theContext, XalanMessages::Codes theCode, const XalanDOMString &theToken, const Locator *theLocator)
    A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance. More...
- void error (StylesheetConstructionContext &theContext, XalanMessages::Codes theCode, const XalanDOMString &theToken1, const XalanDOMString &theToken2)
    A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance. More...
- void error (StylesheetConstructionContext &theContext, XalanMessages::Codes theCode, const XalanDOMChar *theToken1, const XalanDOMChar *theToken2)
    A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance. More...
- void error (StylesheetConstructionContext &theContext, XalanMessages::Codes theCode, const XalanDOMChar *theToken1, const XalanDOMChar *theToken2, const XalanDOMChar *theToken3)
    A convenience function for loading a message and reporting an error through the provided StylesheetConstructionContext instance. More...
- void warn (StylesheetConstructionContext &theContext, XalanMessages::Codes theCode, const XalanDOMChar *theToken1, const XalanDOMChar *theToken2, const XalanDOMChar *theToken3)
    A convenience function for loading a message and reporting a warning through the provided StylesheetConstructionContext instance. More...

## Static Protected Attributes

- const XalanDOMString s_emptyString

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

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