Кажется, что функция копирования xsl отличается от функциональной иерархической структуры копирования в том, что она не оценивает условие выбора (если условие является осями XPath) перед применением действия функции.
так что xsl:copy select="ancestor::*"
будет вести себя иначе, чем xsl:copy-of select="ancestor::*"