[xsl] State of Browser Support for XSLT in 2007

Subject: [xsl] State of Browser Support for XSLT in 2007
From: "John Perkins" <john.a.perkins@xxxxxxxxx>
Date: Thu, 22 Mar 2007 07:40:47 -0400
State of Browser Support for XSLT in 2007

I am planning a major upgrade of a large static XHTML (no css) 5000
page site to XML on the server, transforming the XML to XTHML on the
browser using XSL, and decorating the XHTML with CSS. I expect there
to be less than 250 XML files on the server. In principle 90+% of the
site is a nothing more than a glorified slide show where the each
image is associated with a detailed description. In others words a
single image and associated description on each page with navigation
between pages.

I am hoping to have this work on the newer versions of the 4 major
browsers IE6+, Opera 9+, Firefox 2+ (Morzilla family) and Safari 3+
(Webkit family) for both PC and Mac by November 2007.

In principle all that is needed is XSLT 1.0 as a PI on the XML plus
the ability to get the browser url such as is supported by xsl:script
in IE or document-uri or base-uri in XPath 2.0 to do what is planned
in the redesign.

My questions are as follows:

1) Does any browser's XSLT 1.0 processor other than IE's support
getting the browser url from inside XSL? In particular does libxslt
support func:script because it seems clear that Firefox and Opera have
no mechanism for getting the browser url inside XSLT.

2) Will Safari 3.0 support calling XSLT processor from within
javascript and if so will it be compatible with Firefox and Opera in
how this is done?

3) The big question is does it make sense to do the following:

Place XML on the server with a PI where

a) for IE use the browser url and generate the desired XHML during the
first transformation.

b) for Firefox, Opera, and hopefully Safari 3 generate during the
first transformation a XHTML with javascript getting the browser url
and passing it as a parameter to the xslt processor on load event
thereby generating the desired XHTML in 2 passes

4) or is it better to not use a XSLT PI on the XML and merely use
javascript getting the browser url and passing it as a parameter to
the xslt processor on load event
for the 4 browsers from a shell XHML file that loads the XML and XSL files?

5) or is it better to leave the XSLT PI on the XML and direct IE to
the 3a approach and direct the other browsers to the 4 approach?

Clearly once all major browsers support XSLT 2.0 the 3a approach works
for all browsers but I do not see these 4 browsers supporting XSLT 2.0
any time soon but I do expect such support before 2010 assuming
Microsoft is serious about pushing XSLT 2.0 onto IE. When they do I am
hoping to take advantage with little additional effort.

Note: I am committed to placing XML on the server and using XSLT on
the client because 1) I have no ability to use XSLT on the server and
2) it greatly reduces site maintenance by reducing the number of files
than need to be generated and placed on the server and by separating
the data from the presentation making the data free of presentation
information.

Note: To demostrate the approach I am currently using AJAXSLT and
javascript instead of the xslt processors built into the respective
browers. The performance seems fine on IE and Firefox but too slow on
Opera. I have not tested this approach on Safari. Performance when
using the xsl processors built into the respective processors seems
fine for IE, Firefox, and Opera when using approach 4 above. In
general the site is not heavily used so I am not concerned with
bandwidth and as long as the processing time on the client is small
when compared to the time to download the image I am not concerned if
it is efficient.

John Perkins
Salem, NH

Current Thread