I would recommend taking a look at Xineo OAX, a SAX-based XML parsing API that relies on principles that are close to STX : an OAX parser is defined by a set of (reusable) "handlers" that match given element names, and may embed "sub-handlers". The result is a hierarchical and object-oriented handler-set that will parse the corresponding document schema. But the actual parsing process remains event-based, and won't load the entire document into memory. This is free software available at http://xineo.sf.net/oax.
I recently created SAX Adapter, an open source framework for SAX parsing that involves handler registration and other useful features. SAX Adapter is similar to Xineo in its goals but the implementaiton is very different.
The SAXAdapter project page can be found at http://saxadapter.sourceforge.net