時が解決すること

Javaでの開発に際していろいろと前向きな事を書いたが、開発の主体が.NETからJavaに戻った時、一番最初に思ったことは

ああ...XMLのパースに何使おうかな

であった。

Javaでサーバサイドの開発をしていた頃はパーサの主流はDOMかSAXだったが、DOMはやたらとメモリを食うし、SAXはステートを記憶しておかないと複雑なパースができないし大嫌いだったので、わざわざJDOMを使っていた。
ちなみに今回の開発はJavaといえどもクライアントサイドであり、できるだけ標準のAPIで済ませなくてはならない(配布するjarを減らしたい)ので、JDOMは使えない。

.NETに移行した時、やはり主流はDOMやSAXを使うのかなと思っていたが、これが全く違うタイプのパーサで、まるでXMLをストリームのように扱うAPI(XmlReader/XmlWriter)が用意されていたのに驚いた記憶がある。
これが、俗に言う「プル・パーサ」であることは後で知ったのだが、一度プルパーサに慣れてしまうと、この性能とリソースコストに優れたAPIがすっかり気に入ってしまったのだ。

Javaに戻るということで、せっかくプルパーサに慣れたのにまたDOM/SAXかと辟易した訳だが、久しぶりにJavaのドキュメントをエクスプロールしていると、標準APIに新たなパーサが追加されたというではないか。

The Streaming API for XML (StAX) is a Java based API for pull-parsing XML. - (JCP)

Streaming API for XML (StAX) の使い方 - BEA WebLogic XML プログラマーズ ガイド

StAX で XML を処理する 第 2 回: プル解析とイベント - developerWorks Japan

時が解決してくれるというのは本当らしい。これでDOMやSAXは使わなくても済みそうだ。