xsl-list
[Top] [All Lists]

RE: [xsl] XSLT 1.0 support in browsers

2007-05-01 10:04:27
Have you looked at the level of support for the xml-stylesheet PI, e.g.
support for the type, title, media and alternate pseudo-attributes, multiple
PIs, and so on?

I noticed recently that some browsers also support PIs that allow you to set
stylesheet parameters, which seems a nice feature.

I think you can get round the whitespace problems by the use of xml:space in
the source document. Not a nice solution, but perhaps a workable fix.

Michael Kay
http://www.saxonica.com/



-----Original Message-----
From: Julian Reschke [mailto:julian(_dot_)reschke(_at_)gmx(_dot_)de] 
Sent: 01 May 2007 17:50
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] XSLT 1.0 support in browsers

Hi,

recently, I hear the claim "XML on the web has failed" a lot. 
In particular, in the context of the HTML5 proposal worked on 
in the WHATWG WG, backed by Apple/Mozilla/Opera.

Of course, this is not really true. A lot of XML is being 
exchanged through HTTP, be it in XML-RPC & SOAP (gasp), 
WebDAV, or RSS and Atom.

It seems that most of the time people are referring to the 
support of XML in the browser, mainly with respect to XHTML 
(which indeed is a failure so far due to the fact that IE 
doesn't support it), and client-side XSLT.

There are several ways to do client-side XSLT, one of which 
is through the xml-stylesheet processing instruction. For a 
long time, that worked only in IE, but nowadays support in 
Firefox, Opera and Safari is getting better. In fact, it has 
become so good that it can *almost* be used portably.

The purpose of this mail is to document the current 
shortcomings of the implementations, as experienced by me 
supporting rfc2629.xslt (the
RFC2629 XML format is used in the IETF for formatting 
Internet Drafts and RFCs). My experience is that it's 
incredibly hard to do complex stuff without either XSLT 1.1 
(not finished), XSLT 2.0, or at least XSLT 1.0 + node-set 
extension function, therefore I'm looking at the node-set 
support as well...


(1) Internet Explorer (MSXML)

- It does implement msxsl:node-set, but it would be *really* 
great if it would also do exslt:node-set, which is supported 
by Opera and Firefox 3. 
Putting in special cases just for IE really is a pain. (*)

- IE suffers from an IMHO bad decision to strip out 
whitespace before passing the XML document to the XSLT 
processor (see 
<http://msdn2.microsoft.com/en-us/library/ms760265.aspx>). I 
understand that Microsoft can't simple change that without 
breaking deployed content, but it would be *really* cool if 
one could "opt out" of that behavior somehow (PI at the start 
of the document???).

Summary: good, but room for improvement


(2) Firefox

- Works ok (although slow compared to IE), except for the 
lack of exslt:node-set, which will be fixed in Firefox3.

Summary: will be good in next release


(3) Opera

- Has been improving a lot, and also has exslt:node-set since 
9.2 (?), but the current release unfortunately aborts with a 
fatal error upon complex XPath expressions. Right now 
unusable for rfc2629.xslt (see 
<http://greenbytes.de/tech/webdav/rfc2629xslt/rfc2629xslt.html
#opera>).

Summary: please fix this, and your XSLT rocks.


(4) Safari (and WebKit?)

- I had no opportunity to test lately, but AFAIK it still 
lacks support for exslt:node-set (see 
<http://greenbytes.de/tech/webdav/rfc2629xslt/rfc2629xslt.html
#safari>).


Julian

(*) of course that problem could also be solved by 
Mozilla/Opera/Safari implementing msxsl:node-set().




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--