Combining Data-Driven and Template-Driven Transformations
In practice, it might be most effective to combine data-driven transformations with template-driven ones. The following is an example.
<xsl:template match="/"> <HTML> <HEAD> <TITLE><xsl:value-of select="document/title"/></TITLE> </HEAD> <BODY> <H1><xsl:value-of select="document/title"/></H1> <xsl:apply-templates select="document/section"/> </BODY> </HTML> </xsl:template>
Here, the template rules for the top-level element are template-driven. They stipulate that, in the output, the title of the document always precedes the sections of the document — even when the order is different in the source document. The data-driven transformations apply only to the sections of the source document.
The following topic provides the complete source files and output for this example.