Elements can also be created by xsl:element.
This is used when the element name or namespace is created based on a expression.
An example:
<xsl:element name="top"> <a/><b/><c/> </xsl:element>
constructs:
<top> <a/><b/><c/> </top>
The children of 'xsl:element' are the children of the newly created element.
You can use expressions in the name:
<xsl:element name="{@name}"/>