CSS Within currently  includes a Java definition of XSLT extension
            elements for css:rule and css:media that
            simply return an empty sequence at compile time. When the stylesheet
            runs, the CSS Within elements are gone, so there is no need for a
            clean-up phase.
In development is an extension element for css:gather
            which at stylesheet compilation builds the CSS stylesheet so that
            when run, the css:gather element is replaced by an
                xsl:text element containing the text of the
            stylesheet. In order that the CSS fragments are collected from
            included and imported stylesheets and packages,
                apply-templates must be called in
                css:gather mode; the CSS Within stylesheet which
            can be imported contains a template that uses
                xsl:next-match to fetch the css:gather
            fragments from every other stylesheet module. Since all of this is
            arranged when the stylesheet is compiled, run-time support for the
            extension elements is not required. Each module must either include
            the CSS Within stylesheet, or must define a suitable
                css:gather template.
This css:gather implementation is then used by the
            public css:stream element to  produce the text of the
            CSS stylesheet.
The complexities of configuring Saxon to run an extension, and of supporting separate compilation where the runtime engine is not necessarily in the same Java instance as the execution, or even in Java at all, mean that at the time of writing this paper the implementation is not stable enough to redistribute, but the author expects that to change.