This was pointed out after I mentioned my
DTD -> SAX handler
widget idea to someone, this morning. I confess that the syntax just confuses me but it's probably a good place to start.