[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: XML/XSLT for web templating

Subject: Re: XML/XSLT for web templating
From: Steve <subsume@xxxxxxxxx>
Date: Mon, 8 Oct 2007 18:06:04 -0400
Re:  XML/XSLT for web templating
Uselessly personal, anecdotal tangent:

XSL has forced me, more than any other language, to behave as a
programmer. I would (and could) have lived my life without ever having
to write a Recursive function. Having done so, I've never programmed
anything the same since.

-S

On 10/8/07, Alessandro Bologna <alessandro.bologna@xxxxxxxxx> wrote:
> Dear collegues,
>
> I was wondering if there is  anybody on this list who could share
> some experience (opinions are very welcome too) on using XML/XSLT
> (2.0) as the templating technology for very large news/information
> web sites, vs using a more common Java/JSP,/Velocity or Freemarker
> solution.
>
> As a background information, and to better contextualize this
> request, we have already implemented a prototype, and it's
> beautifully working in production).
>
> In this implementation, contents are available as XML documents, in
> the form of external feeds(Atom, RSS, PRISM etc) and RESTful web
> services that access a JCR/JSR-170 repository.
> Templates are basically XHTML documents, augmented with XML markups
> that allow to navigate the content XML (using an XPATH style
> addressing of the content XML elements) and to present specific
> elements as well. A library of XSLT (2..0)  rules is used to process
> the templates, to access the XML using the document function and
> finally to create the resulting XHTML documents.
>
> A minimalistic template may look like this:
> <x:template name="article" target="browser">
> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:x="http://foo.com/x">
> <head>
> <title x:node="article/tout/headline"/>
> </head>
> <body>
> <x:header/>
> <h1 x:node="article/headline"/>
> <div id="body">
> <x:render x:node="article/body"/>
> </div>
> <x:footer/>
> </body>
> </html>
> </x:template>
>
> The transformation happens in pipelined stages, so that it's really
> easy to render the XML in intermediate formats, and do the final
> presentation(s) at the last stage. I forgot to mention that the
> output can be targeted at different devices (such as pdas,
> cellphones, desktop browsers etc) or media (RSS etc).
>
> I have been strenuously advocating this approach, because I see in it
> a a lot of potential:
>
> 1. templates are XML documents, therefore they can be processed (meta-
> templates) still using XSLT
> 2. the XSLT implementation of the tag has easy access to the template
> document and to the content document, so that it can, for instance,
> provide a different presentation if inside a <h1> or inside a <title>
> or a <div id="body">
> 3. it's really easy to author and validate these documents using
> basically any tool (including dreamweaver, eclipse, XML tools etc).
> 4. new presentation rules can be created without altering the
> existing code (using import precedence and/or more specific matchers)
> 5. The XSLT itself can be processed and validated still using XSLT
> (meta-processing)
> 6. XLST 2.0 provides a much better set of tools for generic
> processing, modularity, data control and makes it a feasible task for
> average programmers to maintain this code
>
> So, I have been advocating this choice, implemented the prototype,
> and still, I face a huge resistance based on the "fame" of XSLT of
> being:
>
> 1. Too slow (i proved it wrong already, but still, just yesterday
> somebody was telling about Freemarker being 15 times faster than XSLT
> at rendering docbook, and I know that Robert Koberg has something to
> say about that... :)
> 2. Too difficult because programmers only know imperative
> programming, understand only imperative programming, and are willing
> to learn only imperative programming
> 3. Too unknown ("everybody knows JSP...")
> 4. Too old ("XSLT is dead, or at least I heard so")
> 5. Nobody uses it for this purpose (really? pre-cooked HTML from XSLT
> is so unheard of?)
> 6. Too hard to maintain ("it becomes very messy very soon")
> 7. Too hard to read ("XML is not meant for programming..., #if () is
> so much more readable")
>
> So the alternative is Velocity, Freemarker or JSP and an XML/Java
> binding solution (such as JAXP), and this alternative is considered
> more scalable, more robust and more flexible. In other words, the
> push is for templates made of:
> <%=article.headline %> (or <# or <@ depending on the poison that you
> choose) .
>
> I apologize for this long email, and I realize that this may not be
> the appropriate forum for such an inquiry (please list-owner feel
> free to censor it if it's the case), but at this point I really need
> (after months of useless advocacy on my side) some opinions and
> experience and real world examples, if anybody has one to contribute.
>
> Best regards
> Alessandro Bologna

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

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

Buy Stylus Studio Now

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
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.