XSL msxsl: problema do conjunto de nós

Por favor me ajudem pessoal. Eu só estou tentando declarar um fragmento de árvore de resultado simples e iterar sobre ele.

...

<xsl:variable name="rtf">
  <item-list>
    <item id="1">one</item>
    <item id="2">two</item>
    <item id="3">three</item>
    <item id="4">four</item>
  </item-list>
</xsl:variable>

<xsl:for-each select="msxsl:node-set($rtf)/item-list/item">
  <xsl:value-of select="@id"/>
</xsl:for-each>

...

Estou completamente enganado sobre como isso funciona?

Editar: Estou usando o .NET XslCompiledTransform e tenho as declarações de namespace msxsl corretas - xmlns: msxsl = "urn: schemas-microsoft-com: xslt"

A transformação executa bem - o problema é que nada é produzido

questionAnswers(3)

yourAnswerToTheQuestion