xsl-list
[Top] [All Lists]

Re: A sequence of more than one item is not allowed as the value of item

2005-06-01 09:41:30

I'd have to read the spec

in particular, reading 
http://www.w3.org/TR/xslt20/#constructing-simple-content
reveals the answer.

 <xsl:variable name="foo" as="item()*">
   <xsl:text/>abc<xsl:sequence select="'def'"/>
 </xsl:variable>
 
$foo is a sequence of length three. 
An empty text node
a text node with string value "abc"
and a string "def"



 <xsl:variable name="foo2" as="item()*">
   <xsl:text/>abc<xsl:value-of select="'def'"/>
 </xsl:variable>
 
$foo2 is a sequence of length three. 
An empty text node
a text node with string value "abc"
and a text node with string value "def"




So what happens when you do
<xsl:value-of select="$foo" separator=","/>
<xsl:value-of select="$foo2" separator=","/>

Well the 6 stages in the above referenced section get applied.

stage 1 is dicarding zero length text nodes so now
$foo is 
a text node with string value "abc"
and a string "def"

and $foo2 is
a text node with string value "abc"
and a text node with string value "def"


stage 2 is merging adjacent text nodes so now
$foo is 
a text node with string value "abc"
and a string "def"

and $foo2 is
a text node with string value "abcdef"


stage 3 converts from nodes to atomic values so now
$foo is 
a string "abc"
and a string "def"

and $foo2 is
a string "abcdef"

stage 5 is concatenating all the sequence together, inserting the
separator if one is supplied or a space if not, so now

$foo is 
a string"abc,def"

and $foo2 is 
a string"abcdef"

Voila....

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>