I haven't been playing with XML for too long but:
1: Yes, you can alter the stream as you read it and then pass it on somewhere else. However, if you wish to navigate your XML in any way other than forward then you would be better off moving to DOM.
2: Don't really understand what you mean - the DTD is just XML and can be read with the same parser.
I can recommend the
J2EE Tutorial chapter on SAX if you want to work through these concepts.
Regards,
Kenny