The most trivial example is that an attribute declared in the DTD to be of type IDREF, requires that there be an element in the document that uses the same value for an ID attribute.
To validate this in a SAX parser, one must keep track of all ID attributes (any one of them might end up being referenced by an IDREF attribute at the very end); as well as every IDREF attribute until it is resolved.
Some events correspond to XML objects that are easily returned all at once, such as comments.
A parser that implements SAX (i.e., a SAX Parser) functions as a stream parser, with an event-driven API.
There are many SAX-like implementations in existence.
In practice, details vary, but the overall model is the same.
Where the DOM operates on the document as a whole, i.e.
building the full AST of XML document for convenience of the user, SAX parsers operate on each piece of the XML document sequentially, issuing parsing events while making single pass through the input stream.
Properly speaking, the SAX interface does not deal in elements, but in events that largely correspond to tags.