SAX2: Namespace Processing and NSUtils helper class

David Megginson david at
Thu Dec 16 14:38:25 GMT 1999

James Clark <jjc at> writes:

> > Tim Bray <tbray at> writes:
> > 
> > > So I think it would be cleaner to deal with the fact that names
> > > can have two parts, and not kludge them together with {} marks.
> > > -Tim
> I tend to agree: pasting the namespace URI and local name together
> is a hack. Perhaps it's justified for backwards compatibility. (I
> did it myself in expat for this reason, so I can't really complain
> if SAX2 does it.)

It turns out that it's a very difficult decision, and in the end,
someone's life has to end up being harder.

> For some applications (for example, layering DOM2 on top of SAX2), it's
> really useful to have prefixes as well.  So I would rather see:
> final class Name {
>   public String getNamespaceURI();
>   public String getLocalName();
>   public String getPrefix();
> }

To make this really useful, however, we should add equals(), intern(),
and hashCode() methods, and that leads to a different (and trickier)
should equals() and hashCode() consider the prefix, or not?  People
will get really surprising results if 

  {"", "a", ""}


  {"", "a", "html"}

but it is counterintuitive that the two are not equal from a normal
processing perspective.  Nasty business, really.

All the best,


David Megginson                 david at

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 unsubscribe, mailto:majordomo at the following message;
unsubscribe 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