Xslt

Olá!

Estou com problema para saber a ordem em que o parser interpreta o XSL abaixo. Ele começa interpretando a variável “xx” ou pelo template?
Outra dúvida, o que significa “$title” na linha 18? Achei que o símbolo $ fosse usado apenas em comandos copy-of para pegar o valor da variável.

Agradeceria a ajuda!

<?xml version="1.0" encoding="ISO-8859-1"?>
 <xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
<xsl:variable name="xx">
   <html>
   <body>
   <xsl:call-template name="show_title">
     <xsl:with-param name="title" />
   </xsl:call-template>
   </body>
   </html>
 </xsl:variable>
 
<xsl:template name="show_title" match="/">
   <xsl:param name="title" />
   <xsl:for-each select="catalog/cd">
     <p>Title: <xsl:value-of select="$title" /></p>
   </xsl:for-each>
 </xsl:template>
 
</xsl:stylesheet>

amigo pra que voce precisa saber a ordem? ate aonde eu usei a primeira variavel declarada era utilizada, logo voce nao poderia usar a mesma antes de declarar… mas pra que voce quer saber a ordem?

Por que eu não estou entendendo esse XSL.
Normalmente, dentro de uma tag body, eu coloco apply-templates para que os templates sejam executados. Nesse arquivo, não tem apply-templates, mas sim call-template, que está dentro de uma variável. Por isso quero saber. O parser está lendo o arquivo de cima para baixo, iniciando com a variável “xx”?
O que significa “$title”, o símbolo “$”?