Specializing XSL stylesheets

The XProc pipelines supplied out of the box reference the XSL stylesheets in an indirect way.

The xslt step uses a URN to reference the stylesheet:
<p:xslt name="topic-xhtml">
  <p:input port="stylesheet">
    <p:document href="cpnz:dita:xsl:dita2xhtml.xsl" />
  </p:input>
  ...
</p:xslt>
The URN is resolved using a catalog:
<group xml:base="xsl/">
  <uri name="cpnz:dita:xsl:dita2xhtml.xsl" uri="dita2xhtml.xsl" />
</group>
The stylesheet (dita2xhtml.xsl in the example) has three imports:
<!-- Import standard top-level stylesheet -->
<xsl:import href="plugin:org.dita.xhtml:xsl/dita2xhtml.xsl" />

<!-- Import Componize compatibility stylesheet -->
<xsl:import href="cpnz:dita:compatibility:xsl:dita2xhtml.xsl" />

<!-- Import user custom stylesheet -->
<xsl:import href="cpnz:dita:custom:xsl:dita2xhtml.xsl" /> 
Note: The custom stylesheet is empty by default, but can be overidden to supply your own custom stylesheet.