[xsl] XML Preprocessing and XSLT Processing Models

Subject: [xsl] XML Preprocessing and XSLT Processing Models
From: Adam <adamsobieski@xxxxxxxxxxx>
Date: Sat, 15 Feb 2014 15:08:38 +0000
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>
    
  </subtree2>
</macroexpansion>



Kind
regards,

Adam Sobieski

Current Thread