I suspect that your function returns a sequence of text nodes rather than a
sequence of strings. To make other cases behave more predictably, for
example
<xsl:value-of select="x:f()"/>
<xsl:function name="x:f">
<xsl:text>[</xsl:text><xsl:value-of select="13"/><xsl:text>]</xsl:text>
</xsl:function>
We decided that separators would only be used between atomic values, not
between text nodes.
My guess is that your function is returning text nodes because
(a) it uses xsl:value-of to create its result, rather than xsl:sequence, and
(b) it doesn't declare its return type
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Kevin Rodgers [mailto:kevin(_dot_)rodgers(_at_)ihs(_dot_)com]
Sent: 06 May 2005 21:04
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] <xsl:value-of select="for ..." separator=", ">
In my XSLT 2.0 stylesheet processed by Saxon 8.3, I had this:
<xsl:value-of
select="for $relation in $relation-list
return esd:xref-doc-num($mb3-connection, $relation)"
separator=", "/>
But the results of the function calls were concatenated, without the
separator string between them. Using string-join() like this
yields the
desired results:
<xsl:value-of
select="string-join(for $relation in $relation-list
return
esd:xref-doc-num($mb3-connection, $relation),
', ')"/>
But why is that necessary? Why doesn't the xsl:value-of separator
attribute work as I expect?
Thanks,
--
Kevin Rodgers
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--