On 10/12/06, James A. Robinson <jim(_dot_)robinson(_at_)stanford(_dot_)edu>
wrote:
Am I correct in my understanding that the reason the stylesheet
below works, separating each item from the <xsl:sequence/> with
a single whitespace character, is due to
http://www.w3.org/TR/xslt-xquery-serialization/#serdm
where a sequence of strings will be padded, but a sequence of
text nodes will not be?
Adjacent text nodes get merged before atomization, resulting in a
sequence of length one, so no separator is needed.
It's a subtle difference, for example consider:
<foo>bar</foo>
<foo>bar</foo>
select="foo"
returns "bar bar" because there are two items in the sequence which
get atomized as strings and output with the default separator of a
single space between each item.
select="foo/text()"
returns two text nodes that get merged into a single text node,
resulting in a sequence of length 1:
"barbar"
...so no separator is needed.
See http://www.w3.org/TR/xslt20/#constructing-simple-content
Adjacent text nodes get merged at step 2, the separator is added at step 5.
cheers
andrew
--~------------------------------------------------------------------
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>
--~--