Doxsl uses the metaphor of a stylesheet as an application. Each application consists of one or more modules (individual stylesheet files).
The core Doxsl processor traverses through the xsl:import
and xsl:include
declarations and collects each stylesheet
file contents into a dx:module
element. The dx:module
element contains several attributes that contain metadata about each stylesheet including
import precedence, and the "parent" stylesheet that imported/included the current stylesheet.
A dx:application
element is used as a container for the collection
of dx:module
elements.
When the collection process is complete, the core Doxsl processor invokes the
OnApplicationCollected
named template and passes the
dx:application
element as a parameter.
The OnApplicationCollected
named template acts like
an "abstract" method that must be overridden. For each Doxsl implementation,
there will be a local instance of this named template that overrides the base instance.
This should be the starting point for generating the output. At this point,
processing occurs on the dx:application
"document"