Lists Home |
Date Index |
- From: James Clark <email@example.com>
- To: Tyler Baker <firstname.lastname@example.org>
- Date: Thu, 11 Feb 1999 14:39:53 +0700
Tyler Baker wrote:
> James Clark wrote:
> > Rick Ross wrote:
> > > the XSL working draft
> > > specification requires namespace support that apparently cannot be
> > > implemented effectively if the primary input source is a dynamically built
> > > DOM tree.
> > I can't see this.
> > Why can't you put a layer on top of the DOM that provides namespace
> > processing? For example, you could have an NSNode object that points to
> > the DOM Node and a set of prefix bindings (and probably a parent
> > NSNode). The NSNode objects will be temporary. You wouldn't have to
> > reparse the document, and you don't have to keep two trees in memory.
> > You can also provide other things in this layer that help XSL
> > performance such as document order comparison.
> This is a familiar design model when you want to add functionality to a business object
> without formally extending it. I have looked into this myself, but it still poses problems,
> namely you need to either build this entire map from iterating over the entire DOM tree and
> writing code like this for every node in the document:
> In terms of O notation (I hate to be academic here) that is N^2 plus the underlying cost of
> string comparisons.
Huh? The time for each element is linear in the number of attributes
that the element has.
> And you still need to reparse the entire document each time to safely create these bindings as
> the source tree can mutate at any time.
You need to do the namespace processing each time. You don't have to do
the parsing each time.
xml-dev: A list for W3C XML Developers. To post, mailto:email@example.com
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:firstname.lastname@example.org the following message;
To subscribe to the digests, mailto:email@example.com the following message;
List coordinator, Henry Rzepa (mailto:firstname.lastname@example.org)