RE: [xsl] XSLT on the server side

Subject: RE: [xsl] XSLT on the server side
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 2 Sep 2005 12:45:17 +0100
> What are the benefits of server-side transforms?

You have a lot more control over the environment in which they run.
You can filter the data before sending it to the client - security benefits.
You may be able to send less data down the wire.
You have access to server-side resources such as databases.

> How do i make then?

Use any server-side scripting technology such as ASP, JSP, Java servlets,
and implement the code to respond to an HTTP request by running a
transformation and shipping the result.

You could develop this starting from sample code such as the servlet code
included in the Saxon distribution.

Alternatively, use a package such as Cocoon that already does this and an
awful lot more.

> Can i call a xslt directly on the server by xmlhttprequest or do i
> have to write some server-side component that wraps the xslt? (like a
> servlet or asp)

You either have to write some server-side code, or find some that someone
else has already written.
> I want to keep the server-side processing the most platform-indpendent
> as i can. However the company is using IIS and .Net, so how can i
> achive this?

You'll need to make some decisions, e.g. whether to use ASP or servlets.
However, these aren't very constraining if the only thing you are doing is
invoking a transformation. It's quite possible, for example, to run Java
servlets under IIS.
> What processors can i use? Saxon .Net? 

You could, but I don't think I would for this scenario, because you're using
a raft of technologies that you need to master. If you need an XSLT 2.0
processor I would run the standard Saxon 8.x release and invoke it via a
Java servlet. Saxon.NET might be useful if you want to integrate it more
deeply into an existing .NET application. If XSLT 1.0 is OK, use the .NET
XSLT processor (System.Xml.Xsl), or use MSXML3/4.

Whatever approach you choose, if you have any signicifant level of
throughput, make sure that you cache compiled stylesheets in memory rather
than recompiling them on each request.

Michael Kay

Current Thread