SAX2: Proposed alternative DTD interface

David Megginson david at
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

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

  Attribute extends DTDComponent
  ContentGroup extends ContentParticle
  ContentToken extends ContentParticle
  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("");
  } catch (SAXNotSupportedException e) {
    // ...

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

  DTDComponentIterator it = dtd.getElements();
  while (it.hasMoreMembers()) {

etc., etc.

All the best,


David Megginson                 david at

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
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