In case the markup elements names aren't the same as the corresponding Html element names, for example:
<decision>
<akapit nr="1">
This is
<bold>important</bold> decision for the query number
<italic>0123456</italic>
</akapit>
</decision>
Then a very simple application of the identity rule is this:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="akapit">
<div><xsl:apply-templates/></div>
</xsl:template>
<xsl:template match="bold"><b><xsl:apply-templates/></b></xsl:template>
<xsl:template match="italic"><i><xsl:apply-templates/></i></xsl:template>
<xsl:template match="/*"><xsl:apply-templates/></xsl:template>
</xsl:stylesheet>
And when this transformation is applied on the above XML document, the wanted, correct result is produced:
<div>
This is
<b>important</b> decision for the query number
<i>0123456</i>
</div>
Do Note: Using xsl:apply-templates
should be preferred to xsl:copy-of
as the latter doesn't allow flexibility to further process the selected nodes -- it only copies them.