(57)【要約】【課題】アプリケーションの処理ロジックが変更される場合においても、メモリ使用量を抑止した構文解析を実現する構造化文書の管理方法及び装置を提供する。【解決手段】構造化文書のＸＭＬ解析処理部103に対して、構造化文書の構造単位の親子兄弟属性関係パターンを、事前解析部116が解析した事前解析結果を保存する状態遷移テーブル119を付加する。また、事前解析結果に沿って状態遷移テーブル119を遷移する機能を有する状態遷移テーブル検索部117と、状態遷移時にメモリ使用量を抑制した要素ノードを生成する機能を有する省メモリ要素ノード生成部118を付加する。アプリケーションの入力となる構造化文書は、親子兄弟属性関係が等しいことが多いので、状態遷移テーブル119に沿って状態遷移が成功する確率は高い。その結果、従来の構造化文書管理装置よりもメモリ使用量を抑制することができる。【選択図】図１
2010186412.tif 000002
【特許請求の範囲】
【請求項１】
入力される構造化文書の構文解析を行う文書管理方法であって、
文書管理装置が備える構造化文書の解析処理部が、事前解析処理手段と、該事前解析処理手段が生成した状態遷移テーブルを検索する状態遷移テーブル検索手段とを有し、
前記事前解析処理手段は、入力される構造化文書の構造単位の親子兄弟関係パターンを構文解析処理前に事前解析して該親子兄弟関係を格納した状態遷移テーブルを生成し、
前記構造化文書の解析処理部は、入力された文書の構文解析処理中に、前記状態遷移テーブル検索手段により前記状態遷移テーブルを参照し、前記状態遷移テーブルに格納済みの文字列の処理が要求されている場合に、前記状態遷移テーブルに格納済みの解析結果を返すことを特徴とする文書管理方法。
【請求項２】
請求項１記載の文書管理方法であって、
前記事前解析処理手段は、出現し得ない兄弟構造や属性構造を省いたメモリ構造を、前記状態遷移テーブルに格納することを特徴とする文書管理方法。
【請求項３】
請求項１または２記載の文書管理方法であって、
前記解析処理部は、入力された文書の構文解析処理中に、構文解析中の文字列と前記状態遷移テーブルに格納した要素文字列との文字列の比較を行って文書の構文解析を実現することを特徴とする文書管理方法。
【請求項４】
入力される構造化文書の構文解析を行う文書管理装置であって、
文書管理装置が備える構造化文書の解析処理部が、事前解析処理手段と、該事前解析処理手段が生成した状態遷移テーブルを検索する状態遷移テーブル検索手段とを有し、
前記事前解析処理手段は、入力される構造化文書の構造単位の親子兄弟関係パターンを構文解析処理前に事前解析して該親子兄弟関係を格納した状態遷移テーブルを生成し、
前記構造化文書の解析処理部は、入力された文書の構文解析処理中に、前記状態遷移テーブル検索手段により前記状態遷移テーブルを参照し、前記状態遷移テーブルに格納済みの文字列の処理が要求されている場合に、前記状態遷移テーブルに格納済みの解析結果を返すことを特徴とする文書管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書管理方法及び管理装置に係り、特に、構造化文書の構文解析処理に要するメモリ使用量を抑制可能とした文書管理方法及び管理装置に関する。
【背景技術】
【０００２】
メモリ使用量を抑制可能とした構造化文書管理装置に関する従来技術として、例えば、特許文献１等に記載された技術が知られている。この従来技術は、アプリケーションに含まれる要素のうち、キーとして利用されない要素を１つの要素にまとめるデータ構造変換処理を、構文解析対象である構造化文書に施すことによって、キーとして利用されない要素のメモリ使用量を抑制することを可能としたものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１７８０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前述した従来技術による構造化文書の管理は、アプリケーションに含まれるキーとして利用されない要素についてメモリの使用量を抑制するため、アプリケーションの処理ロジックに特化したものである。このため、前述した従来技術は、アプリケーションの処理ロジックを変更すると、例えば、非キー要素であったものをキー要素として扱うようにロジックを変更すると、メモリ使用量の抑制度合いが変化してしまい、アプリケーションのロジックを変更しなければならない場合に、たとえ、構造化文書の構造に何ら変更を施さなくても、メモリ使用量に影響を及ぼしてしまうという問題点を生じさせてしまう。
【０００５】
本発明の目的は、前述した従来技術の問題点を解決し、メモリ使用量の抑制度合いが、アプリケーションの処理ロジックの変更によって、メモリ使用量の抑制度合いが影響されることを少なくして、構文解析処理におけるメモリ使用量を抑制することを可能とした構造化文書の文書管理方法及び管理装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、前述の目的を達成するために、アプリケーションの処理ロジックが変わっても構造化文書の構造が変わらない限り、メモリ使用量の抑制度合いが同程度になるような機能を構造化文書管理装置に対して付加する。
【０００７】
具体的には、本発明は、入力される構造化文書の構文解析を行う文書管理方法であって、文書管理装置が備える構造化文書の解析処理部が、事前解析処理手段と、該事前解析処理手段が生成した状態遷移テーブルを検索する状態遷移テーブル検索手段とを有し、前記事前解析処理手段は、入力される構造化文書の構造単位の親子兄弟関係パターンを構文解析処理前に事前解析して該親子兄弟関係を格納した状態遷移テーブルを生成し、前記構造化文書の解析処理部は、入力された文書の構文解析処理中に、前記状態遷移テーブル検索手段により前記状態遷移テーブルを参照し、前記状態遷移テーブルに格納済みの文字列の処理が要求されている場合に、前記状態遷移テーブルに格納済みの解析結果を返すことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、構文解析処理を行う前に「要素の親子・兄弟・属性関係が、業務システムで扱う構造化文書と同じであるような、代表的な構造化文書」を元に状態遷移テーブルを一度だけ作成し、構文解析処理中に前記状態遷移テーブルを参照することにより、構文解析処理におけるメモリ使用量を抑制することが可能となる。また、メモリ使用量の抑制度合いが、アプリケーションの処理ロジックの変更に影響されることを少なくすることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態によるＸＭＬ文書管理装置の機能構成と、その入出力データの流れの概要を示す図である。
【図２】ＸＭＬ文書の文書構造と、構文解析後のメモリ上のデータ構造とを説明する図である。
【図３】図２に示したノードツリーを詳細に示した図である。
【図４】本発明の実施形態によりメモリ使用量を抑制したノードの例について説明する図である。
【図５】代表的なＸＭＬ文書を入力として、ＸＭＬ構文解析処理の前に図１に示す事前解析部の処理で作成した状態遷移テーブルの構成を示す図である。
【図６】事前解析部が状態遷移テーブルを作成する処理の動作を説明するフローチャートである。
【図７】本発明の実施形態でのＸＭＬ文書の解析処理の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明による構造化文書の文書管理方法及び管理装置の実施形態を図面により詳細に説明する。なお、以下に説明する本発明の実施形態は、構造化文書として、構造化文書を表現する言語の１つであるＸＭＬ文書を扱うものとしている。
【００１１】
図１は本発明の一実施形態によるＸＭＬ文書管理装置の機能構成と、その入出力データの流れの概要を示す図である。
【００１２】
本発明の実施形態によるＸＭＬ文書管理装置は、主記憶装置１０２と、ＨＤＤ等の補助記憶装置１０６と、プログラムにより構成され、本発明のために設けられた各種機能部の処理を実行するＣＰＵてあるプロセッサ１０４と、図示しないキーボード、マウス等の入力装置及び表示装置、印刷装置等の出力装置とがバス１０５に接続されて構成されている計算機システムの中に構築されている。そして、補助記憶１０６には、本発明の実施形態で解析するＸＭＬ文書１０７が格納されており、また、主記憶装置１０２には、本発明の実施形態の文書管理において、文書の解析を行うＸＭＬ解析処理部１０３と、アプリケーション１１５と、ＸＭＬ解析処理部１０３により生成される状態遷移テーブル１１９とが格納されている。
【００１３】
また、ＸＭＬ解析処理部１０３は、ＸＭＬ構文解析メイン部１０８、状態遷移テーブル検索部１１７、要素開始タグ解析部１０９、要素文字チェック部１１０、属性解析・ノード生成部１１１、要素ノード生成部１１２、コンテンツ解析・テキストノード生成部１１３、要素終了タグ解析部１１４、事前解析部１１６、省メモリ要素ノード生成部１１８の各機能部を備えて構成されている。前述し各機能部は、プログラムにより構成されており、プロセッサ１０４により実行されることにより、それぞれの機能が構築されるものである。
【００１４】
補助記憶装置１０６に格納されたＸＭＬ文書１０７は、ＸＭＬ解析処理部１０３に入力され、ＸＭＬ解析処理部１０３により構文解析の処理が行われる。ＸＭＬ文書は、“要素”を基本単位とした階層構造を有する構造化文書の１つである。要素は、親子関係を持つことができる。また、要素には、“属性”という情報を付加することができる。さらに、要素は、その子として他の要素及びテキストを持つことができる。通常、ある１つの要素の子に該当する要素及びテキストを総称して、その要素の“コンテンツ”と呼ぶ。
【００１５】
前述において、一般的なＸＭＬ解析処理部１０３は、ＸＭＬ文書の基本単位である要素を構文解析する場合、ＸＭＬ構文解析メイン部１０８を起点として、要素開始タグ解析部１０９、要素文字チェック部１１０、属性解析・ノード生成部１１１、要素ノード生成部１１２、コンテンツ解析・テキストノード生成部１１３、要素終了タグ解析部１１４が順番に呼び出されて構文解析を行う。なお、ノードとは、ＸＭＬ文書を構文解析して認識された要素、属性、テキストをメモリ上に保持する単位のことである。ＸＭＬ文書に含まれる要素、属性、テキストは、構文解析処理を経ることにより、それぞれ要素ノード、属性ノード、テキストノードとしてメモリ上に保持される。ＸＭＬ解析処理部１０３は、生成された前述のノードをアプリケーション１１５に渡す。
【００１６】
要素開始タグ解析部１０９、要素終了タグ解析部１１４は、要素の開始タグ及び終了タグを字句解析する。字句解析とは、ＸＭＬ文書に含まれる文字列を、構造部分（マークアップと呼ばれる）を表す“＜”や“＞”などと、それ以外の部分とに分解する処理である。要素文字チェック部１１０は、要素に含まれる文字がＸＭＬ仕様で定義された文字に合致しているかどうかをチェックする処理である。これらの処理は比較的多くの時間を消費する。
【００１７】
本発明の実施形態は、前述したような一般的なＸＭＬ解析処理部の構成に対して、本発明により事前解析部１１６、状態遷移テーブル検索部１１７、省メモリ要素ノード生成１１８を追加し、主記憶装置１０２の上に状態遷移テーブル１１９を追加したものである。
【００１８】
図２はＸＭＬ文書の文書構造と、構文解析後のメモリ上のデータ構造とを説明する図であり、次に、これについて説明する。
【００１９】
図２（ａ）はＸＭＬ文書における要素と、要素から生成されるノードとを説明するものである。要素は、開始タグ２０１で始まり、終了タグ２０２で終わる。開始タグと終了タグとの間にはコンテンツが含まれていてもよい。コンテンツは、コンテンツ２０３（「００１」）のようにテキストだけであってもよく、コンテンツ２０４のように要素２０５（開始タグ２０１を＜コード＞、コンテンツ２０３を「００１」、終了タグを＜／コード＞とした要素）を含んでもよい。例えば、要素２０５は、テキストだけを含み、要素２０６（開始タグが＜仕入品＞、終了タグが＜／仕入品＞）は、要素とテキストの両方を含むものとしている。また、要素は属性２０７を保持することができる。
【００２０】
一般に、業務システムでＸＭＬ文書を処理するアプリケーションには、図２（ａ）に示しているような要素を複数個持ったＸＭＬ文書が、数百〜数万といったオーダで入力される。そして、図１に示して説明したＸＭＬ解析処理部１０３は、これらのＸＭＬ文書を構文解析処理する。構文解析結果は、図２（ｂ）に示すようなノードツリー２０８としてメモリ上に構築される。図２（ｂ）に示すノードツリー２０８は、図２（ａ）に示すＸＭＬ文書の要素２０６に対応するノードツリーの例である。
【００２１】
図３は図２（ｂ）に示したノードツリーを詳細に示した図である。
【００２２】
図２により説明したように、要素には親子兄弟関係及び要素−属性関係があり、これらに対応するノード間の関係をメモリ上で表現する必要があり、そのために、一般的には“参照”が使用される。参照の実装例としては、Ｊａｖａ(登録商標)言語における参照、Ｃ言語におけるポインタ等ががある。参照がメモリ上に占めるサイズは、プロセッサのバス幅に応じて３２ビットあるいは６４ビットであることが多い。
【００２３】
図３に示すノード群の最上位要素ノードである“仕入品”の要素ノード３０１は、属性及び兄弟ノードを持たないため、属性関係及び兄弟関係を表す参照３０２、３０３、３０４がnullを指している。“商品名”要素ノード３０５は、子要素ノード３０６及び属性ノード３０７を持つので、それらを参照している。また、“コード”要素ノード３０８の属性ノードへの参照はnullとなり、“備考”要素ノード３０９の子要素ノード及び属性ノードへの参照はnullとなる。通常、nullを参照していても、参照を確保するためには、メモリ領域（３２ビットあるいは６４ビット等）を確保する必要があるが、本発明の実施形態は、nullへの参照を確保しないようにすることによってメモリ使用量を抑制している。
【００２４】
図４は本発明の実施形態によりメモリ使用量を抑制したノードの例について説明する図である。
【００２５】
本発明の実施形態では、図４（ｂ）のテーブル４０１に示すように、要素ノードの種別を、兄弟要素ノードの有無、子要素ノードの有無、属性ノードの有無の組み合わせにより、ｔｙｐｅ１〜ｔｙｐｅ８の８つに分類する。要素ノードの種類をこのように分類しておくことにより、本発明の実施形態は、兄弟要素ノード、子要素ノード、属性ノードを持たない要素に対応するノードにnull参照を持たせる必要がなくなり、結果としてメモリ使用量を抑制した要素ノード（これを省メモリ要素ノードと称する）を生成することができる。
【００２６】
図４（ａ）には、図３に示したノードツリーの各ノードに前述したような分類を行った場合のノードツリーを示している。この図４（ａ）において、例えば、“備考”ノード４０２は子要素及び属性を持たないｔｙｐｅ５のノードで表現されるため、図３に示して説明した“備考”ノード３０９と比較して、null参照２つ分のメモリを節約することができる。省メモリ要素ノードを生成するためには、要素ノード生成部において、兄弟要素の有無、子要素の有無、属性の有無に応じて８種類の中から適切なノードを生成する必要がある。しかし、単に適切な要素ノードを選択的に生成する処理を、従来の解析処理部の中に挿入して増加させると、従来のＸＭＬ解析処理部の処理と比較して処理ステップが多くなり、処理性能が劣化してしまう。このため、本発明の実施形態は、予め、状態遷移テーブルを１１９を作成しておき、この状態遷移テーブルを用いて、要素ノードを高速に生成することを可能としたものである。
【００２７】
図５は代表的なＸＭＬ文書を入力として、ＸＭＬ構文解析処理の前に図１に示す事前解析部１１６の処理で作成した状態遷移テーブルの構成を示す図である。ここで示している代表的なＸＭＬ文書は、「要素の親子・兄弟・属性関係が、アプリケーションが扱うＸＭＬ文書と同じであるようなＸＭＬ文書」であり、図２に示して説明したＸＭＬ文書を例としている。図５に示す状態遷移テーブルの作成方法については後述するが、ここでは状態遷移テーブルの意味を説明する。ここに示している状態遷移テーブルは、構文解析すべき文書を事前解析部１１６に入力して事前解析部１１６が予め作成しておくものであり、実際の構文解析は、事前解析の処理の後に、構文解析すべき文書がＸＭＬ構文解析メイン部１０８に入力されて開始される。そして、図５に示す状態遷移テーブルは、構文解析時に次に説明するように利用される。
【００２８】
構文解析処理の初期状態Ｓ（５０１）において、“＜仕入品”という要素開始タグ５０２が入力されると、状態１（５０３）に遷移し、図４により説明したｔｙｐｅ３の要素ノード４０４を省メモリ要素ノードとして生成する。状態１（５０３）において、タグの終端文字である“＞”５０４が入力されると、状態２（５０５）に遷移し、図４により説明したｔｙｐｅ７の要素ノード４０３を省メモリ要素ノードとして生成する。続いて、“＜コード”という要素開始タグ５０６が入力されると、状態３（５０７）に遷移する。そして、状態３（５０７）において、タグの終端文字である“＞”とそれに続く任意のテキスト５０８が入力されると、状態４（５０９）に遷移する。状態４（５０９）において、“＜／コード＞”という要素終了タグ５１０が入力されると、状態５（５１１）に遷移する。状態５（５１１）において、“＜商品名”という要素開始タグ５１２が入力されると、状態６（５１３）に遷移し、図４により説明したｔｙｐｅ８の要素ノード４０５を省メモリ要素ノードとして生成する。状態６（５１３）において、任意の属性の並び及び任意のテキスト５１４が入力された場合、状態７（５１５）に遷移する。状態７（５１５）において、“＜／商品名＞”という要素終了タグ５１６が入力されると、状態８（５１７）に遷移する。状態８（５１７）において、“＜／備考／＞”という空要素タグ５１８が入力されると、状態９（５１９）に遷移し、図４により説明したｔｙｐｅ５の要素ノード４０２を省メモリ要素ノードとして生成する。状態９（５１９）において、“＜／仕入品＞”という要素終了タグ５２０が入力されると、状態１０（５２１）に遷移する。
【００２９】
前述したような図４に示す状態遷移図において、横方向への遷移と、縦方向への遷移とは、特に意味を持つものではない。
【００３０】
前述したように、「解析中にＸＭＬ文書から切り出した文字列」が、状態遷移テーブルの矢印上に記載された「遷移文字列」と一致すれば状態を進め、一致しなければ状態遷移テーブルの使用を終了する。一致した場合、図１における要素開始タグ解析部１０９及び要素文字チェック部１１０の処理が不要になる。なぜなら、状態遷移テーブル作成時にこれらの処理は済んでおり、必要なデータは、状態遷移テーブルが“遷移用文字列”として保持しているからである。従って、状態遷移テーブルの遷移が成功し続ければ、すなわち、入力文字列と遷移用文字列とが一致し続ければ、従来の構文解析処理が行う特定の処理をスキップすることにより構文解析処理を高速に進めつつ、メモリ使用量が少ない省メモリ要素ノードを生成することができる。
【００３１】
なお、状態遷移テーブルの遷移が失敗したとき、すなわち、入力文字列と遷移用文字列とが一致しなかった場合、従来からの通常の構文解析処理と同じように、図１における要素開始タグ解析部１０９、要素文字チェック部１１０、要素ノード生成部１１２を実行する必要がある。このため、遷移の失敗が頻発すると構文解析処理性能は劣化し、メモリ使用量も従来技術と同じというペナルティが生じることになる。しかし、前述で説明したように、本発明は、「アプリケーションの入力となる構造化文書は似通ったものになる」ことを前提としているため、ペナルティが発生する頻度は非常に少ない。
【００３２】
図６は事前解析部１１６が状態遷移テーブルを作成する処理の動作を説明するフローチャートであり、次に、これについて説明する。
【００３３】
（１）まず、状態遷移テーブル中に初期状態を作成し登録する。この初期状態の作成登録し、図５に示した初期状態Ｓ（５０１）を作成し登録することである（ステップ６０１）。
【００３４】
（２）次に「要素の親子・兄弟・属性関係が、アプリケーションが扱うＸＭＬ文書と同じであるような、代表的なＸＭＬ文書」の先頭から入力文字列を読み込み、入力文字列の種別を判定する。入力文字列の種別としては、１．要素開始タグ（“＜”から始まる）、２．要素終了タグ（“＜”から始まる）、３．テキスト（“＜”以外で始まる）のどれかである（ステップ６０２）。
【００３５】
（２）ステップ６０２の入力文字列の種別を判定で、入力文字列の種別が要素開始タグ、または、要素終了タグであった場合、現在の状態（最初は初期状態）においてその入力文字列が指す遷移先状態が既に遷移テーブル内に存在するか否かを内判定する（ステップ６０３）。
【００３６】
（３）ステップ６０３の判定で、入力文字列が指す遷移先状態が既に遷移テーブル内に存在していた場合、新たな状態を作成せずに既存の状態に遷移し（６０４）、存在しなかった場合、入力文字列である開始・終了タグを遷移先文字列とした新たな遷移先の状態を作成する（ステップ６０４〜６０６）。
【００３７】
（４）そして、ステップ６０２の入力文字列の種別を判定で、入力文字列の種別が要素開始タグであった場合、次の文字列が属性である場合があるが、属性に関する情報は状態遷移テーブルに保持しないので単にスキップし、次に、タグの終端文字である“＞”が入力されるので遷移先の状態を作成し、その状態の遷移用文字列として“＞”を設定する（ステップ６０７、６０８）。
【００３８】
（５）ステップ６０２の入力文字列の種別を判定で、入力文字列の種別がテキストであった場合、現在の状態において「任意のテキスト」が指す遷移先状態が既に存在するか否かを判定し、存在しなかった場合、「任意のテキスト」を表す特殊記号を遷移用文字列入力設定して、新たな状態を遷移先の状態として作成する（ステップ６０９〜６１１）。
【００３９】
（６）ステップ６０７、６０８、６１１の処理の後、あるいは、ステップ６０９の判定で、現在の状態において「任意のテキスト」が指す遷移先状態が既に存在していた場合、前述まての処理を、全ての要素の読み込みが終了するまで行ったか否かを判定し、終了したいなかった場合、ステップ６０２からの処理に戻って処理を繰り返し、そうでなければ、ここでの処理を終了する（ステップ６１２）。
【００４０】
前述したような事前解析部１１６での処理により、図５に説明したような遷移テーブルが生成されることになる。
【００４１】
図７は本発明の実施形態でのＸＭＬ文書の解析処理の動作を説明するフローチャートであり、次に、これについて説明する。なお、ここでの処理の開始時には、事前解析部１１６での処理により、図５に説明したような遷移テーブルが生成されている。
【００４２】
（１）まず、ＸＭＬ解析処理部１０３は、現在の状態を初期状態にリセットする。これは、カレントステートに「Ｓ」をセットする処理である（ステップ７０１）。
【００４３】
（２）次に、ＸＭＬ解析処理部１０３は、ＸＭＬ文書１０７を読み込んで、ＸＭＬ構文解析メイン部１０８が要素の読み込みを開始する（ステップ７０２）。
【００４４】
（３）状態遷移テーブル検索部１１７は、読み込み中の要素開始タグが状態遷移テーブルの現在状態から出る遷移用文字列と一致するか否かを判定し、一致していなければ、現在の状態を初期状態にリセットする。この場合、図１において、要素開始タグ解析部１０９、要素文字チェック部１１０の処理に移行して、従来技術の場合と同様な処理となる（ステップ７０３、７０４）。
【００４５】
（４）ステップ７０３の判定で、読み込み中の要素開始タグが状態遷移テーブルの現在状態から出る遷移用文字列と一致した場合、遷移用文字列に従って状態遷移し、省メモリ要素ノード生成部１１８が遷移先状態の要素typeに従って、省メモリ要素ノードを生成する（ステップ７０５、７０６）。
【００４６】
（５）次に、属性解析・ノード生成部１１１が属性があれば解析して属性ノードを生成する（ステップ７０７）。
【００４７】
（６）次に、タグの終端を表す文字“＞”が必ず出現し、その後、場合によってはテキストが出現するので、これらの文字列、すなわち、“＞”と任意のテキストを表す特殊文字とを遷移用文字列とする状態が現在の状態に隣接している場合、隣接している状態に遷移し、さもなければ現在の状態を初期状態にリセットする。ここでの処理は、コンテンツ解析・テキストノード生成部１１３により行われる（ステップ７０８）。
【００４８】
（７）次に、これまでのステップにより省メモリ要素ノードが生成されたか否かを判定し、省メモリ要素ノードが生成されていなかった場合、通常の要素ノードを生成する（ステップ７０９、７１０）。
【００４９】
（８）ステップ７１０の処理の後、あるいは、ステップ７０９の判定で、省メモリ要素ノードが生成されていた場合、要素終了タグ解析部１１４が、読み込み中の要素終了タグを表す文字列が、状態遷移図中の現在状態における遷移用文字列と一致するか否かを判定する（ステップ７１１）。
【００５０】
（９）ステップ７１１の判定で、読み込み中の要素終了タグを表す文字列が、状態遷移図中の現在状態における遷移用文字列と一致した場合、遷移用文字列に従って状態遷移し、一致しなければ、現在の状態を初期状態にリセットする（ステップ７１２、７１３）。
【００５１】
（10）ステップ７１２、７１３の処理の終了後、全ての要素の読み込みが終了し、前述の処理を行ったか否かを判定し、全ての要素に対する処理がすんでいなかった場合、ステップ７０２からの処理に戻って処理を繰り返し、全ての要素に対する処理がすんでいた場合、ここでの処理を終了する（ステップ７１４）。
【００５２】
前述した本発明の実施形態での各処理は、プログラムにより構成し、本発明が備えるＣＰＵに実行させることができ、また、それらのプログラムは、ＦＤ、ＣＤＲＯＭ、ＤＶＤ等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
【００５３】
前述した処理において、読み込み中の要素開始タグが状態遷移テーブルの現在状態から出る遷移用文字列と一致するかどうかを判定するステップ７０３の処理は、状態遷移テーブルに登録された文字列と現在解析中の入力文字列とを単純に文字列比較するだけであり、負荷の低い処理である。従来技術によるＸＭＬ構文解析処理は、要素開始タグ解析部１０９による要素タグの解析（ＸＭＬとしての字句規則に合致していることを確認する処理）及び要素文字チェック部１１０による要素文字チェック（ＸＭＬの要素名として許される文字だけが使われていることを確認する処理）という比較的負荷が高い処理が必要であった。
【００５４】
前述した本発明の実施形態によれば、入力文字列が図５に示して説明した事前解析処理で生成した状態遷移図に沿ったものであれば、言い換えると、入力ＸＭＬ文書が状態遷移テーブル生成の入力となった「要素の親子・兄弟・属性関係が、アプリケーションが扱うＸＭＬ文書と同じであるような、代表的なＸＭＬ文書」と同一構造であるという条件を満たせば、負荷が低い処理で省メモリ要素ノードを数多く生成することができる。本発明の実施形態は、これにより、高速かつメモリ使用量を抑制した構文解析処理を行うＸＭＬ文書管理装置を実現することができる。
【００５５】
一般に、アプリケーションの入力となる個々の構造化文書は、同じ構造を持つものであり、親子・兄弟・属性関係が等しいことが多い。例えば、「“仕入品”要素の子要素が、“商品名”要素」といった構造が繰り返し出現する。また、アプリケーションの入力となる複数の構造化文書が、すべて同一構造を持っていることも多い。このため、前出の例を再度用いることとすると、アプリケーションが１０００個の構造化文書を受け取った場合、個々の構造化文書のすべてが「“仕入品”要素の子要素は、“商品名”要素である」という構造をしていることが多い。
【００５６】
本発明の実施形態は、アプリケーションの入力となる構造化文書の前述のような性質に着目して処理を行っているため、構文解析の処理を高速化することができる。
【符号の説明】
【００５７】
１０１  計算機システム
１０２  主記憶装置
１０３  ＸＭＬ解析処理部
１０４  プロセッサ
１０５  バス
１０６  補助記憶装置
１０７  ＸＭＬ文書
１０８  ＸＭＬ構文解析メイン部
１０９  要素開始タグ解析部
１１０  要素文字チェック部
１１１  属性解析・ノード生成部
１１２  要素ノード生成部
１１３  コンテンツ解析・テキストノード生成部
１１４  要素終了タグ解析部
１１５  アプリケーション
１１６  事前解析部
１１７  状態遷移テーブル検索部
１１８  省メモリ要素ノード生成
１１９  状態遷移テーブル
【図１】
2010186412.tif 000003
【図２】
2010186412.tif 000004
【図３】
2010186412.tif 000005
【図４】
2010186412.tif 000006
【図５】
2010186412.tif 000007
【図６】
2010186412.tif 000008
【図７】
2010186412.tif 000009