著者
杵淵 哲也 岩崎 英哉
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.48, no.4, pp.76, 2007-03-15

XML処理において,タグごとにイベント処理を記述するSAXやStAXといったストリームベースAPIを用いた記述は,木構造を直接扱うDOMなどのツリーベースAPIを用いた場合に比べてメモリ効率が良いという利点を持つ一方,パーサの処理がXML文書のどの部分まで進んだのかを追跡する必要があるため,記述が煩雑になりがちであり,プログラマへの負担が大きいという欠点がある.本発表では,ユーザにあらかじめアクセスする要素のパターンを記述してもらい,そのパターンに適合する要素を取り出すアクセサを自動生成する機構を提案する.自動生成されたアクセサはJavaのクラスとして提供され,主要なストリームベースAPIであるStAXを用いて処理を行う.煩雑な記述はアクセサによって隠蔽されるので,ユーザは生成されたクラスを用いて簡潔な記述によりXML処理を行うことができるようになる.For processing XML documents, stream-based API such as SAX and StAX handles tag-oriented event-driven programs and has the advantage of memory efficiency, compared with tree-based API such as DOM that handles tree structure directly. However, programs using stream-based API are complex because they are necessary to track how far processing has proceed within the XML document, and thus impose large load on the programmer. To resolve this problem, we propose a mechanism that automatically generates accessors to the elements that are specified by the user. Each accessor is implemented as a method that uses StAX API. The proposed mechanism enables the user to write more concise XML processing programs, because complex descriptions are encapsulated within the accessors.