SAX: two alternatives for namespaces

David Megginson david at megginson.com
Wed Jul 29 03:48:24 BST 1998


Background: 

  Simple XML 1.0 names have only a single part, and are unique only
  within a document; the namespaces spec currently under development
  defines globally-unique names consisting of two parts: a (possibly
  null) URI part and a base part.

Question:

  What changes to SAX 1.0 are required to support two-part names?


After reading the follow-ups to my last posting, surviving far too
many late WG meetings, and considering the problem during a few long,
early morning runs, I can see only two reasonable alternatives for
adding namespaces to SAX.

I would like to hear what everyone -- especially, but not exclusively
SAX parser and application writers -- thinks of these two
alternatives:


1. Concatentation

  Use a single Java String (or C++ wstring, etc.) to represent a
  two-part name; select a non-XML character to use as the separator.

  Advantages:
  - requires no modification to SAX 1.0

  Disadvantages:
  - places additional burden on applications
  - makes equality testing tricky
  - may produce unexpected results with applications that assume only
    traditional one-part names (especially normalisers)


2. New Interface

  Create a new SAX interface to represent a two-part name:

    public interface Name
    {
      public void setURIPart (String uri);
      public String getURIPart ();
      public void setBasePart (String base);
      public String getBasePart ();
      public boolean equals (Name name);
      public Name clone ();
    }

  Use this interface consistently throughout SAX for all XML 1.0 names
  (not just those covered by the namespaces spec).  Modifications
  would be required to the DTDHandler, DocumentHandler, and
  AttributeList interfaces and to the HandlerBase and
  AttributeListImpl classes.

  Advantages:
  - provides a clean and powerful implementation
  - easily extensible: could add other information (such as the prefix
    used) in the future
  - provides easy and separate access to the URI part and the base
    part of a name
 
  Disadvantages:
  - another bloody interface
  - backwards-incompatible with SAX 1.0; all software would have to
    change


Of course, we should finalise nothing until the namespaces spec
becomes a recommendation.


All the best,


David

-- 
David Megginson                 david at megginson.com
           http://www.megginson.com/

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list