The xsl copy function appears to deviate from the functional hierarchical pattern of the copy-of in that it doesn’t assess the select condition (if condition is an XPath axes) before applying the function action.
so xsl:copy select="ancestor::*" will behave different than xsl:copy-of select="ancestor::*"
Well,
copyandcopy-ofare intended to do very different things.copyalways works on the current node and does not support theselectattribute. See http://zvon.org/xxl/XSLTreference/Output/xslt_copy.html vs http://zvon.org/xxl/XSLTreference/Output/xslt_copy-of.html.