You need to understand that XPath expressions work on a representation of the XML document called the XPath Data Model. In this model:
* namespaces are not attributes (so your root element has 3 attributes, not 5)
* the <?xml-stylesheet?> ends up as a processing-instruction node. If you want to copy processing instructions, you need to write a template rule for them:
<xsl:template match="processing-instruction()">
<xsl:copy/>
</xsl:template>
* the XML declaration is not represented by a node in the data model at all. The serializer looks after the job of creating a correct XML declaration in the output document.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference