Generally speaking there are two types of whitespace - significant and insignificant.
Whitespace between XSLT instructions is considered insignificant. e.g.:
Code:
<xsl:value-of select="test1"/>
<xsl:value-of select="test2"/>
The above contains three nodes, two <xsl:value-of> elements and a text node between them containing only whitespace (spaces, tabs and carriage returns).
Whitespace included within a text node, or within an XSLT <xsl:text> instruction is considered significant.
Code:
<xsl:value-of select="test1"/>A
<xsl:value-of select="test2"/>
The text node above contains three nodes again, two <xsl:value-of> elements and a text node. In this instance the text node now contains non-whitespace content, i.e. "A" + carriage return. Therefore the whitespace is considered significant.
For a better understanding of whitespace I can really recommend you get a hold of Michael Kay's XSLT 2.0 reference - it covers all of this very well.