Filters and Writers
At this point, I want to diverge from the beaten path. So far, I’ve detailed everything that’s in a “standard” SAX application, from the reader to the callbacks to the handlers. However, there are a lot of additional features in SAX that can really turn you into a power developer, and take you beyond the confines of “standard” SAX. In this section, I’ll introduce you to two of these: SAX filters and writers. Using classes both in the standard SAX distribution and available separately from the SAX web site (http://www.megginson.com/SAX), you can add some fairly advanced behavior to your SAX applications. This will also get you in the mindset of using SAX as a pipeline of events, rather than a single layer of processing. I’ll explain this concept in more detail, but suffice it to say that it really is the key to writing efficient and modular SAX code.
XMLFilters
First
on the list is a class that comes in the basic SAX download from
David Megginson’s site, and should be included with any parser
distribution supporting SAX 2.0. The class in question here is
org.xml.sax.XMLFilter. This class extends the
XMLReader interface, and adds two new
methods to that
class:
public void setParent(XMLReader parent); public XMLReader getParent( );
It might not seem like there is much to say here; what’s the
big deal, right? Well, by allowing a hierarchy of
XMLReader
s through this filtering
mechanism, you can build up a processing chain, or
pipeline
, of events. To understand ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access