DOM vs. SAX??? Nah. (was RE: Storing Lots of Fiddly Bits (wa s Re: What is XML for?)

Michael.Kay at Michael.Kay at
Tue Feb 16 10:37:28 GMT 1999

> -----Original Message-----
> From: Bill la Forge [mailto:b.laforge at]
> What I'm more inclined to do in this SAX/DOM marriage,
> is to create an alternative to the SAX helper class, 
> AttributeListImpl, which also implements 
>       public Attr setAttribute(Attr newAttr);
> and
>       public Attr removeAttribute(String name);
> and
>       public Attr getAttribute(String name);
Unifying the DOM and SAX API's for attributes is a laudable aim but it's a
little bit more complicated than this.

1 - the DOM interfaces that return Attr are called setAttributeNode(),
getAttributeNode(), removeAttributeNode().

2 - Attr is a subclass of Node and as such is required to implement all
sorts of functionality that seems inappropriate in SAX, e.g. the ability to
locate the owning Document and the ability to retrieve the contents of the
attribute with entities unexpanded.

3 - The DOM methods setAttribute() etc work in terms of Strings, which is
closer to the SAX model, but has some irritating differences: for example
getAttribute() in the DOM returns the same value for an absent attribute and
a zero-length attribute. And of course, they throw different exceptions.

In SAXON 4.0 I use the SAX AttributeList interface, but when processing
using the DOM, I use an implementation of SAX AttributeList which is
actually a wrapper to the DOM Element. 

Mike Kay 

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