XML Preprocessing and XSLT Processing Models

XSL Working Group,

Argumentation Community Group,




Greetings.  There has been interest in dynamic or parameterizable XSLT imports and includes.  XML preprocessing, XML macros (https://www.w3.org/community/argumentation/wiki/XML_Macros) and XSLT-enhanced XML includes (https://www.w3.org/community/argumentation/wiki/XSLT-Enhanced_XML_Include), facilitates such expressiveness.





For example:





<define>
  <schema xmlns="http://www.w3.org/2001/XMLSchema">
    ...
  </schema>
  <transform xmlns="http://www.w3.org/1999/XSL/Transform">
    <template match="...">
      ...
      <element name="include" namespace="...">
        <attribute name="href" namespace="...">
          <value-of select="..." />
        </attribute>
      </element>
      ...
    </template>
  </transform>
</define>





such that:





<xmlmacro href="file1.xslt">


  <xmlmacro href="file2.xslt">


    <xmlmacro href="file3.xslt">

      ...

    </xmlmacro>

  </xmlmacro>

</xmlmacro>





describes and expands into a structure as per iterative processing.




XSLT processing models are topical to XML preprocessing and, in addition to heuristics from other preprocessing models, advanced functionalities are possible from parallel processing, where each processing context is as a concurrent thread and can access a document object model, including traversal between macros and includes and macro expansions and included content, and where concurrent processing contexts can exchange messages.  Such concurrency facilitates advanced scenario, e.g. layout or rendering engine logic and grammatical processing scenarios such as the grammatical framework.


For those interested, the topics pertain to: preprocessing (http://en.wikipedia.org/wiki/Preprocessor), rewriting systems (http://en.wikipedia.org/wiki/Rewriting), string rewriting systems (http://en.wikipedia.org/wiki/String_rewriting_system), term rewriting systems (http://en.wikipedia.org/wiki/Rewriting#Term_rewriting_systems), graph rewriting systems (http://en.wikipedia.org/wiki/Graph_rewriting), Lindenmayer systems (http://en.wikipedia.org/wiki/L-system), parallel rewriting systems, process calculi (http://en.wikipedia.org/wiki/Process_calculus) and trace theory (http://en.wikipedia.org/wiki/Trace_theory).


Also topical to macro expansion is outputting multiple subtrees and such that concurrent processing contexts can output @xref attributes referencing elements between subtrees:





<macroexpansion>

  <subtree1>

    <!-- processing context output subtree 1 -->

  </subtree1>

  <subtree2>



    <!-- processing context output subtree 2 -->

  </subtree2>

</macroexpansion>










Kind regards,




Adam Sobieski

Received on Saturday, 15 February 2014 15:02:25 UTC