[no subject]

3. Have derived.xsl be created from base.xsl through an XSLT
transformation. This is similar to the previous solution but completely
eliminates the import relationship between derived.xsl and base.xsl.
Overriding behavior is not done through language mechanisms but by
rewriting XSLT code.

4. Functions as wrappers around templates. The file base.xsl contains:

<xsl:function name="foo">
  <xsl:call-template name="foo"/>
</xsl:function>

<xsl:template name="foo">
... do the actual work ...
</xsl:template>

Whoever wants to override what the function foo does overrides the
template named foo. So derived.xsl contains:

<xsl:template name="foo">
 ... do the customized work ...
 ... use <xsl:apply-imports/> as needed ...
</xsl:template>

The downside of this solution is that it requires base.xsl to be
modified. Which means that whoever is responsible for it must agree to
make the changes.

Solution 4 is the one I prefer right now.

Thank you,
Louis

Current Thread