|
Subject: Re: [xsl] The output of evaluating an XSLT transform is the same regardless of the order in which output elements are evaluated. Right? From: Liam R E Quin <liam@xxxxxx> Date: Tue, 13 Apr 2010 21:35:27 -0400 |
On Tue, 2010-04-13 at 10:12 -0700, Dimitre Novatchev wrote:
> [...] The evaluation of
>
> f(g(x))
>
> requires that g(x) be evaluated, before f() can be evaluated.
If f() takes a sequence as an argument, and g() produces a sequence,
and each item in the result of f() depends only on the corresponding
item in g(), then you can decompose f(g(x))
for $i in g(x) return f($i)
in other words, evaluating f of g of each item in th sequence in turn.
And given
function f($input as item*) as item*
{
return $nput[1]
}
it's not necessary to evaluate g(x) further than necessary to generate
one single item.
> There are datatypes that (by definition) impose a particular ordering
> on their processing. Take a list. in order to access the Nth item one
> needs to get the tail of the list and then acces its N-1st item. The
> Nth item is the head of the N-1st tail in this processing.
XSLT does not, however, mandate such data structures. It's perfectly
possible to implement an n-item sequence as an array, such that
accessing the nth item is O(1) in complexity.
> Also, a child cannot be born before its parents are born.
Given
<a>
<b>
<c />
</b>
</a>
as a literal element constructor, an implementation is free to construct
the result in any order.
The oldest man in the Bible died before his father ;)
Best,
Liam
--
Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/
Pictures from old books: http://fromoldbooks.org/
Ankh: irc.sorcery.net irc.gnome.org www.advogato.org
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] The output of evaluating , Michael Kay | Thread | Re: [xsl] The output of evaluating , Dimitre Novatchev |
| RE: [xsl] mixed content grouping by, Michael Kay | Date | Re: [xsl] The output of evaluating , Dimitre Novatchev |
| Month |