Common event-based parser API

David Megginson ak117 at freenet.carleton.ca
Tue Dec 16 12:14:17 GMT 1997


Tim and I have taken some of the gritty details of our discussion
offline, and we have not yet managed to agree on how to return
character data; however, I do agree that attributes should be returned
somehow in the startElement() event rather than passed as separate
events, so I'd like to propose this:

startElement(XmlParser p, String elname, java.util.Dictionary attributes)

Note the use of the Dictionary abstract base class here.  Hashtable is
derived from Dictionary, as is my Trie class that I released a
couple of years ago.  There are a couple of advantages to this
   approach:

1) It can be implemented efficiently, without requiring allocation of
   a hash table: you could return anything derived from
   java.util.Dictionary, including a simple sequential lookup in an
   array of attributes.

2) It makes the users' work much easier, since they can just use

    /**
      * Handle the start of an element.
      */
    startElement (XmlParser p, String elname, Dictionary attributes)
    {
      String id = (String)attributes.get("id");
      String role = (String)attributes.get("role");

      [...]
    }


   (instead of)


    /**
      * Handle the start of an element.
      */
    startElement (XmlParser p, String elname, Attribute attributes[])
    {
      String id = null;
      String role = null;

      for (int i = 0; i < attributes.length; i++) {
        if (attributes[i].getName().equals("id")) {
          id = attributes[i].getValue();
        } else if (attributes[i].getName().equals("role")) {
          role = attributes[i].getValue();
        }
      }

      [...]
    }

Comments?


All the best,


David

-- 
David Megginson                 ak117 at freenet.carleton.ca
Microstar Software Ltd.         dmeggins at microstar.com
      http://home.sprynet.com/sprynet/dmeggins/

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