Simple API for XML
David Megginson, principal of Megginson Technologies, led the development of the Simple API for XML (SAX), a widely-used specification that describes how XML parsers can pass information efficiently from XML documents to software applications. SAX was originally implemented in Java, but is now supported by nearly all major programming languages.
Unlike most XML-related specifications, SAX does not come from a formal committee at a standards body or industry consortium. David put together a proof-of-concept implementation during the holidays in December 1997 and presented it to the xml-dev mailing list in January 1998. Through collaborative online discussion, the xml-dev members developed the proof-of-concept into SAX 1.0, which immediately received industry-wide acceptance from both commercial and free software developers.
Pros and cons
SAX is a streaming interface — applications receive information from XML documents in a continuous stream, with no backtracking or navigation allowed. This approach makes SAX extremely efficient, handing XML documents of nearly any size in linear time and near-constant memory, but it also places greater demands on the software developer's skills. Tree-based interfaces, like the Document Object Model (DOM), make exactly the opposite trade-off: they are much simpler for developers, but at the cost of significant time and computer resources.