# Re: Re: Benefits of xsl.sequence

 Subject: Re: Re: Benefits of xsl.sequence From: David Carlisle Date: Tue, 30 Sep 2008 09:22:48 +0100
```> but is the benefits something we can measure in any meaningful sense?

In some cases xsl:sequence may or may not be more efficient than using
value-of, but that's not really the point. In most cases if you need to
return a sequence from a template or function, xsl:sequence is the only
option, if no other instruction can generate the same result, then
efficiency doesn't really come into it.

For example consider a function that concatenates two sequences which
you don't really need to write as it is the comma operator

<xsl:function name="f:concat">
<xsl:param name="a"/>
<xsl:param name="a"/>
<xsl:sequence select="\$a,\$b"/>
</xsl:function>

so

f:concat( (1,2,3) , (4,5,6) )

is

(1,2,3,4,5,6)

If you replaced xsl:sequence by xsl:value-of then the result would not
be a sequence of six items, but instead a sequence of one item, a text
node with string value "1 2 3 4 5 6" which isn't the same thing at all.

For sequenes of attomic values as here, you could use xsl:copy-of which
which would be identical to xsl:sequence, but for sequences of nodes
copy-of implies a copy which is (conceptually) a copy.

Actually the efficicency quextion may be hard to answer as systems may
go to some lengths to avoid actually copying nodes, so copy-of may be as
efficient as sequence of, but the behaviour is different.

Condider an identity function

<xsl:finction name="f:ident">
<xsl:param name="x"/>
<xsl:sequence select="\$x"/>
</xsl:function>

f:ident(\$node) is the same node as \$node, it has the same parent (if
\$node has a \$parent), siblings, etc

f:ident(\$node)/following-sibling::* is the same as \$node/following-sibling::*

If you replace xsl:sequence by xsl:value-of in the above then
xsl:ident(\$node) would  be a textnode with the string value of \$node,
and if you replace xsl:sequence by xsl:copy-of then \$ident(\$node) would
_look_ like \$node but it would be a new node, with no parents or
siblings.

David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
________________________________________________________________________

```

### PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

### Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
 RSS 2.0 Atom 0.3