西野です。

>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もバンドルされています。
以上です。