2005-02-14 03:33:02

Extended versions of XSLT elements for debugging and execution tracing

These subclasses typically just override the .instantiate method of the original class, doing something before calling the original method, like writing debug or trace output and maintaining whatever state info is necessary in the process.

Copyright 2005 Fourthought, Inc. (USA). Detailed license and copyright information: http://4suite.org/COPYRIGHT Project home, documentation, distributions: http://4suite.org/

An XSLT element superclass that supports debugging and execution tracing.

An existing XSLT element can be extended by subclassing this and the original element class. In order to make use of the extended class, it should be referenced in Ft.Xml.Xslt.StylesheetHandler._ELEMENT_MAPPING, and additional instance variables necessary should be set as desired.

This method, specific to extended processign elements, attempts to perform all extended processing. By default, it looks at the given processor's instance variables to determine what to do; e.g., processor._4xslt_debug can trigger debug handling.

processor is the active Processor instance.

method is the instantiate method of the original element class.

args are a sequence of arguments (besides self) for the method. argNames are the names of these arguments, for display purposes (the names from the method signature, usually). keyword args are not supported.

name is the display name of the original element.

A version of the Processor class that supports debugging and tracing.

{'attribute': 'ExtendedProcessingElements.ExtendedAttributeElement', 'choose': 'ExtendedProcessingElements.ExtendedChooseElement', 'comment': 'ExtendedProcessingElements.ExtendedCommentElement', 'copy': 'ExtendedProcessingElements.ExtendedCopyElement', 'copy-of': 'ExtendedProcessingElements.ExtendedCopyOfElement', 'element': 'ExtendedProcessingElements.ExtendedElementElement', 'for-each': 'ExtendedProcessingElements.ExtendedForEachElement', 'if': 'ExtendedProcessingElements.ExtendedIfElement', 'processing-instruction': 'ExtendedProcessingElements.ExtendedProcessingInstructionElement', 'template': 'ExtendedProcessingElements.ExtendedTemplateElement', ...}