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.