xsl-list
[Top] [All Lists]

Re: [xsl] text() vs xs:string serialization (was: Re: [xsl] text extraction)

2006-10-12 07:29:38
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>
--~--