SAX: org.xml.sax.AttributeMap

Toby Speight tms at
Wed Feb 25 10:43:46 GMT 1998

David> David Megginson <URL:mailto:ak117 at>

=> In article <199802250138.UAA00524 at>, David
=> wrote:

David> David Megginson writes:

David>   package org.xml.sax;
David>   public interface AttributeList {
David>     //...
David>     public abstract String getType (int index);
David>     //...
David>   }

We're returning one of a bounded, known set of values.  I'd prefer to
use an int for this type of thing, along with a set of constants.

    public abstract String getType (int index);
    public static final int CDATA = 0;
    public static final int NMTOKEN = 1;
    // etc.

The only advantage a String has over this is that you can meaningfully
present it to the user as it is.  A disadvantage of String is that it is
computationally expensive to compare for equality (or equivalently, and
worse, to switch() on it).  Comparison becomes easier if one provides a
set of String constants and guarantees that returned values will test
equal with "==".  That is not too different to my suggestion of using
numeric constants.

Converting integers to human-readable Strings is easy:

   public static String[] typeNames = new String[/* some size */];
   static {
       typeNames[CDATA]   = "CDATA";
       typeNames[NMTOKEN] = "NMTOKEN";
       // etc.

but I don't think this needs to be part of the interface.

One might wish to use short or char instead of int if storage space is
at a premium; I'm making no judgement on which arithmetic type is

This proposal is not Java-specific.


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
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