À l'aide de xsl variable pour capturer la sortie de call-template retour vide pour moi

J'ai vu beaucoup de messages que de faire quelque chose de ce genre et qui me fait me sentir comme ce est possible et je suis tout à fait quelque chose de mal. J'ai simplifié autant que possible pour essayer de comprendre pourquoi ce qui se passe:

Heres mon xml (rien de très passionnant):

<?xml version="1.0" encoding="UTF-8"?>
<REPORT>

</REPORT>

Voici mon xsl:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:template match="REPORT">
      <xsl:variable name="tryThisTemplate">
        <xsl:call-template name="TRY_THIS"/>
      </xsl:variable>
      <TEST1>
        <xsl:call-template name="TRY_THIS"/>
      </TEST1>
      <TEST2>
        <xsl:value-of disable-output-escaping="yes" select="$tryThisTemplate" />
      </TEST2>
      <TEST3>
        <xsl:value-of select="$tryThisTemplate" />
      </TEST3>
    </xsl:template>

    <xsl:template name="TRY_THIS">
      <MY_NODE desc="my description" />
    </xsl:template>
</xsl:stylesheet>

Voici mon résultat:

<?xml version="1.0" encoding="utf-8"?>  
<TEST1>
  <MY_NODE desc="my description"/>
</TEST1>
<TEST2></TEST2>
<TEST3></TEST3>

Voici ma question:
Comment se fait-TEST2 et TEST3 ne fonctionnent pas. L' $tryThisTemplate variable semble être vide. Suis-je un malentendu quelque chose ici. Devrais-je faire cela d'une manière différente?

Bonne question, +1. Voir ma réponse pour l'explication et la solution complète.

OriginalL'auteur testing123 | 2011-06-13