Lists Home |
Date Index |
I'm going to ask the following question: Is there a good templating
language that can be used to build a high demand website from a collection
of XML documents?
My assertions are going to be that XSL is not performant, that XQuery is
not a templating language, and that no other well established language
exists for creating web pages out of XML documents. I would very much like
to see any or all of those assertions contradicted.
The influence of recent threads on this post is going to be obvious, at
the same time previous threads have left some fundamental questions
Let me give a little more background about the problem we're trying to
We have a publishing system holding a great number of (sometimes on the
large side for web use) XML documents. The system is capable of
generating additional meta data in XML format.
We are pretty well committed to serving pages from a java servlet
container. Each request requires one main transform where the XML is up
to 80k (very occasionally very much larger, but those larger cases might
be able to be pre-rendered), and up to two additional transforms on <10k
docs. We're looking at peaks of 10 users per second.
Assume that we have some ability to distribute this load among multiple
servers but assume that this ability is limited in arbitrary but often
Now on to my assertions:
*** XSL is not performant
When answering requests, a templating language that forces the document in
its entirety to be held in memory quickly hits load limits. My
understanding is that XSLT either cannot be streamed or current
implementations are not optimized to stream when appropriate
Initial tests seem to show that XSL is a no-go in the load environment
outlined above. Does anyone have production experience that would argue
that XSL can be viable at these rates and that we should be looking harder
for optimization strategies?
*** XQuery is not a templating language
I have no idea if I'm going to encounter disagreement with this idea or
not. Everything I've seen of XQuery suggests that the results of a query
could be sent to a formatting engine that would apply a template to them,
but not that XQuery would in itself be used to apply formating to a
document. I know that a previous thread asserted that XQuery can
technically do anything XSL can do, but using it as a templating language
looked to me like lining up camels and needles in an un-fun way.
*** There is no other well established templating language for formatting
XML into web output
This isn't entirely true, we have looked at some other alternatives. Jsp
with DOM methods, sucks in comparison to XSL. Anakia, yet another step
down. DVSL... don't get me started.
The most likely contender has ended up being: pre-render the main contents
using XSLT on the docs within the content management system and cache and
serve up the results. In conjunction have a lightweight run time
templating language to do navigation, authentication, and other aspects of
UE that need run time processing.
Other options gratefully considered!
Thanks in advance!