SAX: Next Round

Bill la Forge b.laforge at
Sun Jan 24 15:35:41 GMT 1999

From: James Clark <jjc at>
>> Parser filters are
>> just parsers that have a "parser(Parser)" constructor.
>This makes a lot of sense to me.
>With the setParent(Parser parser) idea, what's a filter supposed to do
>if the app fails to call setParent()? A filter has to have a parent
>Parser.  Your suggestion captures this nicely.

Its a problem for MDSAX, which constructs ParserFilters in the other direction,
Sink to Source, rather than Source to Sink. 

On the other hand, as long as a ParserFilter can be constructed with a
null Parser, it can be subclassed to subsequently set the parent.

The interface MDSAX in now using is 

public interface MDFilter
 extends Parser, DocumentHandler, DTDHandler, EntityResolver, ErrorHandler
  public void 
 setParser(Parser eventSource);

All of the filters in MDSAX subclass org.ccil.cowan.sax.ParserFilter,
but depend on being able to pass a null Parser parameter in the constructor.

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