xsl:element permet de créer des éléments XML.

<balise1>
<balise2>
</xsl:apply-templates/>
</balise2>
</balise1>

L'on peut avoir la syntaxe équivalente suivante, en utilisant xsl:element:

<xsl:element name="balise1">
<xsl:element name="balise2">
</xsl:apply-templates/>
</xsl:element>
</xsl:element>

Cependant, l'avantage de cette notation est de créer des éléments dont le nom n'est pas définit à l'avance mais va dépendre des valeurs du fichier XML:

<xsl:element name="{$x}">
...
</xsl:element>