Я думаю, вы можете с уверенностью предположить, что это вернет строку, но вы не можете с уверенностью сказать, что $ list - это строка, так как normalize-space попытается сначала преобразовать в строку. например.
<xsl:value-of select="concat(normalize-space(13), ' ')"/>
Будет работать.
Дополнительная информация о concat и normalize-space .
Также обратите внимание, что это может завершиться ошибкой, если $list
установлен неправильно, например,
<xsl:variable name="list" select="12 34" />
Таким образом, вы никогда не сможете с уверенностью предположить, что это сработает, не увидев остальной код.