西野です。
先ほどの投稿はミス送信しましたので、再度投稿いたします。すみません。

>java.io.ByteArrayInputStreamのほうがかなりコードが少なくて書けるので

なんと後ろ向きな・・・・。と言うより、何故、あんな使いにくいJAXPにこだわるので
しょうか、Java1.4からバンドルされているからでしょうか。僕ならJDOMを使いますね。
因みに、JDOMのorg.jdom.input.SAXBuilderに以下のメソッドがあります。
 Document build(java.io.Reader characterStream)
つまり、スピードの速いSAXで読んで、DOMオブジェクトに相当するDocumentを作るわけ
です。これをDOMに変換することも簡単だし、そんなことをわざわざしなくても、いろい
ろなことが出来ます。
また、JDOMと一緒にxerces、xalanもバンドルされています。
以上です。