Esto está mal:
<input type="rad" name="RadGroup"
value="<xsl:value-of select='productOptionInfo'/>" />
y esto está mal, también:
<input type="rad" name="RadGroup"
value='<xsl:value-of select="productOptionInfo"/>' />
En XML se trata de un error de sintaxis tienen (no literal) marcado como valor de un atributo . Consulte la Especificación W3 XML - here y here.
Las dos formas correctas de hacer esto son (llamado AVT o attribute value templates):
<input type="rad" name="RadGroup" value="{productOptionInfo}"/>
y
<xsl:attribute name="input">
<xsl:value-of select="productOptionInfo"/>
</xsl:attribute>
En XSLT 2.0 se permite escribir :
<xsl:attribute name="input" select="productOptionInfo"/>
La primera manera anterior es la más corta y más legible cuando el nombre del elemento se conoce estáticamente (de antemano).
La segunda forma se debe utilizar cuando el nombre del elemento no se conoce de forma estática y se debe generar con una instrucción <xsl:element>
.
Buena pregunta, +1. Consulte mi respuesta para obtener una explicación de por qué la respuesta seleccionada actualmente es incorrecta y para dos soluciones XSLT 1.0 correctas y otra solución XSLT 2.0. :) –