[
Lists Home |
Date Index |
Thread Index
]
At 02:27 PM 9/27/2002 +0100, Bill de hÓra wrote:
> > From: Jonathan Robie
> >
> > Hmm.... so this is procedural:
> >
> > for $b in document("bib.xml")//book
> > return
> > <publication>
> > {
> > $b/title,
> > $b/author
> > }
> > <publication>
> >
> > And this is declarative:
> >
> > <xsl:template match="//book">
> > <publication>
> > <xsl:copy-of select="title"/>
> > <xsl:copy-of select="author"/>
> > </publication>
> > </xsl:template>
>
>Yes.
>
> > I don't see why one of these is any more declarative than the other.
>
>You wrote control code for the former. That is, the latter is less
>explicit about asking the programmer to tell the computer how to
>proceed.
XSLT is actually pretty explicit about the matching and recursive descent
model, specifying even the precedence among matches. I don't know much
about implementing XSLT, but I would think that there would be relatively
little freedom for rewriting the logic for the purpose of optimization.
This example is a bad one, because there isn't much cool optimization you
could do anyway. Perhaps an example that does joins using both languages
would have been a better example.
Jonathan
|