The value of your variable "simple" is a document node. If you want a string,
use
> <xsl:variable name="simple" select="'string'"/>
or
> <xsl:variable name="simple" as="xs:string">
> simple
> </xsl:variable>
Using xsl:variable with content (usually via an xsl:value-of instruction) when
you want a simple string (or other atomic value) is probably the most common
bad habit in XSLT.
In many contexts when a string is needed, you can pass a document node and its
string value will be extracted. But creating a document node is far more
expensive, and it doesn't work if you pass it to a function where the expected
type is more general than xs:string.
Michael Kay
Saxonica
|