JP2005011183A - Information processor, information processing method, and program - Google Patents
Information processor, information processing method, and program Download PDFInfo
- Publication number
- JP2005011183A JP2005011183A JP2003176378A JP2003176378A JP2005011183A JP 2005011183 A JP2005011183 A JP 2005011183A JP 2003176378 A JP2003176378 A JP 2003176378A JP 2003176378 A JP2003176378 A JP 2003176378A JP 2005011183 A JP2005011183 A JP 2005011183A
- Authority
- JP
- Japan
- Prior art keywords
- satisfied
- storage
- node
- information processing
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、複数の要素が階層的に記述された文書を処理する情報処理装置、情報処理方法、及びプログラムに係り、特に該文書を構成する各要素をノードとする木構造で表現したオブジェクトを作成する情報処理装置、情報処理方法、及びプログラムに関するものである。
【0002】
【従来の技術】
計算機あるいはアプリケーションによってばらばらであったデータ形式を、異なる計算機やアプリケーションでも使用できるようにするための統一規格として、XML(eXtensible Markup Language)が知られている。XMLは、複数の要素を階層的に記述する構造化文書の代表的な規格である。
【0003】
XML文書のような構造化文書をアプリケーションで操作するためのAPI(Application Programming Interface)として、DOM(Document Object Model)が知られている。DOMは、構造化文書を木構造のオブジェクトとして扱うためのAPIである。
【0004】
構造化文書をDOMに変換することにより、アプリケーションは、構造化文書の木構造を認識でき、木をたどって必要な要素にアクセスすることができる。
【0005】
しかし、構造化文書をDOMに変換する場合、構造化文書のサイズが大きいほど、変換後の木構造のオブジェクトが大きくなり、これを記憶するために多くの記憶容量が必要となる。また、階層が深い場合にも、階層構造を表すための記憶容量が多く必要となる。従って、木構造に変換しても容量不足により記憶装置に格納できずに、エラーとなって処理が中断する、或いは格納できたとしてもアクセス効率が悪くなってしまう、等の問題が発生する。
【0006】
必要な記憶容量を削減するための装置としては、構造化文書の階層を浅くすることにより動作メモリ量を削減し、データアクセス効率を改善する装置(例えば、特許文献1を参照。)や、複数の要素を、それらの位置関係を示す情報と共に一つの要素として合成する装置(例えば、特許文献2を参照。)が知られている。
【0007】
【特許文献1】
特開2002−297569号公報
【特許文献2】
特開2002−108850号公報
【0008】
【発明が解決しようとする課題】
しかしながら、上述した従来の装置は、実際の処理状態(例えば、オブジェクトの作成量等)を判断することなく処理する装置であるため、必要なだけ動作記憶容量を削減できない場合がある。従って、木構造に変換しても容量不足により記憶装置に格納できずにエラーとなって処理が中断する、という問題や、格納できたとしてもアクセス効率が悪くなってしまう、という問題は依然として解消されない。
【0009】
本発明は、上述した問題を解決するために提案されたものであり、複数の要素を階層的に記述する文書を木構造に変換する処理の途中で、記憶容量が不足して変換後の木構造のオブジェクトを記憶できずにエラーが発生する前に、処理状態に応じて処理を停止することができる情報処理装置、情報処理方法、及びプログラムを提供することを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明の情報処理装置は、複数の要素が階層的に記述された文書を入力する入力手段と、前記入力手段により入力された文書を解析する解析処理と、前記解析処理の解析結果に基づいて、前記文書を構成する各要素をノードとする木構造で表現したオブジェクトを作成する作成処理と、前記作成処理により作成されたオブジェクトを記憶する記憶処理と、を繰り返す処理手段と、予め定められた停止条件が成立したか否かを判断する判断手段と、前記判断手段により前記停止条件が成立したと判断された場合に、前記解析処理、前記作成処理、及び前記記憶処理の少なくとも1つが停止されるように前記処理手段を制御する制御手段と、を含んで構成されている。
【0011】
入力手段は、複数の要素が階層的に記述された文書を入力する。複数の要素が階層的に記述された文書は、例えば、XML文書等に代表される構造化文書とすることができる。
【0012】
処理手段は、解析処理と、作成処理と、記憶処理とを繰り返して行う。解析処理は、入力手段により入力された文書を解析する処理である。例えば、入力された文書を上から順に読み込みながら、文書に記述された各要素の階層構造を解析するようにすることができる。
【0013】
作成処理は、解析処理の解析結果に基づいて、入力した文書を構成する各要素をノード(節点)とする木構造で表現したオブジェクトを作成する処理である。
【0014】
記憶処理は、作成処理により作成されたオブジェクトを記憶する。オブジェクトを記憶するための記憶媒体は、特に限定されず、例えば、メインメモリとして一般的に用いられるRAMとすることもできる。
【0015】
判断手段は、予め定められた停止条件が成立したか否かを判断する。例えば、前記解析処理の解析量が所定の量に達した場合、前記作成処理の作成量が所定の量に達した場合、及び、予め指定された要素が前記解析処理で検出された場合、の少なくともいずれかの場合に、前記停止条件が成立したと判断することができる。
【0016】
制御手段は、判断手段により停止条件が成立したと判断された場合に、解析処理、作成処理、及び記憶処理の少なくとも1つが停止されるように処理手段を制御する。
【0017】
このように、停止条件が成立したと判断した場合には、解析処理、作成処理、及び記憶処理の少なくとも1つが停止されるように処理手段を制御するようにしたため、記憶容量が不足して、作成された木構造のオブジェクトを記憶できずにエラーが発生する前に、処理手段の解析処理、作成処理、及び記憶処理の少なくとも1つを停止することができる。
【0018】
更に、本発明の情報処理装置は、前記停止条件の成立後、前記記憶されたオブジェクトのノードを削除する削除手段を更に含んで構成することもできる。
【0019】
前記削除手段は、前記停止条件の成立後、外部から指示を受けた場合に、前記記憶されたオブジェクトのノードを削除するようにすることもできる。
【0020】
すなわち、削除手段は、外部から、例えば、作成されたオブジェクトを参照或いは操作するアプリケーションから削除するように指示を受けた場合に、削除を行うことができる。
【0021】
前記削除手段は、ノードを削除する際に、階層が深いノード及び該ノードより上位のノードを優先的に削除する、参照回数の少ない要素を起点とする木を構成するノードを優先的に削除する、最後に参照されたときからの経過時間が長い要素を起点とする木を構成するノードを優先的に削除する、他の要素から参照されている要素を起点とする木を構成するノード以外のノードを優先的に削除する、予め指定された要素を起点とする木を構成するノードを優先的に削除する、予め定義された集合に属する要素毎に削除する、予め定められた優先順位に従って削除する、外部から指定された要素を起点とする木を構成するノードを優先的に削除する、の少なくとも1つを実行するようにすることもできる。
【0022】
例えば、階層が深いノードを含む木は、階層が深い分だけ、階層を表すための記憶容量が多く必要となる。従って、階層が深いノード及び該ノードより上位のノードを優先的に削除するようにすることが好ましい。
【0023】
例えば、過去、作成されたオブジェクトを参照するアプリケーションにより参照された回数が少ない要素の場合には、今後も参照される可能性が低い。このため、参照回数の少ない要素を起点とする木を構成するノードを優先的に削除するのが好ましい。なお、ここでいう「参照」は、アプリケーションがオブジェクトを操作する場合も含む。
【0024】
例えば、作成されたオブジェクトを参照するアプリケーションにより最後に参照されたときから長い時間が経過している場合には、今後も参照される可能性が低い。このため、最後に参照されたときからの経過時間が長い要素を起点とする木を構成するノードを優先的に削除するのが好ましい。なお、同様に、ここでいう「参照」は、アプリケーションがオブジェクトを操作する場合も含む。
【0025】
例えば、ある要素の情報を他の要素も使う場合、すなわち、ある要素を他の要素が参照する場合には、参照先の要素が削除されてしまうと、ある要素を参照する他の要素は参照先の情報が使えなくなってしまう。このため、他の要素から参照されている要素を起点とする木を構成するノード以外のノードを優先的に削除するのが好ましい。
【0026】
例えば、予め参照される可能性が低い要素がわかっている場合には、予めその要素を指定しておき、該要素を起点とする木を構成するノードを優先的に削除することができる。
【0027】
例えば、作成されたオブジェクトを参照するアプリケーションが提供するサービス毎に、参照する要素が異なる場合には、各サービスと各サービスが参照する要素(サービスに属する要素)を定義しておき、サービス毎に削除することもできる。このように、予め定義された集合に属する要素毎に削除することができる。
【0028】
例えば、予め参照される可能性が低い要素、或いは参照される可能性が高い要素がわかっている場合には、予め優先順位を定めておけば、該優先順位に従って削除することができる。
【0029】
例えば、予め削除する要素を指定した場合には、該指定された要素を起点とする木を構成するノードを優先的に削除することができる。
【0030】
また、前記制御手段は、前記削除手段により削除されたノードの情報を、前記記憶処理で記憶する記憶領域とは別の記憶領域に記憶するように更に制御することもできる。
【0031】
前記制御手段は、外部から指示を受けた場合に、前記別の記憶領域に記憶するように制御することもできる。
【0032】
前記制御手段は、前記削除手段により削除されたノードの情報をテキストデータとして記憶するように制御することもできる。
【0033】
すなわち、削除されたノードの情報を、木構造のオブジェクトのまま記憶せずにテキストデータとして記憶することにより、記憶するデータサイズが小さくなる。
【0034】
前記制御手段は、複数の同じ要素名、または複数の同じ属性名が存在する場合には、これら要素名または属性名を対応付けられた番号に置換えて記憶するように制御することもできる。
【0035】
すなわち、複数の同じ要素名を対応付けられた番号に置換えて格納することにより、記憶するデータサイズが小さくなる。また、要素名に限らず、要素に付されている属性(要素の特性を示す情報)の名前(属性名)についても、同じ名前が複数存在する場合には、同様にして記憶するようにすることができる。
【0036】
本発明の情報処理装置は、予め定められた再開条件が成立したか否かを判断する再開条件判断手段を更に含み、前記制御手段は、前記停止条件の成立後、前記再開条件判断手段により前記再開条件が成立したと判断された場合に、前記停止を解除し、停止している処理が再開されるように前記処理手段を制御するようにすることもできる。
【0037】
再開条件判断手段は、予め定められた再開条件が成立したか否かを判断する。例えば、外部から再開の指示を受けた場合、及び前記記憶処理により記憶された前記オブジェクトの記憶量が所定の量以下となった場合、の少なくとも一方の場合に、前記再開条件が成立したと判断するようにすることもできる。
【0038】
制御手段は、停止条件の成立後、再開条件判断手段により再開条件が成立したと判断された場合に、停止を解除し、停止している処理が再開されるように処理手段を制御する。
【0039】
前記処理手段は、予め指定された要素が前記解析処理で検出された場合には、該要素及び該要素に従属する要素については前記作成処理を行わないようにすることもできる。
【0040】
作成処理を行わないように指定する要素は、例えば、作成されたオブジェクトを参照・操作するアプリケーションが参照・操作する頻度の低い要素とすることができる。
【0041】
前記処理手段の記憶処理は、前記作成処理を行わなかった要素及び該要素に従属する要素の情報を、前記作成されたオブジェクトを記憶する記憶領域とは別の記憶領域に記憶するようにすることもできる。
【0042】
本発明の情報処理方法は、複数の要素が階層的に記述された文書を入力する入力工程と、前記入力工程により入力された文書を解析する解析処理と、前記解析処理の解析結果に基づいて、前記文書を構成する各要素をノードとする木構造で表現したオブジェクトを作成する作成処理と、前記作成処理により作成されたオブジェクトを記憶する記憶処理と、を繰り返す処理工程と、予め定められた停止条件が成立したか否かを判断する判断工程と、前記判断工程により前記停止条件が成立したと判断された場合に、前記解析処理、前記作成処理、及び前記記憶処理の少なくとも1つを停止する停止工程と、を含んで構成されている。
【0043】
この情報処理方法によれば、停止条件が成立したと判断した場合には、解析処理、作成処理、及び記憶処理の少なくとも1つを停止するようにしたため、記憶容量が不足して、作成された木構造のオブジェクトを記憶できずにエラーが発生する前に、解析処理、作成処理、及び記憶処理の少なくとも1つを停止することができる。
【0044】
本発明の情報処理方法は、前記停止条件の成立後、前記記憶されたオブジェクトのノードを削除する削除工程を更に含んで構成することもできる。
【0045】
本発明の情報処理方法は、前記削除工程により削除されたノードの情報を、前記記憶処理で記憶する記憶領域とは別の記憶領域に記憶する記憶工程を更に含んで構成することもできる。
【0046】
本発明の情報処理方法は、予め定められた再開条件が成立したか否かを判断する再開条件判断工程と、前記停止条件の成立後、前記再開条件判断工程により前記再開条件が成立したと判断された場合に、前記停止を解除し、停止している処理を再開する再開工程と、を更に含んで構成することもできる。
【0047】
本発明のプログラムは、コンピュータに、複数の要素が階層的に記述された文書を入力する入力工程と、前記入力工程により入力された文書を解析する解析処理と、前記解析処理の解析結果に基づいて、前記文書を構成する各要素をノードとする木構造で表現したオブジェクトを作成する作成処理と、前記作成処理により作成されたオブジェクトを記憶する記憶処理と、を繰り返す処理工程と、予め定められた停止条件が成立したか否かを判断する判断工程と、前記判断工程により前記停止条件が成立したと判断された場合に、前記解析処理、前記作成処理、及び前記記憶処理の少なくとも1つを停止する停止工程と、を実行させる。
【0048】
このようなプログラムをコンピュータに実行させることにより、停止条件が成立したと判断した場合には、解析処理、作成処理、及び記憶処理の少なくとも1つを停止するようにしたため、記憶容量が不足して、作成された木構造のオブジェクトを記憶できずにエラーが発生する前に、解析処理、作成処理、及び記憶処理の少なくとも1つを停止することができる。
【0049】
なお、プログラムを記憶する記憶媒体は、特に限定されず、ROMや、CD−ROMやDVDディスク、光磁気ディスクやICカード、あるいはハードディスク等であってもよいし、電気通信回線上の搬送波のような伝送媒体であってもよい。
【0050】
本発明のプログラムは、前記停止条件の成立後、前記記憶されたオブジェクトのノードを削除する削除工程を更に含んで構成することもできる。
【0051】
本発明のプログラムは、前記削除工程により削除されたノードの情報を、前記記憶処理で記憶する記憶領域とは別の記憶領域に記憶する記憶工程を更に含んで構成することもできる。
【0052】
本発明のプログラムは、予め定められた再開条件が成立したか否かを判断する再開条件判断工程と、前記停止条件の成立後、前記再開条件判断工程により前記再開条件が成立したと判断された場合に、前記停止を解除し、停止している処理を再開する再開工程と、を更に含んで構成することもできる。
【0053】
【発明の実施の形態】
以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。
【0054】
[第1の実施の形態]
図1(A)は、本実施の形態に係る構造化文書処理システムの機能構成及び構造化文書処理システムで行われる処理を概念的に示した図である。図示されるように、テキスト形式で記述されたXML文書30が、本発明の情報処理装置としてのXMLプロセッサ(XMLパーザ)10に入力されると、XMLプロセッサ10は、XML文書30の各要素をノードとする木構造で表現したオブジェクト(DOMツリー40)を作成する。上位XMLアプリケーション50は、作成されたDOMツリー40を参照或いは操作することができる。。
【0055】
図1(B)は、図1(A)で示された構造化文書処理システムの機能構成及び構造化文書処理システムで行われる処理を更に詳細に示した図である。
【0056】
(1)では、上位XMLアプリケーション50がXML文書30を参照及び操作するために、DOMインタフェース60を介して、XMLプロセッサ10にDOMツリー40を作成するように指示を与える。
【0057】
(2)では、指示を受けたXMLプロセッサ10は、XML文書30を入力して解析する。
【0058】
図2は、XML文書30の一例を示している。図示されるようにXML文書30は、テキスト形式で、要素の始まりを示す開始タグ<○○○>と要素の終了を示す終了タグ</○○○>により、複数の要素が階層的に記述されている。
【0059】
具体的には、XMLプロセッサ10は、図2に示されるようなXML文書30を上から順に読み込み、開始タグ及び終了タグを検出していくことにより、XML文書30の各要素の階層構造を解析する。
【0060】
更にXMLプロセッサ10は、解析結果に基づいて、DOMツリー40を作成する。
【0061】
図3は、図2のXML文書30を解析して作成されたDOMツリー40の一例を示している。図示されるように、各要素(Element)が木構造のノード(節点)として構成されている(例えば、図のノード70)。また、要素の内容、すなわち、開始タグと終了タグで挟まれた文字列(Text)もノードとして構成されている(例えば、図のノード72)。
【0062】
なお、図3の▲1▼で示された部分が、図2の▲1▼のscan要素の記述に対応する部分木(全体の木の一部)である。また、図3の▲2▼で示された部分が、図2の▲2▼のstorage要素の記述に対応する部分木である。
【0063】
このように、DOMツリー40は、複数の部分木により構成されている。
【0064】
(3)では、上位XMLアプリケーション50が、作成されたDOMツリー40をDOMインタフェース60を介して参照或いは操作する。
【0065】
図4は、XMLプロセッサ10の機能を実現するためのハードウェア資源としての情報処理装置11の構成を示すブロック図である。
【0066】
図示されるように、情報処理装置11は、操作部12、第1記憶部14、入出力部16、CPU20、ネットワークI/F22、及びROM24、を含んで構成され、これらはバスにより相互に接続されている。
【0067】
操作部12は、例えばキーボード等により構成され、ユーザは操作部12を用いて任意のデータを入力し、所定の操作を行う。
【0068】
ネットワークI/F22は、各種ネットワークに接続するためのインタフェースである。
【0069】
ROM24は、XMLプロセッサ10の機能としての、XML文書からDOMツリーを作成するためのDOMツリー作成処理ルーチンのプログラムが記憶されている。更にROM24には、XML文書を扱う上位XMLアプリケーション50とDOMインタフェース60の機能を実現するためのプログラムも記憶されている。
【0070】
CPU20は、ROM24等に記憶されたプログラムを実行することにより各種機能を実現する。
【0071】
第1記憶部14は、例えばRAMにより構成され、作成されたDOMツリー等を記憶する。
【0072】
入出力部16は、各種データを入出力するためのインタフェースである。入出力部16には、第2記憶部18が接続されている。第2記憶部18は、例えば、第1記憶部14に比してアクセススピードは遅いが、記憶容量が大きい記憶媒体、例えば、ハードディスク装置等とすることができる。
【0073】
図1に示されたXMLプロセッサ10は、図4に示される情報処理装置11をハードウェア資源とし、ROM24に記憶されたプログラムをソフトウェア資源として用いて実現される機能である。なお、上位XMLアプリケーション50及びDOMインタフェース60も、同様にして実現される機能である。
【0074】
以下、DOMツリー作成処理ルーチンを、図5を参照して説明する。
【0075】
ステップ100では、XMLプロセッサ10は上位XMLアプリケーション50からのDOMツリー作成指示を受け、構造化文書(ここではXML文書)を取得(入力)する。例えば、XML文書が記憶された記憶装置が第2記憶部18である場合には、第2記憶部18から入出力部16を介して取得され、ネットワーク上の他のコンピュータシステムに記憶されている場合には、ネットワークI/F22を介して取得される。
【0076】
ステップ102では、取得したXML文書を解析する。前述したように、開始タグ及び終了タグを順に検出することにより、これらタグで記述された要素毎にその構造と内容を解析する。
【0077】
ステップ104では、ステップ102の解析結果に基づいて、木構造のオブジェクト(DOMツリー)を作成する。より詳しくは、解析された要素をノードとする部分木としてのDOMツリーを作成する。
【0078】
以下、この部分木を作成する処理については、部分木作成処理と呼称し、DOMツリー作成処理と区別して説明する。また、この部分木作成処理で作成されたDOMツリーは、部分木と呼称することにより全体のDOMツリーと区別して説明する。
【0079】
ステップ106では、第1記憶部14の空容量が不足しているか否かを判断する。ここで、空容量が不足していない、すなわち、ステップ104で作成された部分木を格納するのに十分な空容量があると判断した場合には、ステップ108で、作成された部分木を第1記憶部14に格納する。ステップ106で、空容量が不足していると判断した場合には、ステップ110の第2記憶部格納処理に移行し、作成された部分木を第2記憶部18に格納する。
【0080】
図6は、第2記憶部格納処理の流れを示すフローチャートである。
【0081】
ステップ200では、第2記憶部18の空容量が不足しているか否かを判断する。ここで、空容量が不足していないと判断した場合には、ステップ202で、作成された部分木をそのまま第2記憶部18に格納する。また、空容量が不足していると判断した場合には、ステップ204に移行し、作成された部分木をテキストデータに変換して、データサイズを小さくする。変換後は、ステップ202に移行し、テキストデータに変換されたものを第2記憶部18に格納する。
【0082】
このように、作成された部分木を第1記憶部14或いは第2記憶部18に格納した後は、図5のステップ112に移行し、停止条件が成立したか否かを判断する。
【0083】
停止条件は、予め設定されており、ここでは、DOMツリーを格納するための使用メモリ量を予め定めておき、DOMツリーの作成量(部分木の作成量の累積)が該定められた量に達した場合に停止条件が成立したと判断するように設定されている。使用メモリ量は、任意に設定可能である。
【0084】
また、予め指定された要素がステップ102の解析処理中に検出された場合に、停止条件が成立したと判断されるように設定されていてもよい。この要素の指定も、予めユーザが任意に設定することができる。
【0085】
更にまた、DOMツリーの作成量が予め定められた量に達した場合、及び、予め指定された要素が検出された場合、の少なくともいずれか一方の場合に、停止条件が成立したと判断されるように設定されていてもよい。
【0086】
ステップ112で、停止条件は成立していないと判断した場合には、ステップ116に移行し、XML文書全体の解析が終了したか否かを判断する。
【0087】
ステップ116でXML文書全体の解析が終了していないと判断した場合には、ステップ102に戻り、更にXML文書を読み込んで、次の開始タグ及び終了タグを検出することにより、XML文書の解析を続ける。
【0088】
ステップ112で、停止条件が成立したと判断した場合には、ステップ114に移行し、停止条件成立時の処理を行う。
【0089】
図7は、停止条件成立時の処理の流れを示すフローチャートである。
【0090】
ステップ300で、上位XMLアプリケーション50に停止条件が成立した旨を通知する。なお、ここで、これまで作成したDOMツリーを上位XMLアプリケーション50に渡すこともできる。その場合には、XMLプロセッサ10は上位XMLアプリケーション50に対して、作成したDOMツリーの格納場所をDOMインタフェース60を介して通知する形でDOMツリーを渡す。
【0091】
ステップ302で、上位XMLアプリケーション50から削除要求を取得したか否かを判断する。削除要求を取得していないと判断した場合には、ステップ308に移行し、第2記憶部への格納要求を取得したか否かを判断する。ここで第2記憶部への格納要求を取得していないと判断した場合には、ステップ302に戻る。すなわち、XMLプロセッサ10は、上位XMLアプリケーション50からの要求を取得するまで待機状態を維持する。
【0092】
ステップ302で、削除要求を取得したと判断した場合には、ステップ304に移行し、削除する要素(ノード)の検索を行う。
【0093】
例えば、階層が深いノード及び該ノードより上位のノードを検索するようにし、該ノードが優先的に削除されるようにしてもよい。
【0094】
以下、この検索処理について図8及び図9を参照しながら、詳細に説明する。図8は、元のXML文書を示し、図9は、図8のXML文書から作成されて第1記憶部14に格納されているDOMツリーを示している。
【0095】
図9に示されるように、点線▲3▼で囲まれた部分木のauthor要素は、同じ階層の他の要素p、titleと比較して、階層が深いノードを従属している。例えば、要素ノード(first、last)やTextノード(aaa、bbb、ssss)は、他の要素p、titleを起点とする部分木の末端のノードの階層より深い。
【0096】
従って、ここで削除の対象として検索されるノードは、点線▲3▼で囲まれた部分木のノードである。
【0097】
このようなノードを削除対象とすることにより、浅い階層の部分木、すなわちデータサイズの小さい部分木を削除する場合に比べて、第1記憶部14の空容量を増やすことができる。なお、後述するように、第1記憶部14から削除したノードの情報を第2記憶部18に格納しておき、必要に応じて第2記憶部18から読み出して第1記憶部14に展開することができるようにする場合には、大きいサイズの部分木を構成するノードを削除して格納する方が、小さいサイズの部分木を多く削除して格納する場合に比して、第2記憶部18から読み出して第1記憶部14に展開する処理回数を減らすことができ、装置の負荷を低減させることができる。
【0098】
なお、上位XMLアプリケーション50の削除要求に、削除する要素の指示が含まれていてもよい。これにより、上位XMLアプリケーション50からの指示に基づいて削除する要素(ノード)の検索を行うことができる。
【0099】
ステップ306で、検索したノードを第1記憶部14から削除する。
【0100】
また、削除要求を取得する代わりに、ステップ308で、第2記憶部格納要求を取得した場合には、ステップ310及びステップ312で、上述したステップ304及びステップ306と同様の処理を行った後、ステップ314の第2記憶部格納処理に移行し、削除したノードの情報を第2記憶部に格納する。第2記憶部18に格納することにより、必要に応じて、削除したノードを第1記憶部14に展開して用いることができる。第2記憶部格納処理の流れの詳細は前述した通りであるため、説明を省略する。
【0101】
ステップ306またはステップ314の処理の後は、ステップ316に移行し、第1記憶部14に記憶されているDOMツリーの記憶量が指定量以下になったか否かを判断する。指定量以下になっていないと判断した場合には、ステップ300に戻り、上位XMLアプリケーション50にDOMツリーの記憶量が指定量以下になっていない旨を通知して、ステップ302以降の処理を繰り返す。ステップ300からステップ316までの処理は、ステップ316で肯定判断されるまで繰り返される。
【0102】
ステップ316で、肯定判断した場合には、ステップ318で、上位XMLアプリケーション50に対して、DOMツリーの記憶量が指定量以下になったことを通知する。
【0103】
ステップ320で、上位XMLアプリケーション50から、処理を再開する要求(再開要求)を取得したか否かを判断する。再開要求を取得するまでは、待機が維持されるので、次の解析処理以降が停止される。再開要求を取得した場合には、図5のステップ116に戻り、解析処理を再開する。
【0104】
図5において、ステップ116で肯定判断されるまでは、ステップ102のからステップ116の処理が繰り返され、順に部分木が作成されて記憶される。
【0105】
ステップ116で肯定判断した場合には、ステップ118に移行し、作成したDOMツリーを上位XMLアプリケーション50に渡し、DOMツリー作成処理を終了する。なお、ここでは、上位XMLアプリケーション50及びDOMインタフェース60はXMLプロセッサ10と同じハードウェア資源を用いて実現されているため、XMLプロセッサ10は、上位XMLアプリケーション50に、作成したDOMツリーの格納場所をDOMインタフェース60を介して通知する形でDOMツリーを渡す。
【0106】
以上説明したように、入力したXML文書を解析する処理と、解析結果に基づいて部分木を作成する処理と、作成した部分木を第1記憶部14に格納する処理とを繰り返す間に、停止条件が成立したと判断された場合には、少なくとも1つの処理を停止するようにしたため、第1記憶部14の容量不足により、作成した部分木を格納できずにエラーが発生する前に、処理を停止することができる。
【0107】
また、停止条件が成立した後、第1記憶部14に記憶されたDOMツリーのノードを削除するようにしたため、第1記憶部14が容量不足になる事態を防止できる。
【0108】
また、削除したノードの情報を、必要に応じて第2記憶部18に格納するようにしたため、上位XMLアプリケーション50の操作に必要なノードを削除した場合であっても、該ノードの情報は失われず、必要に応じて第2記憶部18から読み出して第1記憶部14に展開して用いることができる。
【0109】
また、停止条件が成立した後、第1記憶部14に格納したDOMツリーの記憶量が指定量以下となった場合に、停止状態を解除し、停止した処理を再開するようにしたため、XML文書全体について解析を行うことができ、処理が中断されたまま終了するような事態を防止できる。
【0110】
なお、削除処理は、上述した例に限定されず、例えば、予め定義された集合に属する要素毎に削除するようにしてもよい。更に、定義された集合毎に優先順位を定めておき、優先順位の高い(或いは低い)集合に属する要素から削除するようにしてもよい。集合を定義する方法として、例えば、取り扱う文書がXML文書の場合には、XMLのNamespaceという規格を採用することができる。
【0111】
Namespaceは、要素がどの集合に属するかを指定するために用いられる。
【0112】
以下、図10及び図11を参照しながら、Namespaceを用いて集合を定義し、定義した集合毎に優先順位を設けて削除する例について説明する。
【0113】
図10は、Namespaceを定義するテーブルの一例であり、例えば、上位XMLアプリケーションの起動時等にXMLプロセッサ10に登録される。Service name80は、上位XMLアプリケーション50が提供するサービス(すなわち、集合)を定義する。namespace Prefix82は、定義されたサービスと各要素を結びつけるための接頭辞であり、この接頭辞をXML文書の開始タグ等に記述しておくことにより、各要素を接頭辞で表されるサービスに属する要素として関連付けることができる。ここで、noneは、どのサービスにも属さないことを意味する。Priority84は、優先順位を定義する。この項目を参照することにより、優先順位の高い(或いは低い)サービスの接頭辞が記述された要素を優先的に削除することができる。
【0114】
図11は、定義された接頭辞を用いて記述されているXML文書の一例を示している。
【0115】
図示されるように、aという接頭辞が記述されている要素(例えば<a:action>及び</a:action>で示される要素)は、a serviceに属するとみなされる。また、bという接頭辞が記述されている要素(例えば、<b:action>及び</b:action>で示される要素)は、b serviceに属するとみなされる。また、接頭辞の記述がない要素は、どのサービスにも属さないとみなされる。ここで、優先順位の低いサービスが優先的に削除されるように設定されている場合には、図10に示されるテーブルに従い、接頭辞の記述のない要素dateのノードと該ノードに従属するノードが優先的に削除される。
【0116】
例えば、要素を印刷サービスに用いる場合には1度参照するとその後は参照されない場合が多いため、優先順位を低く設定して優先的に削除されるようにし、画面表示サービスに用いる場合には再度参照される可能性が高いため、優先順位を高く設定して削除されないようにすることができる。
【0117】
更に、削除処理は、このような例に限定されず、例えば、参照回数の少ない要素を起点とする部分木を構成するノードを優先的に削除するようにしてもよいし、最後に参照されたときからの経過時間が長い要素を起点とする部分木を構成するノードを優先的に削除するようにしてもよい。参照回数が少ない要素、或いは最後に参照されたときからの経過時間が長い要素は、上位XMLアプリケーション50が参照或いは操作する可能性が低いとみなせるため、これらを削除の対象とすることが好ましい。このような削除処理を行う場合には、例えば、上位XMLアプリケーション50がどの要素をいつ参照したか、という情報を所定のテーブルに登録しておき、このテーブルを参照することにより判断してもよい。
【0118】
また、他の要素から参照されている要素を起点とする部分木を構成するノードは削除されないようにすることが好ましい。例えば、XMLで用いられるXPathを用いて他の要素から参照されている要素については、削除対象から外すようにする。XPathは、DOMツリーを構成するノードの位置情報を記述する言語である。ある要素の位置情報を示すXpathを、他の要素に保持させておけば、該Xpathで指示された要素の内容を該他の要素が参照することができる。他の要素から参照されている要素を削除すると、削除された要素の内容を他の要素が参照できなくなるため、このような要素を起点とする部分木を構成するノードについては削除の対象としないことが好ましい。
【0119】
また、予め参照される可能性が低い要素がわかっている場合には、予めその要素を指定しておき、該要素を起点とする木を構成するノードを優先的に削除するようにしてもよい。
【0120】
また、要素毎に優先順位を定めておいてもよい。これにより所望のDOMツリーを作成することができる。
【0121】
また、上位XMLアプリケーション50から、削除する要素の指定があった場合には、該指定された要素を起点とする木を構成するノードを優先的に削除するようにすることができる。
【0122】
なお、削除処理は、これらのうち複数を実行してもよいし、いずれか1つを実行するようにしてもよい。
【0123】
また、このような削除の仕方は、予めXMLプロセッサ10に設定しておいてもよいし、上位XMLアプリケーション50から指定されてもよいし、ユーザが任意に設定するようにしてもよい。
【0124】
[第2の実施の形態]
第1の実施の形態では、DOMツリーの作成量(部分木の作成量の累積)が所定の量に達した場合、或いは、予め指定された要素が検出された場合に、停止条件が成立したと判断されるように設定されている例について説明したが、本実施の形態では、DOMツリーの作成量に代えて、解析処理の解析量を用いる例について説明する。
【0125】
なお、本実施の形態におけるハードウェア構成及びソフトウェア構成は第1の実施の形態と同様であるため、説明を省略する。
【0126】
図12は、本実施の形態に係るDOMツリー作成処理ルーチンの流れを示したフローチャートである。
【0127】
本実施の形態では、ステップ400の構造化文書取得処理、ステップ402の解析処理の後、ステップ404で、停止条件が成立したか否かを判断する。
【0128】
本実施の形態では、解析処理の解析量(累積)が所定の量に達した場合に、停止条件が成立したと判断されるように設定されている。ここでいう解析量は、XMLプロセッサ10が読み込んで解析したXML文書の量である。なお、該所定の量はユーザが予め任意に設定することができる。
【0129】
また、第1の実施の形態と同様に、予め指定された要素がステップ402の解析処理中に検出された場合に、停止条件が成立したと判断されるように設定されていてもよい。この要素の指定も、予めユーザが任意に設定することができる。
【0130】
更にまた、解析処理の解析量(累積)が所定の量に達した場合、及び、予め指定された要素が検出された場合、の少なくともいずれか一方の場合に、停止条件が成立したと判断されるように設定されていてもよい。
【0131】
ステップ404で、停止条件は成立していないと判断した場合には、ステップ408に移行し、ステップ402の解析結果に基づいて、部分木を作成する。
【0132】
ステップ404で、停止条件が成立したと判断した場合には、ステップ406に移行し、停止条件成立時の処理を行う。停止条件成立時の処理は、第1の実施の形態と同様であるため説明を省略する。
【0133】
停止条件成立時の処理後は、ステップ408に移行して、ステップ402の解析結果に基づいて、部分木の作成を再開する。
【0134】
ステップ410では、作成された部分木を第1記憶部14に格納する。
【0135】
ステップ412では、XML文書全体の解析が終了したか否かを判断する。ここでXML文書全体の解析が終了していないと判断した場合には、ステップ402に戻り、更にXML文書を読み込んで、XML文書の解析を続ける。
【0136】
ステップ412でXML文書全体の解析が終了したと判断した場合には、ステップ414に移行し、作成したDOMツリーを上位XMLアプリケーション50に渡し、DOMツリー作成処理を終了する。
【0137】
以上説明したように、停止条件が成立したか否かを、解析処理の解析量によって判断するようにしたため、部分木作成処理及び記憶処理前に、停止条件が成立したか否かを判断でき、部分木作成処理を停止して、停止条件成立時の処理を行い第1記憶部14の空容量を増加させることができる。
【0138】
なお、停止条件の成立の判断は、第1の実施の形態及び第2の実施の形態で示した例に限らず、例えば、解析処理の解析量(累積)が所定の量に達した場合、DOMツリーの作成量が予め定められた量に達した場合、及び、予め指定された要素が検出された場合、の少なくともいずれかの場合に、停止条件が成立したと判断されるように設定されていてもよい。
【0139】
[第3の実施形態]
第1の実施の形態及び第2の実施の形態における停止条件成立時の処理では、XMLプロセッサ10が上位XMLアプリケーション50から削除要求や第2記憶部格納要求を取得した場合に、削除処理や第2記憶部への格納処理を行う例について説明したが、本実施の形態では、XMLプロセッサ10により自動的に削除処理や第2記憶部への格納処理を行う例について説明する。
【0140】
図13は、本実施の形態に係る停止条件成立時の処理の流れを示すフローチャートである。
【0141】
ステップ500で、削除する要素(ノード)の検索を行う。
【0142】
ステップ502で、ステップ500で検索されたノードを第1記憶部14から削除する。なお、削除処理は、第1の実施の形態と同様に行うことができる。
【0143】
ステップ504で、削除したノードの情報を第2記憶部18へ格納するか否かを判断する。例えば、第1記憶部14から削除したノードが常に第2記憶部18に格納されるように設定されていれば、XMLプロセッサ10はステップ504で肯定判断し、ステップ506に移行して削除したノードについて第2記憶部格納処理を実行する。なお、ステップ506の第2記憶部格納処理の流れの詳細は、前述した通りであるため、説明を省略する。
【0144】
なお、予め指定されている要素についてのみ第2記憶部に格納するように設定されていてもよい。この場合には、該指定のある要素ノード及び該要素の内容を示すTextノードが削除された場合のみ、第2記憶部格納処理を実行する。
【0145】
また、第2記憶部18への格納はいっさい行わないように設定されている場合には、ステップ504で常に否定判断し、ステップ508に移行する。
【0146】
ステップ508で、第1記憶部14に記憶されているDOMツリーの記憶量が指定量以下になったか否かを判断する。指定量以下になっていないと判断した場合には、ステップ500に戻り、上述の処理を繰り返す。ステップ500からステップ508までの処理は、ステップ508で肯定判断されるまで繰り返される。
【0147】
ステップ508で、肯定判断した場合には、ステップ510で、上位XMLアプリケーション50に対して、DOMツリーの記憶量が指定量以下になったことを通知する。
【0148】
ステップ520で、上位XMLアプリケーション50から、処理を再開する要求(再開要求)を取得したか否かを判断する。再開要求を取得するまでは、待機が維持されるので、次の処理(第1の実施の形態では解析処理、第2の実施の形態では部分木作成処理)以降が停止される。再開要求を取得した場合には、図5のステップ116或いは図12のステップ408に戻り、処理を再開する。
【0149】
以上説明したように、停止条件成立時の処理を、上位XMLアプリケーション50からの削除要求或いは第2記憶部格納要求を取得せずに、自動的に判断して削除処理及び格納処理を行うことができる。
【0150】
[第4の実施形態]
本実施の形態では、指定された要素については、停止条件が成立したか否かに拘らず、部分木を作成せずに元のXML文書のテキスト形式のまま第2記憶部18に格納する例について説明する。
【0151】
第1から第3の実施の形態におけるDOMツリー作成処理ルーチンに、図14に示されるステップを追加する。
【0152】
図5のステップ102、或いは図12のステップ402の後、ステップ600で、解析した要素が、部分木作成前にテキスト形式のまま第2記憶部18へ格納するように指定されている要素か否かを判断する。
【0153】
ここで、否定判断した場合には、第2記憶部18への格納を行わずに、図5のステップ104、或いは図12のステップ404に移行する。
【0154】
ステップ600で、肯定判断した場合には、ステップ602で、解析した要素を、テキスト形式のまま第2記憶部18に格納する。格納後は、図5のステップ116、及び図12のステップ412に移行する。
【0155】
このように、予め指定のある要素については、部分木を作成せずに第2記憶部に記憶するようにしたため、第1記憶部14におけるDOMツリーの記憶量を削減することができると共に、無駄な処理を省き、効率的にDOMツリーを作成することができる。
【0156】
[第5の実施形態]
本実施の形態では、指定された要素については、停止条件が成立したか否かに拘らず、作成された部分木を常に第2記憶部18に格納する例について説明する。
【0157】
第1から第3の実施の形態におけるDOMツリー作成処理ルーチンに、図15に示されるステップを追加する。
【0158】
図5のステップ106、或いは図12のステップ408の後、ステップ700で、部分木を作成した要素が予め第2記憶部18へ格納するように指定されている要素か否かを判断する。
【0159】
ここで、否定判断した場合には、第2記憶部18への格納を行わずに、図5のステップ108、或いは図12のステップ410に移行する。
【0160】
ステップ700で、肯定判断した場合には、ステップ702の第2記憶部格納処理に移行し、作成された部分木を第2記憶部18に格納する処理を行う。第2記憶部格納処理は、第1の実施の形態と同様であるため説明を省略する。格納後は、図5のステップ116、及び図12のステップ412に移行する。
【0161】
このように、予め指定のある要素については、停止条件が成立したか否かに拘らず、作成された部分木を第2記憶部に記憶するようにしたため、第1記憶部14におけるDOMツリーの記憶量を削減することができる。
【0162】
[第6の実施形態]
本実施の形態では、第2記憶部18に同じ要素名を有する要素を複数格納する場合には、該同じ要素名に所定の番号を対応付けておき、該要素名を対応付けられた番号に置換えて記憶する例について説明する。
【0163】
図16は、複数の同じ要素名が記述されたXML文書の一例を示した図である。図示されるように、catalog、booknameという名前の要素が複数記述されている。
【0164】
図17は、図16のXML文書を基に作成されたDOMツリーを示した図である。
【0165】
ここで、catalog、booknameという要素名のそれぞれに所定の番号を対応付ける。図18は、その対応付けを格納したテーブルの一例である。catalogという要素名には番号1が対応付けられ、booknameという要素名には番号2が対応付けられている。XMLプロセッサ10は、同じ名前の要素名が複数存在する場合には、該要素名に所定の番号を対応付け、このテーブルに逐次登録する。
【0166】
図19は、図18に示されたテーブルを用いて、各要素名を対応付けられた番号におきかえた状態を示している。図示されるように、catalogという要素名は番号1に置換えられ、booknameという要素名は番号2に置換えられている。
【0167】
このように、複数の同じ要素名を対応付けられた番号に置換えて格納することにより、記憶量を削減することができる。
【0168】
なお、要素名に限らず、要素に付されている属性(要素の特性を示す情報)の名前(属性名)についても、同じ名前が複数存在する場合には、同様にしてテーブルを用いて所定の番号を対応付け、該番号に置換えて記憶するようにすることができる。
【0169】
【発明の効果】
以上説明したように、複数の要素が階層的に記述された文書を解析する解析処理と、解析処理の解析結果に基づいて、該文書を構成する各要素をノードとする木構造で表現したオブジェクトを作成する作成処理と、該作成処理により作成されたオブジェクトを記憶する記憶処理と、を繰り返す間に、予め定められた停止条件が成立したと判断された場合に、解析処理、作成処理、及び記憶処理の少なくとも1つが停止されるようにしたため、記憶容量が不足して、作成した木構造のオブジェクトを記憶できずにエラーが発生する前に、処理状態に応じて処理を停止することができる、という効果を奏する。
【図面の簡単な説明】
【図1】図1(A)は、本実施の形態に係る構造化文書処理システムの機能構成と、構造化文書処理システムで行われる処理を概念的に示した図であり、図1(B)は、図1(A)で示された構造化文書処理システムの機能構成と、構造化文書処理システムで行われる処理とを更に詳細に示した図である。
【図2】XML文書の一例を示した図である。
【図3】図2のXML文書を解析して作成されたDOMツリーの一例を示した図である。
【図4】XMLプロセッサの機能を実現するためのハードウェア資源としての情報処理装置の構成を示すブロック図である。
【図5】第1の実施の形態に係るDOMツリー作成処理ルーチンの流れを示したフローチャートである。
【図6】第2記憶部格納処理の流れを示すフローチャートである。
【図7】停止条件成立時の処理の流れを示すフローチャートである。
【図8】XML文書の一例を示した図である。
【図9】図8のXML文書から作成されて第1記憶部に格納されているDOMツリーの一例を示した図である。
【図10】Namespaceを定義するテーブルの一例である。
【図11】定義された接頭辞を用いて記述されているXML文書の一例を示した図である。
【図12】第2の実施の形態に係るDOMツリー作成処理ルーチンの流れを示したフローチャートである。
【図13】第3の実施の形態に係る停止条件成立時の処理の流れを示すフローチャートである。
【図14】第4の実施の形態に係る追加ステップを示した図である。
【図15】第5の実施の形態に係る追加ステップを示した図である。
【図16】複数の同じ要素名が記述されたXML文書の一例を示した図である。
【図17】図16のXML文書を基に作成されたDOMツリーを示した図である。
【図18】要素名と番号との対応付けを格納したテーブルの一例である。
【図19】図18に示されたテーブルを用いて、各要素名を対応付けられた番号におきかえた状態を示した図である。
【符号の説明】
10 XMLプロセッサ
11 情報処理装置
14 第1記憶部
18 第2記憶部
20 CPU
24 ROM
50 上位XMLアプリケーション[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information processing apparatus, an information processing method, and a program for processing a document in which a plurality of elements are hierarchically described. In particular, an object expressed in a tree structure in which each element constituting the document is a node. The present invention relates to an information processing apparatus, an information processing method, and a program to be created.
[0002]
[Prior art]
XML (extensible Markup Language) is known as a unified standard for enabling a data format that has been dispersed by a computer or application to be used by different computers or applications. XML is a typical standard for structured documents that hierarchically describe a plurality of elements.
[0003]
DOM (Document Object Model) is known as an API (Application Programming Interface) for operating a structured document such as an XML document by an application. DOM is an API for handling a structured document as a tree-structured object.
[0004]
By converting the structured document to DOM, the application can recognize the tree structure of the structured document and can access necessary elements by tracing the tree.
[0005]
However, when converting a structured document to DOM, the larger the size of the structured document, the larger the tree-structured object after conversion, and a larger storage capacity is required to store this. Even when the hierarchy is deep, a large storage capacity is required to represent the hierarchical structure. Therefore, there is a problem that even if the tree structure is converted, the data cannot be stored in the storage device due to a lack of capacity, the process is interrupted and the processing is interrupted, or even if the data can be stored, the access efficiency is deteriorated.
[0006]
As a device for reducing the necessary storage capacity, a device (see, for example, Patent Document 1) that reduces the amount of operation memory by reducing the hierarchy of structured documents and improves data access efficiency, or a plurality of devices. There is known an apparatus (for example, see Patent Document 2) that combines the above elements together with information indicating their positional relationship as one element.
[0007]
[Patent Document 1]
JP 2002-297469 A
[Patent Document 2]
JP 2002-108850 A
[0008]
[Problems to be solved by the invention]
However, since the conventional apparatus described above is an apparatus that performs processing without determining an actual processing state (for example, the amount of object creation), the operation storage capacity may not be reduced as much as necessary. Therefore, even if converted to a tree structure, the problem that the process cannot be stored in the storage device due to a lack of capacity and the process is interrupted, and the problem that the access efficiency is deteriorated even if stored can still be solved. Not.
[0009]
The present invention has been proposed in order to solve the above-described problem. During the process of converting a document that hierarchically describes a plurality of elements into a tree structure, the tree after conversion due to insufficient storage capacity is provided. An object of the present invention is to provide an information processing apparatus, an information processing method, and a program that can stop processing according to a processing state before an error occurs because an object of a structure cannot be stored.
[0010]
[Means for Solving the Problems]
In order to achieve the above object, an information processing apparatus of the present invention includes an input unit that inputs a document in which a plurality of elements are hierarchically described, an analysis process that analyzes the document input by the input unit, Based on the analysis result of the analysis process, a creation process for creating an object expressed in a tree structure with each element constituting the document as a node and a storage process for storing the object created by the creation process are repeated. A processing unit; a determination unit that determines whether or not a predetermined stop condition is satisfied; and when the determination unit determines that the stop condition is satisfied, the analysis process, the creation process, and the And control means for controlling the processing means so that at least one of the storage processes is stopped.
[0011]
The input means inputs a document in which a plurality of elements are hierarchically described. A document in which a plurality of elements are described hierarchically can be, for example, a structured document represented by an XML document or the like.
[0012]
The processing means repeatedly performs analysis processing, creation processing, and storage processing. The analysis process is a process of analyzing the document input by the input unit. For example, the hierarchical structure of each element described in the document can be analyzed while reading the input document in order from the top.
[0013]
The creation process is a process of creating an object expressed in a tree structure in which each element constituting the input document is a node (node) based on the analysis result of the analysis process.
[0014]
The storage process stores the object created by the creation process. The storage medium for storing the object is not particularly limited, and may be a RAM generally used as a main memory, for example.
[0015]
The determination means determines whether or not a predetermined stop condition is satisfied. For example, when the analysis amount of the analysis process reaches a predetermined amount, when the creation amount of the creation process reaches a predetermined amount, and when a predesignated element is detected by the analysis process, In at least one of the cases, it can be determined that the stop condition is satisfied.
[0016]
The control unit controls the processing unit so that at least one of the analysis process, the creation process, and the storage process is stopped when the determination unit determines that the stop condition is satisfied.
[0017]
Thus, when it is determined that the stop condition is satisfied, the processing means is controlled so that at least one of the analysis process, the creation process, and the storage process is stopped. Before the generated tree-structured object cannot be stored and an error occurs, at least one of the analysis processing, creation processing, and storage processing of the processing means can be stopped.
[0018]
Furthermore, the information processing apparatus according to the present invention may further include a deleting unit that deletes the node of the stored object after the stop condition is satisfied.
[0019]
The deletion means may delete the stored object node when an external instruction is received after the stop condition is satisfied.
[0020]
In other words, the deletion unit can perform deletion when receiving an instruction from the outside to delete the created object from an application that refers to or manipulates the created object.
[0021]
The deletion unit preferentially deletes a node having a deep hierarchy and a node higher than the node when deleting a node, and preferentially deletes a node constituting a tree starting from an element having a low reference count. , Delete preferentially the nodes that make up the tree starting from the element that has elapsed since the last reference, other than the nodes that make up the tree starting from the element referenced by other elements Delete nodes preferentially, delete nodes that make up a tree starting from a predesignated element, delete each element belonging to a predefined set, delete according to a predetermined priority order It is also possible to execute at least one of preferentially deleting a node constituting a tree starting from an element designated from the outside.
[0022]
For example, a tree including nodes with deep hierarchies requires a larger storage capacity for representing the hierarchies. Therefore, it is preferable to delete a node having a deep hierarchy and a node higher than the node with priority.
[0023]
For example, in the case of an element that has been referred to by an application that refers to an object created in the past, the possibility that it will be referred to in the future is low. For this reason, it is preferable to preferentially delete the nodes constituting the tree starting from an element with a low reference count. Note that “reference” here includes a case where an application manipulates an object.
[0024]
For example, when a long time has passed since the last reference by an application that refers to the created object, there is a low possibility that it will be referred to in the future. For this reason, it is preferable to preferentially delete nodes constituting a tree starting from an element having a long elapsed time since the last reference. Similarly, “reference” here includes a case where an application manipulates an object.
[0025]
For example, when other elements use information of an element, that is, when an element refers to an element, if the referenced element is deleted, the other element that refers to the element is referred to The previous information becomes unusable. For this reason, it is preferable to preferentially delete nodes other than the nodes constituting the tree starting from an element referred to by another element.
[0026]
For example, if an element that is unlikely to be referred to in advance is known, the element can be designated in advance, and nodes constituting the tree starting from the element can be preferentially deleted.
[0027]
For example, if the elements to be referenced differ for each service provided by the application that refers to the created object, define each service and the element to be referenced by each service (elements belonging to the service). It can also be deleted. In this way, it is possible to delete each element belonging to a predefined set.
[0028]
For example, when an element that is unlikely to be referred to in advance or an element that is highly likely to be referenced is known, if a priority order is determined in advance, the element can be deleted according to the priority order.
[0029]
For example, when an element to be deleted is designated in advance, nodes constituting a tree starting from the designated element can be preferentially deleted.
[0030]
Further, the control means can further control to store the information of the node deleted by the deleting means in a storage area different from the storage area stored in the storage processing.
[0031]
The control means can also be controlled to store in the other storage area when receiving an instruction from the outside.
[0032]
The control unit can also control to store the information of the node deleted by the deletion unit as text data.
[0033]
That is, by storing the deleted node information as text data without storing it as a tree-structured object, the data size to be stored is reduced.
[0034]
When there are a plurality of the same element names or a plurality of the same attribute names, the control means can also control to store these element names or attribute names by replacing them with associated numbers.
[0035]
That is, the data size to be stored is reduced by replacing a plurality of identical element names with associated numbers and storing them. Further, not only the element name but also the name (attribute name) of the attribute (information indicating the characteristic of the element) attached to the element is stored in the same manner when there are a plurality of the same names. be able to.
[0036]
The information processing apparatus of the present invention further includes a restart condition determining unit that determines whether or not a predetermined restart condition is satisfied, and the control unit is configured to execute the restart condition determining unit by the restart condition determining unit after the stop condition is satisfied. When it is determined that the restart condition is satisfied, the stop may be released, and the processing unit may be controlled so that the stopped process is restarted.
[0037]
The restart condition determining means determines whether or not a predetermined restart condition is satisfied. For example, it is determined that the restart condition is satisfied in at least one of a case where a restart instruction is received from the outside and a storage amount of the object stored by the storage process is equal to or less than a predetermined amount. You can also do it.
[0038]
The control means releases the stop and controls the processing means so that the stopped process is resumed when the restart condition determining means determines that the restart condition is satisfied after the stop condition is satisfied.
[0039]
The processing means may be configured not to perform the creation process for the element and elements subordinate to the element when a previously designated element is detected in the analysis process.
[0040]
The element that designates not to perform the creation process can be, for example, an element that is less frequently referenced / operated by an application that references / operates the created object.
[0041]
In the storage process of the processing means, the information of the element that has not been subjected to the creation process and the element subordinate to the element is stored in a storage area that is different from the storage area that stores the created object. You can also.
[0042]
The information processing method of the present invention is based on an input process for inputting a document in which a plurality of elements are hierarchically described, an analysis process for analyzing the document input by the input process, and an analysis result of the analysis process A processing process for repeating a creation process for creating an object expressed in a tree structure with each element constituting the document as a node, and a storage process for storing the object created by the creation process; and a predetermined process step A determination step for determining whether or not a stop condition is satisfied; and when the determination step determines that the stop condition is satisfied, stop at least one of the analysis process, the creation process, and the storage process And a stopping process.
[0043]
According to this information processing method, when it is determined that the stop condition is satisfied, at least one of the analysis process, the creation process, and the storage process is stopped. Before an error occurs because the tree-structured object cannot be stored, at least one of the analysis process, the creation process, and the storage process can be stopped.
[0044]
The information processing method of the present invention may further include a deletion step of deleting the stored object node after the stop condition is satisfied.
[0045]
The information processing method of the present invention may further include a storage step of storing the node information deleted in the deletion step in a storage area different from the storage area stored in the storage process.
[0046]
In the information processing method of the present invention, a restart condition determination step for determining whether or not a predetermined restart condition is satisfied, and after the stop condition is satisfied, the restart condition determination step determines that the restart condition is satisfied. In this case, it may be configured to further include a restarting step for releasing the stop and restarting the stopped process.
[0047]
The program of the present invention is based on an input process for inputting a document in which a plurality of elements are hierarchically described in a computer, an analysis process for analyzing the document input by the input process, and an analysis result of the analysis process And a processing step for repeating a creation process for creating an object expressed in a tree structure having each element constituting the document as a node and a storage process for storing the object created by the creation process, A determination step for determining whether or not the stop condition is satisfied, and when the determination step determines that the stop condition is satisfied, at least one of the analysis process, the creation process, and the storage process is performed. And a stop step for stopping.
[0048]
When it is determined that the stop condition is satisfied by causing the computer to execute such a program, the storage capacity is insufficient because at least one of the analysis process, the creation process, and the storage process is stopped. At least one of the analysis process, the creation process, and the storage process can be stopped before the generated tree-structured object cannot be stored and an error occurs.
[0049]
The storage medium for storing the program is not particularly limited, and may be a ROM, a CD-ROM, a DVD disk, a magneto-optical disk, an IC card, a hard disk, or the like, or a carrier wave on a telecommunication line. It may be a simple transmission medium.
[0050]
The program of the present invention may further include a deletion step of deleting the stored object node after the stop condition is satisfied.
[0051]
The program of the present invention may further include a storage step of storing the information of the node deleted by the deletion step in a storage area different from the storage area stored in the storage process.
[0052]
The program of the present invention determines that the restart condition is satisfied by the restart condition determining step for determining whether or not a predetermined restart condition is satisfied, and after the stop condition is satisfied, by the restart condition determining step. In this case, it may be configured to further include a restarting step for releasing the stop and restarting the stopped process.
[0053]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings.
[0054]
[First Embodiment]
FIG. 1A is a diagram conceptually showing the functional configuration of the structured document processing system according to the present embodiment and the processing performed in the structured document processing system. As shown in the figure, when an
[0055]
FIG. 1B is a diagram showing in more detail the functional configuration of the structured document processing system shown in FIG. 1A and the processing performed in the structured document processing system.
[0056]
In (1), in order for the
[0057]
In (2), the
[0058]
FIG. 2 shows an example of the
[0059]
Specifically, the
[0060]
Further, the
[0061]
FIG. 3 shows an example of a
[0062]
The portion indicated by (1) in FIG. 3 is a subtree (part of the entire tree) corresponding to the description of the scan element in (1) in FIG. Also, the part indicated by (2) in FIG. 3 is a subtree corresponding to the description of the storage element in (2) in FIG.
[0063]
Thus, the
[0064]
In (3), the
[0065]
FIG. 4 is a block diagram showing a configuration of the
[0066]
As illustrated, the
[0067]
The
[0068]
The network I /
[0069]
The
[0070]
The
[0071]
The 1st memory |
[0072]
The input /
[0073]
The
[0074]
Hereinafter, the DOM tree creation processing routine will be described with reference to FIG.
[0075]
In
[0076]
In step 102, the acquired XML document is analyzed. As described above, by detecting the start tag and the end tag in order, the structure and contents of each element described by these tags are analyzed.
[0077]
In step 104, a tree-structured object (DOM tree) is created based on the analysis result in step 102. More specifically, a DOM tree is created as a subtree having the analyzed element as a node.
[0078]
Hereinafter, the process for creating the subtree is referred to as a subtree creation process, and will be described separately from the DOM tree creation process. Also, the DOM tree created by this partial tree creation process is referred to as a partial tree, and will be described separately from the entire DOM tree.
[0079]
In step 106, it is determined whether or not the free space of the
[0080]
FIG. 6 is a flowchart showing the flow of the second storage unit storage process.
[0081]
In
[0082]
After storing the created subtree in the
[0083]
The stop condition is set in advance. Here, the amount of memory used to store the DOM tree is determined in advance, and the amount of DOM tree creation (accumulation of the amount of subtree creation) is set to the predetermined amount. It is set so that it is determined that the stop condition is satisfied when it is reached. The amount of memory used can be set arbitrarily.
[0084]
Further, it may be set so that it is determined that the stop condition is satisfied when a predesignated element is detected during the analysis processing in step 102. The designation of this element can also be arbitrarily set in advance by the user.
[0085]
Furthermore, it is determined that the stop condition is satisfied when at least one of the case where the creation amount of the DOM tree reaches a predetermined amount and when a predetermined element is detected. It may be set as follows.
[0086]
If it is determined in step 112 that the stop condition is not satisfied, the process proceeds to step 116 to determine whether or not the analysis of the entire XML document has been completed.
[0087]
If it is determined in
[0088]
If it is determined in step 112 that the stop condition is satisfied, the process proceeds to step 114 to perform processing when the stop condition is satisfied.
[0089]
FIG. 7 is a flowchart showing the flow of processing when the stop condition is satisfied.
[0090]
In
[0091]
In
[0092]
If it is determined in
[0093]
For example, a node having a deep hierarchy and a node higher than the node may be searched, and the node may be deleted preferentially.
[0094]
Hereinafter, this search process will be described in detail with reference to FIGS. FIG. 8 shows an original XML document, and FIG. 9 shows a DOM tree created from the XML document of FIG. 8 and stored in the
[0095]
As shown in FIG. 9, the author element of the subtree surrounded by the dotted line {circle over (3)} is subordinate to a node having a deeper hierarchy than other elements p and title of the same hierarchy. For example, the element node (first, last) and the text node (aaa, bbb, ssss) are deeper than the hierarchy of the node at the end of the subtree starting from the other element p, title.
[0096]
Therefore, the node searched as a deletion target here is a node of the subtree surrounded by the dotted line (3).
[0097]
By making such a node to be deleted, the free capacity of the
[0098]
The deletion request of the
[0099]
In
[0100]
In addition, instead of acquiring a deletion request, if a second storage unit storage request is acquired in step 308, the same processing as in
[0101]
After the processing of
[0102]
If the determination in
[0103]
In step 320, it is determined whether or not a request for resuming processing (resume request) has been acquired from the
[0104]
In FIG. 5, the processing from step 102 to step 116 is repeated until affirmative determination is made in
[0105]
If an affirmative determination is made in
[0106]
As described above, the process stops while repeating the process of analyzing the input XML document, the process of creating a subtree based on the analysis result, and the process of storing the created subtree in the
[0107]
Moreover, since the node of the DOM tree memorize | stored in the 1st memory |
[0108]
In addition, since the deleted node information is stored in the
[0109]
In addition, after the stop condition is satisfied, when the storage amount of the DOM tree stored in the
[0110]
Note that the deletion process is not limited to the above-described example. For example, the deletion process may be performed for each element belonging to a predefined set. Furthermore, a priority order may be set for each defined set, and may be deleted from elements belonging to a set with a higher (or lower) priority order. As a method for defining a set, for example, when a document to be handled is an XML document, a standard called XML Namespace can be adopted.
[0111]
Namespace is used to specify which set an element belongs to.
[0112]
Hereinafter, an example in which a set is defined using Namespace and a priority order is provided for each defined set will be described with reference to FIGS. 10 and 11.
[0113]
FIG. 10 is an example of a table that defines Namespace, and is registered in the
[0114]
FIG. 11 shows an example of an XML document described using a defined prefix.
[0115]
As illustrated, an element in which a prefix is described (for example, an element indicated by <a: action> and </ a: action>) is considered to belong to a service. In addition, an element in which the prefix b is described (for example, an element indicated by <b: action> and </ b: action>) is considered to belong to b service. An element without a prefix description is regarded as not belonging to any service. If it is set so that a service with a low priority is preferentially deleted, a node of an element date without a prefix description and a node subordinate to the node according to the table shown in FIG. Will be deleted preferentially.
[0116]
For example, when an element is used for a printing service, if it is referred to once, it is often not referred to thereafter. Therefore, the priority is set low so that it is deleted preferentially, and when used for a screen display service, it is referred again. Therefore, it is possible to prevent deletion by setting a high priority.
[0117]
Furthermore, the deletion process is not limited to such an example. For example, a node constituting a subtree starting from an element with a low reference count may be deleted preferentially or lastly referred to. You may make it delete preferentially the node which comprises the subtree starting from the element with the long elapsed time from time. Elements that have a low number of references or elements that have a long elapsed time since the last reference are considered to be less likely to be referenced or operated by the higher-
[0118]
In addition, it is preferable not to delete a node constituting a subtree starting from an element that is referenced by another element. For example, an element referred to by another element using XPath used in XML is excluded from the deletion target. XPath is a language that describes position information of nodes that constitute a DOM tree. If Xpath indicating the position information of a certain element is held in another element, the other element can refer to the content of the element designated by the Xpath. If an element that is referenced by another element is deleted, the contents of the deleted element cannot be referenced by other elements. Therefore, the nodes that make up the subtree starting from such an element are not subject to deletion. It is preferable.
[0119]
In addition, when an element that is unlikely to be referenced in advance is known, the element may be designated in advance, and nodes constituting the tree starting from the element may be preferentially deleted. .
[0120]
Further, a priority order may be determined for each element. Thereby, a desired DOM tree can be created.
[0121]
In addition, when an element to be deleted is designated from the
[0122]
Note that a plurality of deletion processes may be executed, or any one of them may be executed.
[0123]
Such a deletion method may be set in the
[0124]
[Second Embodiment]
In the first embodiment, the stop condition is satisfied when the amount of DOM tree creation (accumulation of the amount of subtree creation) reaches a predetermined amount or when a predesignated element is detected. In the present embodiment, an example in which the analysis amount of the analysis process is used instead of the creation amount of the DOM tree will be described.
[0125]
Note that the hardware configuration and software configuration in the present embodiment are the same as those in the first embodiment, and a description thereof will be omitted.
[0126]
FIG. 12 is a flowchart showing the flow of the DOM tree creation processing routine according to the present embodiment.
[0127]
In this embodiment, after the structured document acquisition process in step 400 and the analysis process in
[0128]
In the present embodiment, the stop condition is determined to be satisfied when the analysis amount (cumulative) of the analysis process reaches a predetermined amount. The amount of analysis here is the amount of the XML document read and analyzed by the
[0129]
Further, similarly to the first embodiment, it may be set so that the stop condition is determined to be satisfied when an element designated in advance is detected during the analysis processing in
[0130]
Furthermore, it is determined that the stop condition is satisfied when the analysis amount (accumulation) of the analysis processing reaches a predetermined amount and / or when a predesignated element is detected. It may be set so that.
[0131]
If it is determined in step 404 that the stop condition is not satisfied, the process proceeds to step 408, and a subtree is created based on the analysis result in
[0132]
If it is determined in step 404 that the stop condition is satisfied, the process proceeds to step 406, and processing when the stop condition is satisfied is performed. Since the processing when the stop condition is satisfied is the same as that in the first embodiment, description thereof is omitted.
[0133]
After the processing when the stop condition is satisfied, the process proceeds to step 408, and the creation of the subtree is resumed based on the analysis result of
[0134]
In step 410, the created subtree is stored in the
[0135]
In
[0136]
If it is determined in
[0137]
As described above, since whether or not the stop condition is satisfied is determined based on the analysis amount of the analysis process, it can be determined whether or not the stop condition is satisfied before the subtree creation process and the storage process. It is possible to increase the free capacity of the
[0138]
The determination of the establishment of the stop condition is not limited to the example shown in the first embodiment and the second embodiment. For example, when the analysis amount (cumulative) of the analysis process reaches a predetermined amount, It is set so that the stop condition is determined to be satisfied when the amount of DOM tree creation reaches a predetermined amount and / or when a predetermined element is detected. It may be.
[0139]
[Third Embodiment]
In the processing when the stop condition is satisfied in the first embodiment and the second embodiment, when the
[0140]
FIG. 13 is a flowchart showing a process flow when the stop condition is satisfied according to the present embodiment.
[0141]
In
[0142]
In step 502, the node searched in
[0143]
In step 504, it is determined whether or not the deleted node information is stored in the
[0144]
Note that it may be set so that only elements designated in advance are stored in the second storage unit. In this case, the second storage unit storing process is executed only when the specified element node and the Text node indicating the contents of the element are deleted.
[0145]
If it is set not to perform any storage in the
[0146]
In
[0147]
If the determination in
[0148]
In step 520, it is determined whether or not a request for resuming processing (resume request) has been acquired from the
[0149]
As described above, the process when the stop condition is satisfied can be automatically determined and the deletion process and the storage process can be performed without acquiring the deletion request from the
[0150]
[Fourth Embodiment]
In the present embodiment, an example in which the designated element is stored in the
[0151]
Steps shown in FIG. 14 are added to the DOM tree creation processing routine in the first to third embodiments.
[0152]
After step 102 in FIG. 5 or step 402 in FIG. 12, whether or not the element analyzed in
[0153]
Here, if a negative determination is made, the process proceeds to step 104 in FIG. 5 or step 404 in FIG. 12 without performing storage in the
[0154]
If an affirmative determination is made in
[0155]
As described above, since elements that have been designated in advance are stored in the second storage unit without creating a subtree, the amount of storage of the DOM tree in the
[0156]
[Fifth Embodiment]
In the present embodiment, an example will be described in which a created partial tree is always stored in the
[0157]
Steps shown in FIG. 15 are added to the DOM tree creation processing routine in the first to third embodiments.
[0158]
After step 106 in FIG. 5 or step 408 in FIG. 12, in step 700, it is determined whether or not the element that created the subtree is an element that is designated in advance to be stored in the
[0159]
Here, if a negative determination is made, the process proceeds to step 108 in FIG. 5 or step 410 in FIG. 12 without storing in the
[0160]
If an affirmative determination is made in step 700, the process proceeds to the second storage unit storage process in
[0161]
As described above, since the created partial tree is stored in the second storage unit for the element designated in advance regardless of whether or not the stop condition is satisfied, the DOM tree in the
[0162]
[Sixth Embodiment]
In the present embodiment, when a plurality of elements having the same element name are stored in the
[0163]
FIG. 16 is a diagram showing an example of an XML document in which a plurality of the same element names are described. As shown in the figure, a plurality of elements named catalog and bookname are described.
[0164]
FIG. 17 is a diagram showing a DOM tree created based on the XML document of FIG.
[0165]
Here, a predetermined number is associated with each of the element names “catalog” and “bookname”. FIG. 18 is an example of a table storing the correspondence.
[0166]
FIG. 19 shows a state in which each element name is replaced with an associated number using the table shown in FIG. As shown in the figure, the element name “catalog” is replaced with the
[0167]
In this way, the storage amount can be reduced by replacing a plurality of identical element names with associated numbers and storing them.
[0168]
Note that not only the element name but also the name (attribute name) of the attribute (information indicating the characteristic of the element) attached to the element, when there are a plurality of the same names, the table is used in the same manner. The numbers can be associated with each other and stored in place of the numbers.
[0169]
【The invention's effect】
As described above, an analysis process for analyzing a document in which a plurality of elements are described hierarchically, and an object expressed in a tree structure with each element constituting the document as a node based on the analysis result of the analysis process When it is determined that a predetermined stop condition is satisfied while repeating the creation process for creating the object and the storage process for storing the object created by the creation process, the analysis process, the creation process, and Since at least one of the storage processes is stopped, the process can be stopped according to the processing state before an error occurs because the created tree structure object cannot be stored due to insufficient storage capacity. , Has the effect.
[Brief description of the drawings]
1A is a diagram conceptually showing a functional configuration of a structured document processing system according to the present embodiment and processing performed in the structured document processing system; FIG. FIG. 2 is a diagram showing in more detail the functional configuration of the structured document processing system shown in FIG. 1A and the processing performed in the structured document processing system.
FIG. 2 is a diagram showing an example of an XML document.
FIG. 3 is a diagram showing an example of a DOM tree created by analyzing the XML document of FIG. 2;
FIG. 4 is a block diagram showing a configuration of an information processing apparatus as hardware resources for realizing the functions of an XML processor.
FIG. 5 is a flowchart showing a flow of a DOM tree creation processing routine according to the first embodiment.
FIG. 6 is a flowchart showing a flow of second storage unit storage processing;
FIG. 7 is a flowchart showing a flow of processing when a stop condition is satisfied.
FIG. 8 is a diagram showing an example of an XML document.
9 is a diagram showing an example of a DOM tree created from the XML document of FIG. 8 and stored in the first storage unit.
FIG. 10 is an example of a table defining Namespace.
FIG. 11 is a diagram showing an example of an XML document described using a defined prefix.
FIG. 12 is a flowchart showing a flow of a DOM tree creation processing routine according to the second embodiment.
FIG. 13 is a flowchart showing a flow of processing when a stop condition is satisfied according to the third embodiment.
FIG. 14 is a diagram showing additional steps according to the fourth embodiment.
FIG. 15 is a diagram showing additional steps according to the fifth embodiment.
FIG. 16 is a diagram showing an example of an XML document in which a plurality of the same element names are described.
17 is a diagram showing a DOM tree created based on the XML document of FIG.
FIG. 18 is an example of a table storing associations between element names and numbers.
FIG. 19 is a diagram showing a state in which each element name is replaced with an associated number using the table shown in FIG.
[Explanation of symbols]
10 XML processor
11 Information processing device
14 First storage unit
18 Second storage unit
20 CPU
24 ROM
50 Top XML applications
Claims (21)
前記入力手段により入力された文書を解析する解析処理と、前記解析処理の解析結果に基づいて、前記文書を構成する各要素をノードとする木構造で表現したオブジェクトを作成する作成処理と、前記作成処理により作成されたオブジェクトを記憶する記憶処理と、を繰り返す処理手段と、
予め定められた停止条件が成立したか否かを判断する判断手段と、
前記判断手段により前記停止条件が成立したと判断された場合に、前記解析処理、前記作成処理、及び前記記憶処理の少なくとも1つが停止されるように前記処理手段を制御する制御手段と、
を含む情報処理装置。An input means for inputting a document in which a plurality of elements are described hierarchically;
An analysis process for analyzing the document input by the input unit; a creation process for creating an object expressed in a tree structure with each element constituting the document as a node based on an analysis result of the analysis process; A storage means for storing the object created by the creation process,
Determining means for determining whether or not a predetermined stop condition is satisfied;
Control means for controlling the processing means so that at least one of the analysis process, the creation process, and the storage process is stopped when the determination means determines that the stop condition is satisfied;
An information processing apparatus including:
階層が深いノード及び該ノードより上位のノードを優先的に削除する、
参照回数の少ない要素を起点とする木を構成するノードを優先的に削除する、
最後に参照されたときからの経過時間が長い要素を起点とする木を構成するノードを優先的に削除する、
他の要素から参照されている要素を起点とする木を構成するノード以外のノードを優先的に削除する、
予め指定された要素を起点とする木を構成するノードを優先的に削除する、
予め定義された集合に属する要素毎に削除する、
予め定められた優先順位に従って削除する、
外部から指定された要素を起点とする木を構成するノードを優先的に削除する、
の少なくとも1つを実行する請求項3または請求項4記載の情報処理装置。The deleting means, when deleting a node,
Delete a node having a deep hierarchy and a node higher than the node with priority;
Delete nodes that make up the tree starting from an element with a low reference count,
Delete preferentially the nodes that make up the tree starting from an element that has a long elapsed time since it was last referenced,
Delete nodes preferentially other than the nodes that make up the tree starting from an element referenced by another element;
Delete preferentially the nodes that make up the tree starting from a pre-designated element;
Delete each element belonging to a predefined set,
Delete according to a predetermined priority,
Deletes the nodes that make up the tree starting from the element specified externally,
The information processing apparatus according to claim 3 or 4, wherein at least one of the following is executed.
前記制御手段は、前記停止条件の成立後、前記再開条件判断手段により前記再開条件が成立したと判断された場合に、前記停止を解除し、停止している処理が再開されるように前記処理手段を制御する請求項1乃至請求項9のいずれか1項記載の情報処理装置。A restart condition determining means for determining whether or not a predetermined restart condition is satisfied;
The control means cancels the stop and restarts the stopped process when the restart condition is determined by the restart condition determining means after the stop condition is satisfied. The information processing apparatus according to any one of claims 1 to 9, which controls the means.
前記入力工程により入力された文書を解析する解析処理と、前記解析処理の解析結果に基づいて、前記文書を構成する各要素をノードとする木構造で表現したオブジェクトを作成する作成処理と、前記作成処理により作成されたオブジェクトを記憶する記憶処理と、を繰り返す処理工程と、
予め定められた停止条件が成立したか否かを判断する判断工程と、
前記判断工程により前記停止条件が成立したと判断された場合に、前記解析処理、前記作成処理、及び前記記憶処理の少なくとも1つを停止する停止工程と、
を含む情報処理方法。An input process for inputting a document in which a plurality of elements are described hierarchically;
An analysis process for analyzing the document input in the input step, and a creation process for creating an object expressed in a tree structure with each element constituting the document as a node based on an analysis result of the analysis process; A storage process for storing the object created by the creation process,
A determination step of determining whether or not a predetermined stop condition is satisfied;
A stop step of stopping at least one of the analysis process, the creation process, and the storage process when it is determined by the determination step that the stop condition is satisfied;
An information processing method including:
前記停止条件の成立後、前記再開条件判断工程により前記再開条件が成立したと判断された場合に、前記停止を解除し、停止している処理を再開する再開工程と、
を更に含む請求項14乃至請求項16のいずれか1項記載の情報処理方法。A restart condition determination step for determining whether or not a predetermined restart condition is satisfied;
After the stop condition is satisfied, when it is determined by the restart condition determination step that the restart condition is satisfied, the restart process is performed to release the stop and restart the stopped process;
The information processing method according to any one of claims 14 to 16, further comprising:
複数の要素が階層的に記述された文書を入力する入力工程と、
前記入力工程により入力された文書を解析する解析処理と、前記解析処理の解析結果に基づいて、前記文書を構成する各要素をノードとする木構造で表現したオブジェクトを作成する作成処理と、前記作成処理により作成されたオブジェクトを記憶する記憶処理と、を繰り返す処理工程と、
予め定められた停止条件が成立したか否かを判断する判断工程と、
前記判断工程により前記停止条件が成立したと判断された場合に、前記解析処理、前記作成処理、及び前記記憶処理の少なくとも1つを停止する停止工程と、
を実行させるためのプログラム。On the computer,
An input process for inputting a document in which a plurality of elements are described hierarchically;
An analysis process for analyzing the document input in the input step, and a creation process for creating an object expressed in a tree structure with each element constituting the document as a node based on an analysis result of the analysis process; A storage process for storing the object created by the creation process,
A determination step of determining whether or not a predetermined stop condition is satisfied;
A stop step of stopping at least one of the analysis process, the creation process, and the storage process when it is determined by the determination step that the stop condition is satisfied;
A program for running
前記停止条件の成立後、前記再開条件判断工程により前記再開条件が成立したと判断された場合に、前記停止を解除し、停止している処理を再開する再開工程と、
を更に含む請求項18乃至請求項20のいずれか1項記載のプログラム。A restart condition determination step for determining whether or not a predetermined restart condition is satisfied;
After the stop condition is satisfied, when it is determined by the restart condition determination step that the restart condition is satisfied, the restart process is performed to release the stop and restart the stopped process;
The program according to any one of claims 18 to 20, further comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003176378A JP2005011183A (en) | 2003-06-20 | 2003-06-20 | Information processor, information processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003176378A JP2005011183A (en) | 2003-06-20 | 2003-06-20 | Information processor, information processing method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005011183A true JP2005011183A (en) | 2005-01-13 |
Family
ID=34099273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003176378A Pending JP2005011183A (en) | 2003-06-20 | 2003-06-20 | Information processor, information processing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005011183A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8418053B2 (en) | 2005-12-28 | 2013-04-09 | Fujitsu Limited | Division program, combination program and information processing method |
JP2013168009A (en) * | 2012-02-15 | 2013-08-29 | Ntt Docomo Inc | Data exchange server and data exchange method |
-
2003
- 2003-06-20 JP JP2003176378A patent/JP2005011183A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8418053B2 (en) | 2005-12-28 | 2013-04-09 | Fujitsu Limited | Division program, combination program and information processing method |
JP2013168009A (en) * | 2012-02-15 | 2013-08-29 | Ntt Docomo Inc | Data exchange server and data exchange method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7774752B2 (en) | Runtime services for network software platform | |
RU2417419C2 (en) | Intelligent container indexing and performing search therein | |
JP4406609B2 (en) | Techniques for managing multiple hierarchies of data from a single interface | |
EP1949269B1 (en) | Managing relationships between resources stored within a repository | |
EP1039398A2 (en) | Scheme for systematically registering meta-data with respect to various types of data | |
US7930630B2 (en) | Event-based parser for markup language file | |
RU2507574C2 (en) | Page-by-page breakdown of hierarchical data | |
JP2005011339A (en) | Context association schema for computer system architecture | |
US8631032B2 (en) | Mechanisms to persist hierarchical object relations | |
JP4388929B2 (en) | Structured document structure conversion apparatus, structure conversion method, and recording medium | |
US20070168379A1 (en) | Method and apparatus for cataloging screen shots of a program | |
US20060253430A1 (en) | Method and apparatus for approximate projection of XML documents | |
JP2000076109A (en) | Data display device and data display method | |
US7451390B2 (en) | Structured document processing system, method, program and recording medium | |
JP2008234078A (en) | Information processor, information processing method, information processing program, and recording medium in which information processing program is recorded | |
JP2005011183A (en) | Information processor, information processing method, and program | |
JP4199916B2 (en) | Document management method and apparatus | |
US8601362B2 (en) | Information processing apparatus, information processing method, and computer-readable recording medium storing an information processing program | |
JP4134824B2 (en) | Information processing apparatus and program | |
CN112883249B (en) | Layout document processing method and device and application method of device | |
EP1383043A1 (en) | Organizing objects in hierarchy with automatic versioning | |
JP3982969B2 (en) | Document management device | |
JP4521413B2 (en) | Database management system and program | |
JP2003157263A (en) | Method and device for collecting information, and storage program for retrieval object character information | |
JP4265300B2 (en) | Information processing apparatus and information processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060522 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071225 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080225 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080520 |