xsl:element generates elements in time of processing. This stylesheet uses this feature, while This stylesheet achieves the same effect in a different and laborous way.
xsl:attribute generates elements in time of processing. It creates attribute in the element in which it is enclosed.
Copy and copy-of constructs are used for nodes copying. Copy element copies only the current node without children and attributes, while copy-of copies everything.
The xsl:copy element may have a use-attribute-sets attribute. In this way attributes for copied element can be specified. This stylesheet does not work as expected (setting use-attribute-sets with name function)., because expresions in attributes that refer to named XSLT objects are not evaluated. Look at Example 31 for more details.