You can buy this project and download/modify it how often you want.
scan DTD stream and generates appropriate events.