The Peace Process: DOM and namespaces...

Tyler Baker tyler at
Thu Feb 11 05:37:11 GMT 1999

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 other words, been there done that.

NamedNodeMap attributes = node.getAttributes();
if (attributes != null) {
  int length = attributes.getLength();
  Node attribute;
  String nodeName;
 for (int i = 0; i < length; i++) {
   attribute = attributes.item(i);
   nodeName = attribute.getNodeName();
    if (attribute.getNodeName().equals("xmlns")) {
      // Do namespace default processing
    else if (attribute.getNodeName().startsWith("xmlns:") {
      // Do namespace processing

In terms of O notation (I hate to be academic here) that is N^2 plus the underlying cost of
string comparisons.  I cannot believe people see the obvious flaws with this approach.  It is

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.


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