2012年6月5日火曜日

XMLからXSLTへ

大容量のXMLを生成してからXSLTに変換する時に、ボトルネックになりうる所が、2カ所あります。
1.XMLを生成する所
2.XSLTを生成する所

です。まぁ当たり前ですが、問題は、生成の仕方です。
大量のデータを持つXMLを生成する時は、DOMを使ったらOutOfMemoryしちゃう可能性があります。
だって、DOMは処理する前にすべてのデータを一旦メモリに展開しちゃうんですもの!

なので、逐次にデータを読み込みながらXMLを生成します。
これは、JavaSE6から導入されたStAXというパーサーを使えば解決できます。

次に、2.のXSLTの生成ですが、StAXで逐次に生成したXMLを逐次にXSLTに突っ込みたいんですが、APIが受けられるような作りになっていませんでした。

こちらは調べた所、逐次で生成ができないみたいです。
つまり、XMLが完成している状態じゃないとXSLTのAPIは受け付けてくれません!

ということで、今私が作成しているモジュールの構成は、XMLを一旦逐次でFileに落として、再度XSLTのAPI使ってFileを読み込むようにする予定です。
#はー、絶対パフォーマンス下がるよなー、XSLT生成のところ。。。


参考にさせて頂いたとても詳しいページです。
http://moyolab.blog57.fc2.com/blog-entry-29.html

0 件のコメント:

コメントを投稿