How Doxsl Works

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"