[xsl] baffled by <xsl:template match="/">

Subject: [xsl] baffled by <xsl:template match="/">
From: "Kenny Akridge" <kenny@xxxxxxxxxxxxxxxxx>
Date: Tue, 11 May 2004 13:07:01 -0400
In Michael Kay's book, XSLT Programmer's Reference - 2nd Edition, the top of
page 75 says that the pattern "/" matches the root node.  I have always been
baffled by this, because I have never seen "/" match the root node when
using <xsl:template match="/">.  

For instance, just using this XLM:

<root>
</root>

and the following XSL 

----------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:template match="/">
	Match = "/" -
	<xsl:value-of select="name()"/>
</xsl:template>
</xsl:stylesheet>

Output:

<?xml version="1.0" encoding="UTF-16"?>
	Match = "/" -
----------------------------------------

and

----------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:template match="*">
	Match = "/*"
	<xsl:value-of select="name()"/>
</xsl:template>
</xsl:stylesheet>

Output:

<?xml version="1.0" encoding="UTF-16"?>
	Match = "/*"
	root
----------------------------------------

This would appear to me that an implicit root node of 
<?xml version="1.0" encoding="UTF-16"?> is actually the root.

What am I missing?

By the way, this is using MSXML4 and .NET XslTransform

Current Thread