The Peace Process: DOM and namespaces...

James Clark jjc at
Thu Feb 11 07:53:24 GMT 1999

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:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list