Dataflow
The editor has been redesigned to take advantage of GENE.
An outdated transformation
model can be found at Martin Vysny's work. It includes an exact definiton
of terms used in this web site, and the schema autocompletion algorithms description.
Current document dataflow is as follows:
- Source document is transformed by GENE.
- The GENE output is handled by a
special coordinator.
- This coordinator distributes the data between renderers (and appropriate editors), and maintains
their tree hierarchy
- EditorSite maintains and
positions editors and renderers, creating and disposing editors when required.
Let's describe these steps more deeply:
- At the beginning, there is source document :-). This document is an in-memory (DOM) representation of
loaded XML file. Every element has
emp:id
attribute, specifying
its unique ID. This attribute should not be lost in the
dataflow in order for this element to be identifiable.
- This document is then split into tree of nametrees. Nametree is a maximal
coherent subtree of source DOM containing elements from one namespace only. In every nametree the
connection point to another nametree is marked by
generef
processing instruction, containing
ID of root node in the nametree (the nameroot). Its text
value is the namespace of this nametree.
- Every nametree is processed by a GENE Exporter graph.
- All Exporter outputs are put together in the coordinator, and thus one presentation document is born,
with one or more namespaces.
- For each nametree in this result a renderer is chosen to render it. Built-in
renderers are: FOP for rendering FO documents, and Image renderer rendering Image objects.