SAX2: Proposed alternative DTD interface

David Megginson david at megginson.com
Fri Mar 26 22:23:09 GMT 1999


Here's another alternative for SAX2: forget about trying to report DTD 
declarations as events, and simply make the whole DTD available
through an interface with a Parser2.get() call.

I threw together a quick (read-only) DTD interface this morning, and
uploaded it to the following location

  http://www.megginson.com/SAX/sax2dtd-19990326.zip

The package consists of the following interfaces (and exception class)
in the org.xml.sax.dtd package:

  Attribute extends DTDComponent
  ContentGroup extends ContentParticle
  ContentParticle
  ContentParticleIterator
  ContentToken extends ContentParticle
  DTD
  DTDComponent
  DTDComponentIterator
  DTDException extends java.lang.Exception
  Element extends DTDComponent
  Entity extends DTDComponent
  Notation extends DTDComponent

The interface itself is pretty small -- the compiled class files add
up to just over 4K -- and a SAX application would get the information
like this:

  try {
    DTD dtd = (DTD)parser.get("http://xml.org/sax/props/dtd");
  } catch (SAXNotSupportedException e) {
    // ...
  }

This would print out the names of all of the declared elements:

  DTDComponentIterator it = dtd.getElements();
  while (it.hasMoreMembers()) {
    System.out.println(((Element)(it.getNextMember())).getName());
  }

etc., etc.


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/ and on CD-ROM/ISBN 981-02-3594-1
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