Doxsl is a library of XSLT 2.0 stylesheets that are used to generate code documentation for XSLT stylesheet applications. The libary collects the XSLT stylesheet modules in the application and contains functions and base templates that can used to generate documentation in a wide variety of markup languages.
Doxsl includes default implementations for generating stylesheet documentation in DITA, DocBook, and HTML. Doxsl can be extended to create other formats such as XSL-FO (for PDF and other print layout formats), ODF, or WordML.
The Doxsl Core library is responsible for collecting and collating all of the
XSLT stylesheets in an XSLT application into an in-memory result set that can
be used for processing the output. In addition, the Doxsl Core includes
many xsl:function
s that allow implementors to access data from
the application including:
These functions collect references to other XSLT components with the same profile (e.g., all of the parameters, templates or attribute sets with the same name, or match templates with the same match expression) that override the current component, or that the current component supercedes. These functions evaluate the components based on their relative import precedence to determine the current components relationship to the other components.
These functions collect references to other XSLT components that use the current component.
These functions collect references to other components that the current
component calls (e.g., <xsl:call-template>
calls
or references to globally scoped parameters)
These functions return the module filename that the current component resides in.
Often XSLT stylesheet applications contain stylesheet modules that have the same basename but located in different directories. And often these contain components with the same profile. For example, I might have a params.xsl with the parameter, foo located in my application root folder, and another params.xsl located in another folder with the same parameter name. Both are valid within the application. To support this, each component and module is uniquely identified to enable cross referencing between these components (or alternately creating unique result documents with unique names).
In addition to the Doxsl Core Library, Doxsl also includes a very loose documentation markup schema that you can use to document your stylesheets. It's integrated with the XSLT 2.0 schema if you have a syntax-aware editor that enables code-competion, or if you want to simply validate your stylesheet against the schema.
The Doxsl processor does not validate your code comments and will simply fail to process markup it doesn't understand.
You aren't obligated to use it to generate your documentation. It just provides basic XML markup that Doxsl implements out of the box if used, and provides non-documented stylesheets with a starting point for enabling more complete code documentation. If you've documented your code with another markup schema, you don't have to retrofit your documentation with Doxsl's (unless you want to). Instead, you can override Doxsl's comment processing code with your own.