The Simple API for XML (SAX) is one of the first and currently the most popular method for working with XML data. It evolved from discussions on the XML-DEV mailing list and, shepherded by David Megginson, was quickly shaped into a useful specification.
The first incarnation, called SAX Level 1 (or just SAX1), supports elements, attributes, and processing instructions. It doesn't handle some other things like namespaces or CDATA sections, so the second iteration, SAX2, was devised, adding support for just about any event you can imagine in generic XML. Since there's no good reason not to use SAX2, you can assume that SAX2 is what we are talking about when we say "SAX."
SAX was originally developed in Java in a package called
org.xml.sax. As a consequence, most of the
literature about SAX is Java-centric and assumes that is the environment
you will be working in. Furthermore, there is no formal specification
for SAX in any programming language but Java. Analogs in other languages
exist, such as XML::SAX in Perl, but they are not bound by the official
SAX description. Really they are just whatever their developer community
thinks they should be.
David Megginson has made SAX public domain and has allowed anyone to use the name. An unfortunate consequence is that many implementations are really just "flavors" of SAX and do not match in every detail. This is especially true for SAX in other programming languages where the notion of strict compliance would not even make ...