Class Application<N>

java.lang.Object
eu.bandm.tools.tdom.runtime.BaseVisitor
eu.bandm.tools.xslt.tdom.Visitor
eu.bandm.tools.xslt.base.Application<N>
Type Parameters:
N - the node type of the input dom.
All Implemented Interfaces:
PCDataVisitor

public class Application<N> extends eu.bandm.tools.xslt.tdom.Visitor
Each instance of this class realizes the application of an xslt program, given as a Transformation, to a certain input. The constructor must be called, and then execute(), which returns the result either as one single TypedSubstantial, or as a MultiTypeNodeList, (but of course containing no more xslt elements but only Result Tree Fragments).
The real evaluation is nothing more than
  1. step through all MultiTypeNodeLists, thereby
    (a) copying all result type constants found into a result buffer,
    and (b) the results of evaluating all xslt commands.
  2. additionally, an xslt command can be replaced by its result iff its frequency is lower than "always".
  3. reduce the MultiTypeNodeList to a result type tdom element (which implies type checking).
  4. continuing so bottom-up
As preparatory step, all MultiTypeNodeLists which have mixed frequency are rewritten, so that they can be updated without disturbing the original Transformation object (esp. its Map "result_subtrees")
FIXME check expression CACHE (general expression cache) vs atribnameonlyonce
FIXME generation of TEXT ONLY (resultContext==null) missing.
FIXME OWN "pedantic" for Transformation and Application !?!? DISLOC [XSLT 1.0:14.2] defines NamespaceNames for extension functions
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     
    protected class 
    A "Result tree fragment" is a new kind of tpath value, namely a node set on the OUTPUT side, i.e.
  • Field Summary

    Fields

    Fields inherited from class eu.bandm.tools.tdom.runtime.BaseVisitor

    validating
  • Constructor Summary

    Constructors
    Constructor
    Description
    Application(MessageReceiver<SimpleMessage<XMLDocumentIdentifier>> msg, DocumentClient<N> documentClient, @Opt FunctionLibrary<N> allFuncs, Trace trace, Transformation transformation, N input, @Opt Map<NamespaceName,Value<N>> externalParameterValues)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    _traceTest(String prefixText, TypedElement el, String testSource, Value result)
     
    protected void
    _traceTest(String prefixText, TypedElement el, String testSource, String result)
     
    protected NamespaceName
    calculate_result_nsName(eu.bandm.tools.xslt.tdom.Element el, TypedAttribute attr_name, @Opt TypedAttribute attr_namespace, boolean isAttr)
    Calculates the Namespace name for the result object to be generated by xsl:element and xsl:attribute commands.
    FIXME nine cases (name and namespace can INDEPENDENTLY have been found constant, erronuous or still to calcalute) are not yet completely communicated from Transformation to Application.
    protected void
     
    protected void
     
    protected void
    errorOrWarning(boolean errorNotWarn, Location<XMLDocumentIdentifier> loc, String text)
     
    Top-level call for the start element.
    protected void
    feedTextToResult(eu.bandm.tools.xslt.tdom.Element el, String text)
    ATTENTION :
    (1) Assume only relatively SMALL text, so all sax events are collected statically / thread-less in ONE Queue.
     
    matchSimilar(DocumentClient<P> dc, P node)
    FIXME namespace name prefix is NOT available here !?!?!
    protected void
    constructor == null when collecting variable contents.
    protected void
    constructor == null when collecting contents for variables, comments, processing instructions, paramters, etc.
    protected void
     
    protected TypedElement
     
    protected String
     
     
    protected boolean
    testMulti(eu.bandm.tools.xslt.tdom.Element el)
     
    void
    Typed PCData in incomplete result elements or in an xslt element (eg.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_apply_imports el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_apply_templates el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_attribute el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_attribute_set el)
    AttributeSets have a constant frequency of "perSourceCorpus".
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_call_template el)
    Static checks have been passed, otherwise code==null, see Transformation
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_choose el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_comment el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_copy el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_copy_of el)
    Implements [XSLT 1.0:11.3].
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_decimal_format el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_element el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_fallback el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_for_each el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_if el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_import el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_include el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_key el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_message el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_namespace_alias el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_number el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_otherwise el)
    Inherit transparently: descending.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_output el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_param el)
    Is treated in var-look-up (for toplevel params) or in call-template or in apply-templates.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_preserve_space el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_processing_instruction el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_sort el)
    NOP.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_strip_space el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_stylesheet el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_template el)
    Executed after a call-template (caller!=null) or apply-templates.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_text el)
    Deliver text contents, or start a sub-parser for "disabled output escaping".
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_value_of el)
    Implements [XSLT 1.0:7.6.1] "The xsl:value-of element is instantiated to create a text node in the result tree.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_variable el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_when el)
    Can be overridden by the user to define particular semantic operations.
    void
    visit(eu.bandm.tools.xslt.tdom.Element_xsl_with_param el)
    Can be overridden by the user to define particular semantic operations.
    void
    Top-Level MultiTypeNodeList are sequences of xslt elements, complete result elements and MultiTypeNodeList.
    void
     
    void
     

    Methods inherited from class eu.bandm.tools.xslt.tdom.Visitor

    visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit

    Methods inherited from class eu.bandm.tools.tdom.runtime.BaseVisitor

    visit

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

    • pushBinding

      protected void pushBinding(NamespaceName name, Value<N> value)
    • execute

      public MultiTypeNodeList execute()
      Top-level call for the start element. (initial_context is already set up.) FIXME result should be checked for unity !?!?
    • singleResultElement

      @Opt public @Opt TypedElement singleResultElement()
    • matchSimilar

      public static <P> TPathCache.ExprClassified matchSimilar(DocumentClient<P> dc, P node)
      FIXME namespace name prefix is NOT available here !?!?!
    • calculate_result_nsName

      protected NamespaceName calculate_result_nsName(eu.bandm.tools.xslt.tdom.Element el, TypedAttribute attr_name, @Opt @Opt TypedAttribute attr_namespace, boolean isAttr)
      Calculates the Namespace name for the result object to be generated by xsl:element and xsl:attribute commands.
      FIXME nine cases (name and namespace can INDEPENDENTLY have been found constant, erronuous or still to calcalute) are not yet completely communicated from Transformation to Application.
    • _traceTest

      protected void _traceTest(String prefixText, TypedElement el, String testSource, String result)
    • _traceTest

      protected void _traceTest(String prefixText, TypedElement el, String testSource, Value result)
    • errorOrWarning

      protected void errorOrWarning(boolean errorNotWarn, Location<XMLDocumentIdentifier> loc, String text)
    • openResultFrame

      protected void openResultFrame(@Opt @Opt NamespaceName constructor, @Opt @Opt Location<XMLDocumentIdentifier> loc)
      constructor == null when collecting variable contents.
    • openResultFrame

      protected void openResultFrame(@Opt @Opt NamespaceName constructor, @Opt @Opt Location<XMLDocumentIdentifier> loc, MultiTypeNodeList proto)
      constructor == null when collecting contents for variables, comments, processing instructions, paramters, etc.
    • dropResultFrame

      protected void dropResultFrame()
    • collectPcData

      protected void collectPcData(MultiTypeNodeList c, StringBuilder sb, String desc)
    • reduceResultFrameToString

      protected String reduceResultFrameToString(String desc)
    • reduceResultFrame

      protected TypedElement reduceResultFrame()
    • visitMultiList

      public void visitMultiList(MultiTypeNodeList mtn)
      Top-Level MultiTypeNodeList are sequences of xslt elements, complete result elements and MultiTypeNodeList. The latter are un-complete result elements, which is something different!
    • visit

      public void visit(TypedPCData pcd)
      Typed PCData in incomplete result elements or in an xslt element (eg. chosen xsl:if or xsl:when) is simply copied to the result element under construction (i.e. resultFrame).
      Specified by:
      visit in interface PCDataVisitor
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visitResultElement

      public void visitResultElement(TypedElement el)
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_apply_imports el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn .
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_apply_templates el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) and for all components in its contents according to the content model.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_attribute el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_attribute_set el)
      AttributeSets have a constant frequency of "perSourceCorpus". Their only contents are xsl:attribute elements.
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_call_template el)
      Static checks have been passed, otherwise code==null, see Transformation
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_choose el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) and for all components in its contents according to the content model.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_comment el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_copy el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_copy_of el)
      Implements [XSLT 1.0:11.3].
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_decimal_format el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) .
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_element el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_fallback el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_for_each el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_if el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_import el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) .
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_include el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) .
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_key el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) .
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_message el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_namespace_alias el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) .
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • getSelfAndAncestorsUnderDocument

      public List<N> getSelfAndAncestorsUnderDocument(N node)
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_number el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) .
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_otherwise el)
      Inherit transparently: descending.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_output el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) .
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_variable el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_param el)
      Is treated in var-look-up (for toplevel params) or in call-template or in apply-templates.
        1) call-template with-param        ======>  3a) template  param
        2) apply-templates with-param      ======>  3b) template  param
        4) variable            (X)
        5) top-level-variable  (X)
        6) top-level-param     (X)
        
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_preserve_space el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) .
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_processing_instruction el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_sort el)
      NOP. Are already collected in Transformation and treated in course of "sequToVisit()".
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_strip_space el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) .
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_template el)
      Executed after a call-template (caller!=null) or apply-templates.
      FIXME ersteres kann kurzgeschlossen werden !?!? Preparations of parameters is stored in callState. In the first case all undeclared with-params are suppressed by static analysis (only "template2params.get(el)" are processed.) // FIXME this case should be INLINED (no visit() necessary) This is different with apply-templates: Undeclared with-params must be eliminated for each template differently, for not to shadow globals. The resulting bindings are constant per template and apply-templates execution and are cached in callstate. Default values for declared but not supplied parameters must be calculated in both cases. (They may depend on the current focus, which in case of caller==null is VARYING!)
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_text el)
      Deliver text contents, or start a sub-parser for "disabled output escaping".
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_value_of el)
      Implements [XSLT 1.0:7.6.1] "The xsl:value-of element is instantiated to create a text node in the result tree. The required select attribute is an expression; this expression is evaluated and the resulting object is converted to a string as if by a call to the string function."
      "disable output escaping" is realized by parsing the text as if it was in an original input document, see feedTextToResult(Element,String) ("general entities" are not considered ? FIXME)
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_when el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
    • feedTextToResult

      protected void feedTextToResult(eu.bandm.tools.xslt.tdom.Element el, String text)
      ATTENTION :
      (1) Assume only relatively SMALL text, so all sax events are collected statically / thread-less in ONE Queue.
      (2) numeric character references "&#...;" should be resolved on parsing . (3) namespace start/end mapping prefices not yet correctly handled (4) namespace resolution unclear !?!?!?
    • testMulti

      protected boolean testMulti(eu.bandm.tools.xslt.tdom.Element el)
    • visitMultiListContents

      public void visitMultiListContents(MultiTypeNodeList list)
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_stylesheet el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) and for all components in its contents according to the content model.
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor
    • visit

      public void visit(eu.bandm.tools.xslt.tdom.Element_xsl_with_param el)
      Description copied from class: eu.bandm.tools.xslt.tdom.Visitor
      Can be overridden by the user to define particular semantic operations. Will be called whenever the default model instance traversal (as implemented by the methods in this class) reaches such an element.
      This default implementation descends into the element by calling visit(..) in turn for all selected attributes (see BaseVisitor.validating) andfor all PCData and all Elements in its contents.
      Overrides:
      visit in class eu.bandm.tools.xslt.tdom.Visitor