Vol. 46No. SIG 11(PRO 26)情報処理学会論文誌：プログラミングAug. 2005
SAX 上の lazy XML tree の構成による XSLT の最適化
真中賢二†佐藤周行†,††
XSLT は XML を HTML，あるいは別のデータ構造を持つ XML に変換するトランスフォーマーであり，現在広く使われている．しかし，現在の XSLT ではそのための十分なパフォーマンスを持っていない．XSLT はデータベース上の莫大なデータを取り扱う際，オーバヘッドや処理時間の長さが問題になっている．今回の発表では，lazy XML parsing による XSLT の最適化の方法を提案する．Lazy XML parsing は，実際に参照されると判断した時点で初めて node を構成する手法である．提案する手法の特徴は interface に SAX を使用できる点にある．大規模なデータの処理を得意とするSAX を interface に使うことにより，大規模なデータに対して有利に処理ができるようになる．多くの場合，XSLT による変換に，XML で与えられたすべての node を必要とするわけではない．特にデータベースなど大規模なデータに対しては，数パーセントの node しか参照されない場合が多い．それゆえ，lazy XML parsing はオーバヘッドを抑えるためと，処理時間を早くするために有効的な手段となる．また，この最適化の手法を代表的な XSLT である saxon に実装することにより，性能評価をした．
Optimization of XSLT Based on lazy XML Parsing Using SAX
Kenji Manaka† and Hiroyuki Sato†,††
XSLT is a widely used tool for transforming an XML document into other forms includ-ing HTML, XML, PDF, etc. Unfortunately there are pointed out still many performanceproblems in XSLT when working with large datasets. In this presentation we propose ouroptimization technique based on lazy XML parsing. Lazy XML parsing is technique withwhich nodes are constructed just when they are proved to be really accessed. Our lazy XMLparser is built on SAX, which means that we must determine on-line which nodes are needed.This adds a complexity, compared with conventional lazy XML processor on DOM. UsingSAX improves XSLT performance when processing large documents. Because many trans-formations do not require full access to XML, in particular, accesses in large database aresparse, a lazy XML parsing decreases overhead and improves performance. Furthermore, weshow our implementation and evaluation.
† 東京大学新領域創成科学研究科基盤情報学専攻Department of Frontier Informatics, The University ofTokyo†† 東京大学情報基盤センターInformation TechnologyCenter,The UniversityofTokyo
（平成 17 年 1 月 20 日発表）