XSL - Identity Transformation
Using and overriding the identity rule is the most fundamental and powerful XSLT design pattern.
De identity rule, identity transform, oftewel identity transformation in de praktijk:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet>
Wat de identity transformation doet, is dat-ie een kopie van zichzelf maakt. De uitvoer is dus gelijk aan de invoer. Op zich niet bijster spannend. Het wordt pas interessant als je het combineert met aanpassingen. Dus dat een bepaald ding in alle nodes verandert, en de rest hetzelfde blijft.
Match
Wat er schuil gaat in de match
match="@*|node()
wil zeggen:
* @* - Alle attributen * | - OR * node() - Alle nodes
Dit kan ook explicieter [2]:
match="@*|*|processing-instruction()|comment()"
Oftewel:
* @* - Alle attributen * | - OR * * - Nodes: Tekst, root, elementen * process-instruction() - Dat dus * comment() - Commentaar