Subject: Why XT doesn't use the DOM
From: James Clark <jjc@xxxxxxxxxx>
Date: Wed, 23 Dec 1998 09:29:58 +0700
|
Tyler Baker wrote:
> > Koala also takes a DOM tree as input.
> >
> > Unluckily Clark's XT doesn't (or at least it didn't last time I checked).
>
> I guess you will have to ask him why, but my best guess is that namespaces
> really invalidates use of the DOM since the latest DOM spec is not namespace
> aware and building a DOM tree using namespaces is a painful job.
Lack of namespace support is one important reason. Others are:
- the DOM supports modifying the source tree; I don't need this for XSL
and it adds a lot of overhead
- I need to know the source line and URL for any node in order to be
able to report errors in the stylesheet
- I need a compareTo operation that compares the position of two nodes
in document order (for implementing | in select patterns)
- it's convenient to deal with whitespace stripping as part of the tree
building process
- XSL needs to see the document tree with entities expanded
- I don't like the design of the DOM
It would probably be relatively straightforward to implement my Node
interface as a layer on top of the DOM Node interface. However I think
SAX is probably a better mechanism for allowing the use of other parsers
with XT, and I plan to support SAX both for source and result in a
future release. (The only problem I can see is the lack of support for
comments.)
James
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|