Re: [xsl] Re: The Solution -- Re: how to rearrange nodes based on a dependency graph?
by Gunther Schadow other posts by this author
Dec 21 2001 10:43PM messages near this date
Re: [xsl] Re: The Solution -- Re: how to rearrange nodes based on a dependency graph?
|
Re: [xsl] Re: The Solution -- Re: how to rearrange nodes based on a dependency graph?
Dimitre Novatchev wrote:
> It is true, that without the xx:node-set() function, XSLT 1.0 is 50%
> crippled.
Ah well, the uglyness of reality. Sigh.
> >but apparently this orders things in the document order, not
> >in the order specified. It's weird that the XPath spec talks
> >about node sets when in reality they are ordered. And all of
> >this only to prevent the user from rearranging the ordering.
>
> Sets are un-ordered by definition. Document order is a "canonical ordering" so that
> everybody will enumerate a set in a standard way. In the same way in mathematics we
> may enumerate a set of numbers by their increasing value. Everybody knows that this
> is just for convenience and that sets do not have order.
>
> Obviously, there had to be such canonical ordering.
>
> The xx:node-set() function is necessary in case nodes must be re-ordered and used
> later during the same transformation.
Hmm, I wonder, however, if the notion of node *set* is really
appropriate for most of the use cases here. Why did they not
call it node-sequence? The sequence of stuff is what we're
mostly interested in. Well, instead of wondering about the
specs, I discovered a related problem with your topological
sort. As beautiful as it is, it disturbs document order where
it isn't warranted by the dependencies. For example, let's
say I have 3 cliques of dependent nodes and no link between
them. What happens with top sort is that those three cliques
are all intermingled. The trick is to keep the document sort
order if it doesn't need to be changed. I may end up to go
back to my naive check-off list approach (recurse through
node list and walk the dependencies, always propagating a node
set of already processed nodes, and checking that a node
isn't in the done set before processing it. I couldn't make
this to work only because I refused to use the node-set function.
Now I am free to do so :-)
regards
-Gunther
--
Gunther Schadow, M.D., Ph.D. gschadow@[...].org
Medical Information Scientist Regenstrief Institute for Health Care
Adjunct Assistant Professor Indiana University School of Medicine
tel:1(317)630-7960 http://aurora.regenstrief.org
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Thread:
Dimitre Novatchev
Yan Zhu
Michael Kay
Yan Zhu
Oleg Tkachenko
Yan Zhu
Michael Kay
Yan Zhu
=?iso-8859-1?Q?J=F6rg_Heinicke?=
Yan Zhu
Gunther Schadow
Dimitre Novatchev
Gunther Schadow
Dimitre Novatchev
Dimitre Novatchev
Gunther Schadow
Yan Zhu
|