[Home] [By Thread] [By Date] [Recent Entries]

  • From: David Megginson <david@m...>
  • To: XMLDev list <xml-dev@i...>
  • Date: 16 Dec 1999 09:37:21 -0500

James Clark <jjc@j...> writes:

> > Tim Bray <tbray@t...> 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 

  {"http://www.w3.org/1999/xhtml", "a", ""}

equals()

  {"http://www.w3.org/1999/xhtml", "a", "html"}

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


All the best,


David

-- 
David Megginson                 david@m...
           http://www.megginson.com/

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i...
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo@i... the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo@i... the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@i...)



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member