"データ系列に対するウィンドウ処理を実行するウィンドウ処理装置であって,データを格納するバッファと,包含関係を持つ要素を含むデータ系列を取得するデータ取得部と,前記データ系列から,ウィンドウ処理単位を定めるウィンドウ構成要素の位置および前記ウィンドウ構成要素に包含される演算対象要素の位置を前記ウィンドウ構成要素に関連付けて逐次的に検出し,前記ウィンドウ構成要素を検出する度に,直前に検出したウィンドウ構成要素と関連付けた演算対象要素に対応する演算対象要素値の集合を前記バッファに格納するデータストリーム解析部と,前記バッファに格納された前記ウィンドウ構成要素に関連付けられた演算処理値の集合に対してウィンドウ処理を行うウィンドウ処理部とを備えることを特徴とするウィンドウ処理装置。前記データストリーム解析部は,前記検出した演算対象要素に対応する演算対象要素値の集合を保持し,前記ウィンドウ構成要素の開始位置を検出する度に,前記保持している演算対象要素値の集合と該検出したウィンドウ構成要素の開始位置記号とを前記バッファに格納し,前記ウィンドウ処理部は,前記バッファに格納されたウィンドウ構成要素の開始位置記号にもとづいて前記ウィンドウ処理を行うことを特徴とする請求項1に記載のウィンドウ処理装置。コンピュータが実行する,データ系列に対するウィンドウ処理方法であって,包含関係を持つ要素を含むデータ系列を取得する処理ステップと,前記データ系列から,ウィンドウ処理単位を定めるウィンドウ構成要素の位置および前記ウィンドウ構成要素に包含される演算対象要素の位置を前記ウィンドウ構成要素に関連付けて逐次的に検出する処理ステップと,前記ウィンドウ構成要素を検出する度に,直前に検出したウィンドウ構成要素と関連付けた演算対象要素に対応する演算対象要素値の集合を前記バッファに格納する処理ステップと,前記バッファに格納された前記ウィンドウ構成要素に関連付けられた演算処理値の集合に対してウィンドウ処理を行う処理ステップとを備えることを特徴とするウィンドウ処理方法。コンピュータに,データ系列に対するウィンドウ処理を実行させるためのウィンドウ処理プログラムであって,前記コンピュータに包含関係を持つ要素を含むデータ系列を取得する処理と,前記データ系列から,ウィンドウ処理単位を定めるウィンドウ構成要素の位置および前記ウィンドウ構成要素に包含される演算対象要素の位置を前記ウィンドウ構成要素に関連付けて逐次的に検出する処理と,前記ウィンドウ構成要素を検出する度に,直前に検出したウィンドウ構成要素と関連付けた演算対象要素に対応する演算対象要素値の集合を前記バッファに格納する処理と,前記バッファに格納された前記ウィンドウ構成要素に関連付けられた演算処理値の集合に対してウィンドウ処理を行う処理とを,実行させることを特徴とするウィンドウ処理プログラム。上記で第1の既存技術として説明した,XMLデータ系列に対するウィンドウ処理では,ウィンドウ構成要素の取得に1スキャン,さらに演算対象要素値の取得に1スキャンの合計2回のスキャンの実行が必要であり,処理が非効率であるという問題があった。また,第2の既存技術として説明した,XMLデータ系列に対するストリーム型Xpathの照合処理では,互いに包含関係にある部分木を関連付けて取得するために,ウィンドウ構成要素と演算対象要素のそれぞれの照合に2スキャンの実行が必要であり,同様に,処理が非効率であるという問題があった。本発明の目的は,例えばXMLデータのように,包含関係を持つ要素を含むデータ系列に対するウィンドウ処理において,ウィンドウ構成要素と関連付けた演算対象要素を1回のスキャンで取得できる処理技術を提供することである。本発明の一態様として開示されるウィンドウ処理装置は,1データを格納するバッファと,2包含関係を持つ要素を含むデータ系列を取得するデータ取得部と,3前記データ系列から,ウィンドウ処理単位を定めるウィンドウ構成要素の位置および前記ウィンドウ構成要素に包含される演算対象要素の位置を前記ウィンドウ構成要素に関連付けて逐次的に検出し,前記ウィンドウ構成要素を検出する度に,直前に検出したウィンドウ構成要素と関連付けた演算対象要素に対応する演算対象要素値の集合を前記バッファに格納するデータストリーム解析部と,4前記バッファに格納された前記ウィンドウ構成要素に関連付けられた演算処理値の集合に対してウィンドウ処理を行うウィンドウ処理部とを備える。また,本発明の別の態様として開示されるウィンドウ処理方法は,コンピュータが,上記ウィンドウ処理装置の各処理部で実現される各処理に対応する処理ステップを実行するものである。また,本発明の別の態様として開示されるウィンドウ処理プログラムは,コンピュータに,上記ウィンドウ処理装置の各処理部で実現される各処理に対応する処理ステップを実行させるものである。上記した手段によれば,データ系列からウィンドウ構成要素と演算対象要素とを1回のスキャンで同時に行うことができ,ウィンドウ処理の計算時間と計算領域との効率化を実現することができる。本発明の一態様として開示するウィンドウ処理装置は,既知のストリーム型のXPath照合機能に,XMLストリームからウィンドウ構成要素に関連付けられた演算対象要素を検出し,検出済みの演算対象要素に対応する演算対象要素値を取得して,ウィンドウ構成要素の開始位置を検出する度に,ウィンドウ構成要素開始を表わす記号と検出済みの演算対象要素に対応する演算対象値の集合とをバッファに送信する機能を有する。図1は,本発明の一態様として開示するウィンドウ処理装置1の一実施例における構成例を示す図である。ウィンドウ処理装置1は,包含関係を持つ要素を含むデータ系列,例えばXMLデータのストリーム以下,XMLストリームに対するウィンドウ処理を実行する。より詳しくは,ウィンドウ処理装置1は,ユーザが使用するクエリ装置2からXMLストリームXSに対するウィンドウ問い合わせクエリQを受け付け,データ送信装置3からネットワークNを介して送信されたXMLストリームXSに対するウィンドウ処理を実行する。ウィンドウ処理として,ウィンドウクエリQで設定されたウィンドウサイズwおよびスライド幅sをもとに,直近のウィンドウ集計値aを,ウィンドウがスライドするたびに出力し,その出力をウィンドウクエリQの解集計値aAとして送信する。ウィンドウ処理装置1は,上記の機能を実現するため,ウィンドウクエリ受付部11,データストリーム取得部12,データストリーム解析部13,バッファ14,バッファ集計部15,および解出力部16を備える。ウィンドウクエリ受付部11は,ユーザのクエリ装置2から,ウィンドウ単位であるウィンドウ構成要素XP1,演算対象を示す演算対象要素XP2,ウィンドウサイズww≧1およびスライド幅ss≧1の指定を含むウィンドウクエリQを受け付ける。データストリーム取得部12は,XMLデータの発生源であるデータ送信装置3から,ネットワークNを解してXMLストリームXSを受信する。データストリーム解析部13は,逐次的に,受信したXMLストリームXSから,ウィンドウ構成要素XP1の位置を検出し,さらにウィンドウ構成要素XP1に包含される演算対象要素XP2の位置をウィンドウ構成要素XP1に関連付けて検出する。そして,データストリーム解析部13は,検出した演算対象要素XP2に対応する演算対象要素値の集合を保持し,ウィンドウ構成要素XP1の開始位置を検出する度に,保持している演算対象要素値の集合,すなわち直前に検出した演算対象要素XP2に対応する演算対象要素値の集合をバッファ14に格納する。バッファ14は,ウィンドウ構成要素XP1の検出,および検出したウィンドウ構成要素XP1に関連付けられた演算対象要素値の集合である値リストVを保持する。バッファ集計部15は,ウィンドウサイズwおよびスライド幅sにもとづいて,バッファ14に格納されているウィンドウサイズw分の演算対象要素値の集合を集計してウィンドウ集計値aを得る。バッファ集計部15は,ウィンドウがスライドする度に,直近に得られたウィンドウ集計値aを解出力部16へ出力する。解出力部16は,出力されたウィンドウ集計値aを,ウィンドウクエリの解Aとしてクエリ装置2へ送る。なお,上記バッファ集計部15,解出力部16およびウィンドウクエリ受付部11は,ウィンドウ処理部の一実施例である。図2は,データストリーム解析部13の構成例を示す図である。データストリーム解析部13は,ストリーム型パス照合部131,ウィンドウ構成要素位置検出部132,演算対象要素位置検出部133,演算対象要素値検出部135,演算対象要素値取得部136,ウィンドウ構成要素開始記号送信部137,および演算対象要素値リスト送信部138を備える。ストリーム型パス照合部131は,受け付けたXMLストリームXSの各XMLデータに対してストリーム型のXpath照合を行って,XMLデータから要素を検出する。ウィンドウ構成要素位置検出部132は,XMLデータから,ウィンドウ構成要素XP1の開始位置または終了位置を検出する。ここで,ウィンドウ構成要素XP1の開始位置および終了位置は,ウィンドウ構成要素XP1の開始/終了を示すタグまたはイベントとする。演算対象要素位置検出部133は,XMLデータから,演算対象要素XP2の開始位置または終了位置を検出する。ここで,演算対象要素XP2の開始位置および終了位置は,演算対象要素XP2を示す開始/終了を示すタグまたはイベントとする。演算対象要素値検出部135は,検出した演算対象要素XP2に対応する演算対象要素値を検出する。演算対象要素値取得部136は,XMLデータから,ウィンドウ構成要素に関連付けられて検出された演算対象要素XP2に対応する演算対象要素値を取得して,値リストVに追加する。ウィンドウ構成要素開始記号送信部137は,ウィンドウ構成要素XP1の開始位置が検出される度に,検出されたウィンドウ構成要素XP1の開始位置を示すフラグをバッファ14に書き出す。演算対象要素値リスト送信部138は,ウィンドウ構成要素XP1の開始位置が検出された後に演算対象要素XP2の終了位置が検出された場合に,検出済みの演算対象要素値のリストVをバッファ14に書き出す。図3A~Cは,XMLストリームXSのデータ構造の表現例を示す図である。データストリーム取得部12が受信するXMLストリームXSにおける各XMLデータは,POSシステムで生成されたデータであり,POS要素をルートとして,包含関係を持つ要素を含む。XMLデータは,cust要素とshop要素とを持ち,レジ担当者店員が変わるまでは,新しいXMLデータPOS要素は発生しないものとする。顧客の買い物データを示すcust要素は,必須要素として,購入品の価格を表すpric要素を持ち,任意要素として,購入者名を表すname要素を持つ。cust要素は,1つのXMLデータに何回出現してもよい。レジ担当の店員データを示すshop要素は,必須要素として,店員IDを表すid要素を持ち,XMLデータ内に1回だけ出現するものとする。図3A~Cは,XMLストリームXSのデータ構造の表現例を示す図である。図3Aは,上記したXMLデータのデータ構造を木構造で表現したものである。図3Aに示すXMLデータの木構造表現は,図3Bに示すように,タグを用いたテキスト表現に変換することができる。さらに,図3BのXMLデータのテキスト表現は,図3Cに示すようなイベント列の表現として扱うことができる。XMLデータのイベント列表現の代表例として,W3C標準のSAXがある。本実施例において,データストリーム取得部12は,XMLストリームXSとして,XMLデータのテキスト表現またはイベント表現のストリームを取得することができる。また,本実施例において,データストリーム解析部13は,XMLデータのイベント列表現に対して動作するが,XMLデータのテキスト表現を直接入力して,逐次的にイベントを検出しながら処理を行うように構成されてもよい。図4は,ウィンドウクエリQの例を示す図である。図4に示すウィンドウクエリQは,ウィンドウ構成要素XP1を指定するパス式/pos/cust,演算対象要素XP2を指定するパス式/pos/cust/pric,ウィンドウサイズrange=3,およびスライド幅sliding=1の指定が含まれている。以下,ウィンドウ処理装置1の処理の流れを説明する。図5は,ウィンドウ処理装置1の処理フローを示す図である。ステップS1:ウィンドウクエリ取得処理ウィンドウクエリ受付部11がウィンドウクエリ取得処理を実行する。図6は,ウィンドウクエリ取得処理のより詳細な処理フロー例を示す図である。ウィンドウクエリ受付部11は,ユーザのクエリ装置2からウィンドウクエリQを受け取るステップS11。ウィンドウクエリ受付部11は,受信したウィンドウクエリQから,ウィンドウ構成要素XP1および演算対象要素XP2のパス指定を抽出する。そして,ウィンドウクエリ受付部11は,データストリーム解析部13へXpath照合で用いる指定パス,すなわち,ウィンドウ構成要素XP1を指定するXpathXP1=/pos/cust,演算対象要素XP2を指定するXpathXP2=/pos/cust/pricを送信するステップS12。ウィンドウクエリ受付部11は,受信したウィンドウクエリQから,ウィンドウサイズw=3,スライド幅s=1を抽出し,バッファ集計部15へ送るステップS13。ステップS2:データストリーム解析処理データストリーム解析部13は,XMLストリームXSに対するXpath照合を行って,ウィンドウ構成要素XP1,演算対象要素XP2を抽出する。図7は,データストリーム解析処理の処理フロー例を示す図である。データストリーム解析部13は,XMLストリームXSを受け取る。データストリーム解析部13は,XMLストリームXSでの処理対象とするXMLデータを示すCXを用意し,初期化として,受け取ったXMLストリームXSの最初のXMLデータをデータCXとするステップS21。図8は,データCXの例を示す図である。データストリーム解析部13は,XMLデータのイベント列表現を受け取る。次に,データストリーム解析部13は,データCXに対してパス照合処理を行うステップS22。データストリーム解析部13は,XMLストリームXSのデータCXの次にXMLデータが存在するか判定するステップS23。データストリーム解析部13は,XMLストリームXSのデータCXの次にXMLデータが存在すればステップS23のY,次のXMLデータをデータCXとしステップS24,XMLストリームXSに次のXMLデータが存在しなければステップS23のN,処理を終了する。図9は,ステップS22のパス照合処理のより詳細な処理フローを示す図である。データストリーム解析部13のストリーム型パス照合部131は,初期化として,スキャン位置を示すカーソルCをデータCXイベント列の最初のイベントに設定し,演算対象要素フラグFA=0,値リストVを空リストとするステップS221。そして,ストリーム型パス照合部131は,パス照合を行い,データCXのカーソルCがあるイベントの種別を判定するステップS222。ステップS222の処理で,ウィンドウ構成要素位置検出部132により,そのイベントがウィンドウ構成要素XP1の開始であると判定された場合に,ウィンドウ構成要素開始記号送信部137が,ウィンドウ構成要素開始記号をバッファ14に出力するステップS223。ウィンドウ構成要素位置検出部132により,イベントがウィンドウ構成要素XP1の終了であると判定された場合に,演算対象要素値リスト送信部138が,値リストVをバッファ14に出力するステップS224。演算対象要素位置検出部133により,イベントが演算対象要素XP2の開始であると判定された場合に,演算対象要素位置検出部133が,演算対象要素フラグFA=1を設定するステップS225。イベントが演算対象要素XP2の終了であると判定された場合に,演算対象要素位置検出部133が,演算対象要素フラグFA=0を設定するステップS226。また,演算対象要素値検出部135により,イベントがテキストのノードであると判定された場合に,さらに,演算対象要素値取得部136が,演算対象要素フラグFA=1であるかを判定するステップS227。そして,演算対象要素フラグFA=1であればステップS227のY,演算対象要素値取得部136が,カーソルCが位置するイベントのテキスト値をリストVに追加するステップS228。一方,演算対象要素フラグFA=1でなければステップS227のN,ステップS229の処理へ進む。ステップS223~S226およびS228の処理後,または,ステップS222の処理においてカーソルCが位置するイベントが上記のいずれの場合にも該当しない場合それ以外,または,ステップS227の処理で演算対象要素フラグFA=1でない場合に,ストリーム型パス照合部131は,データCXで,カーソルCが位置するイベントの次にイベントが存在するかを判定するステップS229。カーソルCが位置するイベントの次にイベントが存在する場合にステップS229のY,ストリーム型パス照合部131は,カーソルCを次のイベントに移しステップS2210,ステップS222の処理へ戻す。カーソルCが位置するイベントの次にイベントが存在しない場合にステップS229のN,演算対象要素値リスト送信部138は,値リストVをバッファ14に出力するステップS2211。図10は,XMLストリームのXMLデータと,パス照合によりバッファ14に出力されるデータとの関係例を示す図である。図10に示すXMLストリームXSにおいて,データCX1を破線矩形で示している。図10のデータCX1は,図8に示すイベント列に対応している。データストリーム解析部13により,データCX1において,XP1=/pos/custとの照合によりパス/pos/custが検出されると図8a,ウィンドウ構成要素XP1custの開始位置と判断されて,ウィンドウ構成要素開始記号がバッファ14に出力される。その後に,XP2=/pos/cust/pricとの照合によりパス/pos/cust/pricが検出されると図8b,演算対象要素pricの開始位置と判断されて,FA=1が設定され,対応する演算対象要素値500が抽出されて値リストVに格納される図8c。続いて,パス/pos/cust/pricの終了が検出されると図8d,演算対象要素pricの終了位置と判断されて,FA=0と変更される。その後に,パス/pos/custの終了が検出されると図8e,ウィンドウ構成要素XP1custの終了位置と判断されて,値リストV={500}がバッファ14に出力される。図10に示すXMLストリームXSにおいて,データCX2を破線矩形で示している。データCX1の場合と同様に,データストリーム解析部13によって,XP1=/pos/custとのパス照合によってウィンドウ構成要素XP1custの開始位置が検出されると,ウィンドウ構成要素開始記号がバッファ14に出力される。その後に,XP2=/pos/cust/pricとのパス照合によって演算対象要素pricの開始位置が検出されると,FA=1が設定され,対応する演算対象要素値300がリストVに格納される。演算対象要素pricの終了位置が検出されると,FA=0と変更されるが,データX2では,続いて,演算対象要素pricの開始が検出されて,FA=1が再設定され,対応する演算対象要素値200がリストVに追加される。その後,データCX1の場合と同様に,ウィンドウ構成要素XP1custの終了が検出されると,リストV={300,200}がバッファ14に出力される。ステップS3:解出力処理図11は,解出力処理の処理フロー例を示す図である。バッファ集計部15は,初期化として,バッファ14でのデータの位置を示すカーソルCBを,バッファ14の最初のデータに設定し,ウィンドウサイズカウンタCW=0を設定し,出力シーケンスSeqを空列とするステップS31。バッファ集計部15は,バッファ14で,カーソルCBが設定されたデータの種類を判定するステップS32。データの種類が,ウィンドウ構成要素開始記号であればステップS32の記号,バッファ集計部15は,ウィンドウサイズカウンタCWを1増やしてステップS33,ステップS39に進み,データの種類が,値リストVであればステップS32の値リスト,ステップS34に進む。ステップS34の処理で,バッファ集計部15は,CW≧0ならば,カーソルCBが設定された値リストVを出力シーケンスSeqの末尾に追加する。続いて,バッファ集計部15は,ウィンドウサイズカウンタCWがウィンドウサイズwより小さいかCW<wを判定してステップS35,ウィンドウサイズカウンタCWがウィンドウサイズwより小さくなく,等しいCW=w場合にステップS35のN,出力シーケンスSeq内のデータ値リストVの集計値aを求めて,解出力部16へ出力するステップS36。解出力部16は,上記のステップS36の処理により,集計値aを逐次受け取り,ウィンドウクエリQの解Aとしてクエリ装置2へ送る。さらに,バッファ集計部15は,出力シーケンスSeqに格納されたデータの先頭からs件のデータを削除する。なお,スライド幅sがウィンドウサイズwより大きいs>w場合は,出力シーケンスSeqに格納されたデータを全件削除する。バッファ集計部15は,ウィンドウサイズカウンタCWを,CW-sの値に置き換えるステップS37。その後,バッファ集計部15は,バッファ14内でカーソルCBが設定されたデータの次にデータが存在するかを判定するステップS38。バッファ14内に次のデータが存在する場合にステップS38のY,バッファ集計部15は,カーソルCBを次のデータ値リストに移しステップS39,ステップS32の処理へ戻る。バッファ14内に次のデータが存在しない場合にステップS38のN,処理を終了する。図12~図14は,バッファ14のデータと,解出力処理により出力シーケンスSeqに出力されるデータとの関係を模式的に示す図である。図12~図14に示す処理は,ウィンドウサイズw=3,スライド幅s=1の場合のものである。バッファ集計部15によって,バッファ14内で,先頭のデータにカーソルCBが設定され,ウィンドウサイズカウンタCW=0に初期化される。図12Aに示すように,CBが位置するデータがウィンドウ構成要素開始記号であり,ウィンドウサイズカウンタCWが1増加されCW=1,カーソルCBが次のデータに移される。そして,図12Bに示すように,CBが移動したデータが,演算対象要素値の値リストVであれば,値リストV={500}が出力シーケンスSeqに格納され,カーソルCBはさらに次のデータに移される。そして,図13Aに示すように,カーソルCBが移動したデータがウィンドウ構成要素開始記号であれば,ウィンドウサイズカウンタCW=2となり,カーソルCBが次のデータに移される。そして,図13Bに示すように,カーソルCBが移動したデータの値リストV={300,200}が出力シーケンスSeqに格納され,さらにカーソルCBが次のデータに移される。同様にして,カーソルCBが移動したデータがウィンドウ構成要素開始記号であれば,CW=3となり,カーソルCBが次のデータに移される。その後,図14Aに示すように,カーソルCBが移動したデータが値リストであれば,その値リストV={100}が出力シーケンスSeqに格納される。ここで,ウィンドウサイズカウンタCWがウィンドウサイズw=3と等しくなるので,出力シーケンスSeqに格納された値リストが集計されて,集計値a1100が得られる。さらに,図14Bに示すように,出力シーケンスSeqに格納されたデータ値リストの先頭から,s=1件のデータ値リストが削除され,ウィンドウサイズカウンタCWがCW-s=2の値に変更される。なお,カーソルCBは,同様にして次のデータに移される。図15は,XMLストリームXSの各XMLデータと,バッファに出力されるデータとの関係を模式的に示す図である。ウィンドウ処理装置1は,ウィンドウ構成要素XP1の開始位置を検出する度に,直前に検出された演算対象要素XP2に対応する演算対象要素値の集合とウィンドウ構成要素開始記号とをバッファ14に格納する。ウィンドウ処理装置1は,1つのウィンドウ構成要素XP1に含まれる演算対象要素XP2が不特定数であっても,包含される演算対象要素XP2をすべてウィンドウ構成要素XP1に関連付けて検出し,演算対象要素XP2に対応する演算対象値をリストにまとめて保持する。したがって,バッファ14には,1回のスキャンで,ウィンドウ構成要素XP1の開始位置を示すウィンドウ構成要素開始記号と,ウィンドウ構成要素XP1に含まれる演算対象要素XP2に対応する演算対象要素値の集合値リストVとが交互に格納される。そのため,解集計処理において,ウィンドウ構成要素を単位とした演算対象要素値の集計が可能となる。本実施例において,ウィンドウ処理装置1は,ステップS2のデータストリーム解析処理とステップS3の解出力処理を,XMLストリームXSのXMLデータXごとに実行し,XMLストリームXSのXMLデータXの取得に従ってループして実行する。しかし,XMLストリームXSが有限の系列であれば,ウィンドウ処理装置1は,XMLストリームXSについて,ステップS2のデータストリーム解析処理とステップS3の解出力処理をバッチ的に実行するように構成されてもよい。ウィンドウ処理装置1は,CPUおよびメモリ等を有するハードウェアと,ソフトウェアプログラムとを備えるコンピュータシステム,または専用ハードウェアによって実現することができる。ウィンドウ処理装置1は,演算装置CPU,一時記憶装置DRAM,フラッシュメモリ等および永続性記憶装置HDD,フラッシュメモリ等を有し,外部とデータの入出力をするコンピュータによって実施することができる。また,ウィンドウ処理装置1は,このコンピュータが実行可能なプログラムによっても実施することができる。この場合に,ウィンドウ処理装置1が有すべき機能の処理内容を記述したプログラムが提供される。提供されたプログラムを上記コンピュータが実行することによって,上記説明したウィンドウ処理装置1の処理機能がコンピュータ上で実現される。なお,上記コンピュータは,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。さらに,上記プログラムは,コンピュータで読み取り可能な記録媒体に記録しておくことができる。以上説明したように,開示したウィンドウ処理装置1によれば,次のような効果がある。すなわち,ウィンドウ処理装置1によれば,ウィンドウ構成要素に含まれる演算対象の要素が不特定数であるようなデータのストリームに対しても1回のスキャンによるウィンドウ処理が可能となり,処理時間および格納領域を軽減することができる。従来技術では,ウィンドウ構成要素の開始位置と演算対象要素位置を検出するために,XMLストリームにおける各XMLデータを,2回スキャンする必要があった。しかし,ウィンドウ処理装置1によれば,ウィンドウ構成要素の開始位置と演算対象要素位置を1回のスキャンで同時に検出するため,計算時間を削減できる。さらに,副次的効果として,ウィンドウ処理装置1では,ウィンドウ構成要素のすべてをバッファ14に保持するタイプの従来技術とは異なり,集計処理に必要最低限のデータ値リストを取得してバッファ14に格納する。その結果として,ウィンドウ処理装置1によれば,バッファ14に保持するデータ量を削減できるため,計算時間と計算領域とを削減できる。"