[Home] [By Thread] [By Date] [Recent Entries]


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


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member