(57)【要約】【課題】構造化文書データベースから構造化文書を取得する都度、取得された構造化文書に対するパース処理を行わなくても済むようにする。【解決手段】パース処理部１４は、クライアント端末２０から与えられる構造化文書格納要求に応じて、要求された構造化文書をパースすることによってパース後データを取得する。構造化文書更新部１３は、パース処理部１４によって取得されたパース後データをＸＭＬＤＢ１１に格納する。構造化文書参照部１５は、クライアント端末２０から与えられる構造化文書取得（検索）要求に応じて、当該要求に合致する構造化文書のデータとしてのパース後データを取得する。要求処理部１２は、構造化文書参照部１５によって取得されたパース後データをクライアント端末２０に返す。【選択図】      図１
2006127235.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書データベースを管理する構造化文書管理システムにおいて、
クライアントから与えられる構造化文書格納要求に応じて、要求された構造化文書をパースすることによってパース後データを取得するパース処理手段と、
前記パース処理手段によって取得された前記構造化文書のパース後データを前記構造化文書データベースに格納する構造化文書格納手段と、
前記クライアントから与えられる構造化文書取得要求に応じて、当該要求に合致する構造化文書のデータとしてのパース後データを前記構造化文書データベースから取得する構造化文書取得手段と、
前記構造化文書取得手段によって取得されたパース後データを前記クライアントに返す要求処理手段とを具備することを特徴とする構造化文書管理システム。
【請求項２】
前記構造化文書格納手段は、前記構造化文書のパース後データを、１つの仮想的な構造化文書の木構造の部分木として前記構造化文書データベースに格納することを特徴とする請求項１記載の構造化文書管理システム。
【請求項３】
前記構造化文書格納手段は、
前記構造化文書のパース後データから前記仮想的な構造化文書の木構造の要素となる各ノードのノード情報を取得して前記構造化文書データベースに格納する第１の格納手段と、
前記構造化文書のパース後データから前記仮想的な構造化文書の木構造の要素となる各ノードの親子兄弟関係を抽出して、当該抽出された親子兄弟関係を管理するための構造情報を前記構造化文書データベースに格納する第２の格納手段と
を含むことを特徴とする請求項２記載の構造化文書管理システム。
【請求項４】
前記構造化文書格納手段は、当該構造化文書格納手段によって前記構造化文書データベースに格納されるパース後データの元の構造化文書を元構造化文書データベースに格納することを特徴とする請求項１記載の構造化文書管理システム。
【請求項５】
前記構造化文書取得手段は、前記クライアントから与えられる元構造化文書取得要求に応じて、要求された元の構造化文書のデータを前記元構造化文書データベースから取得することを特徴とする請求項４記載の構造化文書管理システム。
【請求項６】
前記構造化文書データベースに格納されるパース後データの当該構造化文書データベースにおける格納位置を示す第１の格納位置情報と、前記元構造化文書データベースに格納される当該パース後データの元の構造化文書の当該元構造化文書データベースにおける格納位置を示す第２の格納位置情報とを対応付けて前記元構造化文書データベースに格納する元構造化文書格納位置管理手段を更に具備し、
前記元構造化文書格納位置管理手段は、前記クライアントから第２の格納位置情報による元構造化文書取得要求が与えられた場合、当該第２の格納位置情報と対応付けられている第１の格納位置情報を前記元構造化文書データベースから取得し、
前記構造化文書取得手段は、前記元構造化文書格納位置管理手段によって取得される前記第１の格納位置情報に従って、要求された元の構造化文書のデータを前記元構造化文書データベースから取得する
ことを特徴とする請求項５記載の構造化文書管理システム。
【請求項７】
前記クライアントから与えられる構造化文書検索要求に応じて前記構造化文書データベースを検索し、当該要求に合致する構造化文書のデータとしてのパース後データが格納されている前記構造化文書データベースにおける格納位置を示す第１の格納位置情報を取得する格納位置管理手段を更に具備し、
前記要求処理手段は、前記格納位置管理手段によって取得された前記第１の格納位置情報を、前記構造化文書検索要求に対する検索結果として前記クライアントに返すことを特徴とする請求項６記載の構造化文書管理システム。
【請求項８】
パース後のデータを操作するための汎用の問い合わせ言語を解析する問い合わせ言語処理手段を更に具備し、
前記構造化文書取得要求はパース後のデータを操作するための汎用の問い合わせ言語を含み、
前記構造化文書取得手段は、前記構造化文書取得要求に含まれている前記問い合わせ言語を前記問い合わせ言語処理手段により解析させ、その解析結果に従って、当該解析結果の示す要求に合致する構造化文書のデータとしてのパース後データを前記構造化文書データベースから取得する
ことを特徴とする請求項１記載の構造化文書管理システム。
【請求項９】
構造化文書管理システムにおいて構造化文書データベースを管理するための構造化文書管理方法であって、
クライアントから前記構造化文書管理システムに与えられる構造化文書格納要求に応じて、要求された構造化文書をパースするステップと、
構造化文書をパースすることによって取得されるパース後データを前記構造化文書に格納するステップと、
前記クライアントから与えられる構造化文書取得要求に応じて、当該要求に合致する構造化文書のデータとしてのパース後データを前記構造化文書データベースから取得するステップと、
前記取得されたパース後データを前記クライアントに返すステップと
を具備することを特徴とする構造化文書管理方法。
【請求項１０】
前記構造化文書データベースに格納される前記パース後データの元の構造化文書を元構造化文書データベースに格納するステップを更に具備することを特徴とする請求項９記載の構造化文書管理方法。
【請求項１１】
前記クライアントから与えられる元構造化文書取得要求に応じて、要求された元の構造化文書のデータを前記元構造化文書データベースから取得するステップと、
前記取得されたパース後データを前記クライアントに返すステップと
を更に具備することを特徴とする請求項１０記載の構造化文書管理方法。
【請求項１２】
構造化文書データベースを管理するためのプログラムであって、
コンピュータに、
クライアントから前記構造化文書管理システムに与えられる構造化文書格納要求に応じて、要求された構造化文書をパースするステップと、
構造化文書をパースすることによって取得されるパース後データを前記構造化文書に格納するステップと、
前記クライアントから与えられる構造化文書取得要求に応じて、当該要求に合致する構造化文書のデータとしてのパース後データを前記構造化文書データベースから取得するステップと、
前記取得されたパース後データを前記クライアントに返すステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書データベースを管理する構造化文書管理システム、構造化文書管理方法及びプログラムに係り、特に構造化文書のパース後データを構造化文書データベースに格納する構造化文書管理システム、構造化文書管理方法及びプログラムに関する。
【背景技術】
【０００２】
一般に、論理構造を持つ文書は構造化文書と呼ばれる。構造化文書において、当該文書の論理構造は、当該文書中に記述されたタグによって示される。このタグを用いて論理構造が表現された構造化文書は、コンピュータでの処理に適している。
【０００３】
さて、タグを用いてデータを記述する手段として、ＸＭＬ(Extensible Markup Language)が広く利用されている。ＸＭＬは、意味付けされたタグによるデータの階層化が可能で且つ構造の自由な拡張性に富むという特長を持つ。このＸＭＬを用いて記述された文書はＸＭＬ文書と呼ばれる。ＸＭＬ文書は、タグを用いて論理的に木構造で表現される構造化文書の代表として知られている。
【０００４】
一般に、ＸＭＬ文書はテキスト形式のファイルとして保存される。また、１つのファイルには１つのＸＭＬ文書が記述されることが多い。よって、複数のＸＭＬ文書は同数のテキスト形式ファイルとして保存される。
【０００５】
ＸＭＬの特長を生かしてＸＭＬ文書を格納し、且つ当該文書中の任意の論理構造（文書構造）を検索可能とするデータベースは、ＸＭＬデータベース（ＸＭＬＤＢ）と呼ばれる。またＸＭＬＤＢを管理するソフトウェアはＸＭＬＤＢ管理システム（ＸＭＬＤＢＭＳ）と呼ばれる。従来のＸＭＬＤＢＭＳは、ＸＭＬ文書をテキスト形式のまま、或いは独自のバイナリ形式でＸＭＬＤＢに格納するのが一般的である。このＸＭＬＤＢにＸＭＬ文書を格納する手法では、元の複数のＸＭＬ文書の各々がそれぞれ個々のファイルに分かれているという保存上の構成が引き継がれている。このためＸＭＬＤＢでは、複数のファイルに分かれている同数のＸＭＬ文書が、その分かれている状態で、例えばテキスト形式のまま格納される。
【０００６】
したがって、このようなＸＭＬ文書格納手法を適用したＸＭＬＤＢを、クライアント端末上で動作するアプリケーションから検索する場合、当該アプリケーションによって検索結果として取得されるＸＭＬ文書は、一般にテキスト形式となる。ここで、ＸＭＬ文書を独自のバイナリ形式で格納しているＸＭＬＤＢでは、検索結果としてのＸＭＬ文書を当該独自のバイナリ形式で返すことが可能である。しかし、独自のバイナリ形式のＸＭＬ文書では、アプリケーション側でのその後のデータ処理が困難となる。そこで、ＸＭＬＤＢから検索された独自のバイナリ形式のＸＭＬ文書を、ＸＭＬＤＢＭＳがテキスト形式に変換してからアプリケーションに返すのが一般的である。つまりＸＭＬＤＢから検索されたＸＭＬ文書は、当該ＸＭＬ文書がテキスト形式で格納されている場合は勿論、独自のバイナリ形式で格納されている場合も、テキスト形式でアプリケーションに返される。
【０００７】
一方、アプリケーションは、ＸＭＬＤＢＭＳから返されるテキスト形式のＸＭＬ文書をそのまま利用することは殆どない。即ちＸＭＬ文書を扱うアプリケーションの多くは、取得されたテキスト形式のＸＭＬ文書を、ＸＭＬプロセッサ（ＸＭＬパーサ）を用いてパース済みデータ（パース後データ）と呼ばれる当該アプリケーションにとって利用しやすい形式に変換（パース）する。このＸＭＬパーサのパース処理では、ＸＭＬ文書がＸＭＬの文法に則って記述されているかが同時に検証される。そのため、ＸＭＬ文書の内容と量によっては、パース処理はアプリケーションにとって高負荷となる。
【０００８】
また、ＸＭＬＤＢを検索した結果が複数のＸＭＬ文書に跨っている場合、得られるＸＭＬ文書は複数に分かれる。その理由は、元のＸＭＬ文書の保存上の構成がＸＭＬＤＢにおけるＸＭＬ文書の格納形態に引き継がれているためである。したがって、ＸＭＬＤＢに格納されたＸＭＬ文書のデータを検索・更新する処理はファイル単位となり、アプリケーションは、常にファイル単位を意識する必要がある。
【０００９】
ところで、複数のＸＭＬ文書の集合をＤＯＭ（Document Object Model）集合に変換してＸＭＬＤＢに格納する手法も知られている（例えば、特許文献１参照）。この格納手法を利用するならば、アプリケーションは、ＸＭＬＤＢに格納されたＸＭＬ文書のデータを検索・更新する処理で、必ずしもファイル単位を意識しなくても済む。
【特許文献１】特開２００３−１５７２４９（段落０００３及び００１３）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記したように、従来のＸＭＬＤＢにおいては、ＸＭＬ文書は当該ＸＭＬＤＢにテキスト形式あるいは独自のバイナリ形式で格納される。このため、この種のＸＭＬＤＢに格納されたＸＭＬ文書をクライアント（上で動作するアプリケーション）から検索して利用するには、検索結果として得たＸＭＬ文書をクライアント（またはＸＭＬＤＢＭＳ）でパース済みデータにパースする必要がある。
【００１１】
ところパース処理は、その性質上、クライアント（またはＸＭＬＤＢＭＳ）にとって高負荷となる可能性がある。しかも、パース処理は、ＸＭＬ文書を取得する度に必要となるため、クライアントは高い処理コストを払わなければならない可能性がある。また、ＸＭＬＤＢに格納されているＸＭＬ文書の更新処理において、その更新対象範囲がＸＭＬ文書の一部のデータである場合には、当該ＸＭＬＤＢに格納されている更新対象のデータを変更するために再度パースして変更を加え、再び元の形式に戻す処理が必要になる。
【００１２】
本発明は上記事情を考慮してなされたものでその目的は、クライアントからの要求に従って構造化文書データベースから要求に合致した構造化文書を取得する都度、当該取得された構造化文書に対するパース処理を当該クライアントまたは構造化文書管理システム側で行わなくても済む構造化文書管理システム、構造化文書管理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明の１つの観点によれば、構造化文書データベースを管理する構造化文書管理システムが提供される。このシステムは、クライアントから与えられる構造化文書格納要求に応じて、要求された構造化文書をパースすることによってパース後データを取得するパース処理手段と、このパース処理手段によって取得された構造化文書のパース後データを上記構造化文書データベースに格納する構造化文書格納手段と、クライアントから与えられる構造化文書取得要求に応じて、当該要求に合致する構造化文書のデータとしてのパース後データを上記構造化文書データベースから取得する構造化文書取得手段と、この構造化文書取得手段によって取得されたパース後データをクライアントに返す要求処理手段とを備える。
【００１４】
このような構成においては、構造化文書データベースには、構造化文書をパースした後のデータ、即ちパース後データ（パース済みデータ）が格納されるため、クライアントからの構造化文書取得要求（構造化文書の検索またはデータ取得要求）に対しては、構造化文書データベースから要求に合致した構造化文書のデータとしてパース後データを取得（検索）して、当該パース後データをクライアントに返すことができる。これにより、クライアント（クライアント上で動作するアプリケーション）、更には構造化文書管理システムは、取得した構造化文書に対するパース処理が不要となる。
【００１５】
ここで、構造化文書のパース後データが、１つの仮想的な構造化文書の木構造の部分木として構造化文書データベースに格納される構成、つまり構造化文書データベースに格納される全ての構造化文書のパース後データが、当該構造化文書データベース内で１つの木構造（データ構造）として格納される構成とすると良い。
【００１６】
このような構成においては、構造化文書データベースに格納される全ての構造化文書のパース後データの各ノード（要素）は、構造化文書データベース内の唯一の木構造のノードとなる。このため、構造化文書データベースに格納されたパース後データの元となった複数の構造化文書が同数のファイルに分かれていたとしても、クライアントは構造化文書データベースに格納されたデータに対し、ファイルの差異を意識することなく透過的に検索・更新などの処理が可能となる。
【００１７】
また、構造化文書データベースに格納されるパース後データの元の構造化文書が元構造化文書データベースに格納される構成とするならば、構造化文書データベースにパース後データの形で格納された構造化文書の原本性が、元構造化文書データベースに格納された構造化文書によって保証できる。
【００１８】
また、パース後のデータを操作するための汎用の問い合わせ言語を解析する問い合わせ言語処理手段を追加して、構造化文書取得要求（構造化文書の検索要求）での汎用の問い合わせ言語の使用を許すならば、クライアントは構造化文書取得（検索）のための専用言語を利用する必要がなく、使い慣れた言語を使うことができるため、開発生産性が向上する。
【発明の効果】
【００１９】
本発明によれば、構造化文書データベースには、構造化文書のパース後データが格納されるため、クライアントからの要求に合致した構造化文書のデータとして、当該構造化文書データベースからパース後データを取得することができる。この結果、構造化文書データベースから要求に合致した構造化文書が取得される都度、当該取得された構造化文書に対するパース処理をクライアントまたは構造化文書管理システム側で行わなくても済む。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態につき図面を参照して説明する。  
［第１の実施形態］
図１は本発明の第１の実施形態に係る構造化文書管理システム１０の構成を示すブロック図である。この構造化文書管理システム１０は、クライアント端末２０と、ローカルエリアネットワーク（ＬＡＮ）等のネットワークＮを介して接続されている。クライアント端末２０上では、構造化文書管理システム１０を利用するアプリケーション（アプリケーションプログラム）２１が動作する。構造化文書管理システム１０は、ＸＭＬデータベース（ＸＭＬＤＢ）１１と、要求処理部１２と、構造化文書更新部１３と、パース処理部１４と、構造化文書参照部１５と、クエリ処理部１６と、格納位置管理部１７とから構成される。
【００２１】
ＸＭＬＤＢ１１は、構造化文書としてのＸＭＬ文書を格納するデータベース（構造化文書データベース）である。ここでは、ＸＭＬＤＢ１１には、ＸＭＬ文書のパース後のデータが格納される。つまりＸＭＬ文書は、詳細を後述するように、テキスト形式或いはシステム独自のバイナリ形式でＸＭＬＤＢ１１に格納されるのではないことに注意されたい。
【００２２】
要求処理部１２は、クライアント端末２０上のアプリケーション２１からの要求を受け付けて当該要求を解析する。構造化文書更新部１３は、要求処理部１２によって受け付けられた要求がＸＭＬ文書の格納要求の場合、アプリケーション２１から要求されたＸＭＬ文書のパース後のデータをＸＭＬＤＢ１１に格納する。このＸＭＬＤＢ１１におけるＸＭＬ文書の格納形態については後述する。構造化文書更新部１３は、要求処理部１２によって受け付けられた要求がパース後データ変更要求の場合、要求されたＸＭＬ文書のパース後のデータでＸＭＬＤＢ１１内の元のパース後データを更新する。
【００２３】
パース処理部１４は、構造化文書更新部１３から要求されたＸＭＬ文書をパースする。構造化文書参照部１５は、要求処理部１２によって受け付けられた要求がＸＭＬ文書の検索要求の場合、クエリ処理部１６及び格納位置管理部１７を利用して、要求された検索条件に合致するデータのＸＭＬＤＢ１１における格納位置の情報を取得する。構造化文書参照部１５は、要求処理部１２によって受け付けられた要求がパース後データ取得要求の場合、要求されたパース後データをＸＭＬＤＢ１１から取得する。
【００２４】
クエリ処理部１６は、検索要求で指定されるクエリ文字列を解析する。クエリ文字列は具体的には、ＸＭＬＤＢ１１に格納されたパース後データを検索対象とするＸＰａｔｈ式またはＸＱｕｅｒｙ式である。ＸＰａｔｈ式とＸＱｕｅｒｙ式とは、いずれもワールド・ワイド・ウエブ・コンソーシアム（World Wide Web Consortium (Ｗ３Ｃ)）が公開している問い合わせ言語であり、一般に良く知られている。ＸＰａｔｈ式またはＸＱｕｅｒｙ式は、本来はパース後のデータを操作するために使用する言語である。しかし、本実施形態では、ＸＭＬＤＢ１１にＸＭＬ文書のパース後データが格納されるデータ格納手法を適用している。このため図１に示す構造化文書管理システム１０では、ＸＰａｔｈ式またはＸＱｕｅｒｙ式は、ＸＭＬＤＢ１１に格納されているデータを対象とする検索のための言語として使用可能となる。格納位置管理部１７は、ＸＭＬＤＢ１１に格納されたパース後データの当該ＸＭＬＤＢ１１における格納位置の情報（格納位置情報）を管理する。
【００２５】
要求処理部１２、構造化文書更新部１３、パース処理部１４、構造化文書参照部１５、クエリ処理部１６及び格納位置管理部１７は、コンピュータ（例えばデータベースサーバコンピュータ）にインストールされた特定のソフトウェアプログラム（例えば構造化文書管理プログラム）を当該コンピュータ（内のＣＰＵ）が読み取って実行することにより実現される。このプログラムは、コンピュータで読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラムが、ネットワークを介してダウンロード（頒布）されても構わない。
【００２６】
次に、ＸＭＬＤＢ１１におけるＸＭＬ文書格納の概念について図２乃至図６を順次参照して説明する。本実施形態におけるＸＭＬＤＢ１１の特徴は、ＸＭＬ文書をテキスト形式またはシステム独自のバイナリ形式で格納せず、ＸＭＬ文書をパースした後のデータ（パース後データ）を木構造で格納する点にある。
【００２７】
図２は、ＸＭＬ文書を格納していないＸＭＬＤＢ１１の状態を示す。この状態では、ＸＭＬＤＢ１１には、“ｒｏｏｔ”ノードと呼ぶ、木構造の根となる論理的な階層構造だけが存在する。この論理的な階層構造、つまり“ｒｏｏｔ”ノードは、複数のＸＭＬ文書のパース後データをまとめて格納する機能を持つ。
【００２８】
図３は、図２の状態のＸＭＬＤＢ１１に、ＸＭＬ文書（ＸＭＬ文書Ａ）３１のパース後データ（パース後ＸＭＬ文書）３１０が追加された状態を示す。図３の例では、ＸＭＬ文書（Ａ）３１は、パース後データ（パース後ＸＭＬ文書）３１０に変換されて、“ｒｏｏｔ”ノードの下に格納される。“ｒｏｏｔ”ノードと、ＸＭＬ文書Ａの最上位タグ（最上位ノード）であるｂｏｏｋ（“ｂｏｏｋ”ノード）とは、木構造における親子関係（“ｒｏｏｔ”ノードが親）となるように関連付けられる。即ち、ＸＭＬＤＢ１１において、パース後データ（パース後ＸＭＬ文書）３１０は、“ｒｏｏｔ”ノードを根とする木構造の部分木として管理される。“ｒｏｏｔ”ノードを根とする木構造は、１つの仮想的なＸＭＬ文書３００の木構造であるといえる。
【００２９】
図５は、図３の状態、即ちＸＭＬ文書（Ａ）３１のパース後データ（パース後ＸＭＬ文書）３１０がＸＭＬＤＢ１１に格納された状態における、当該ＸＭＬＤＢ１１のデータ構造例を示す。この段階では、パース後データ（パース後ＸＭＬ文書）３１０は、仮想的なＸＭＬ文書３００の木構造における唯一の部分木となる。
【００３０】
ＸＭＬＤＢ１１には、格納されたＸＭＬ文書のデータ構造が保存される。ＸＭＬＤＢ１１に格納されるデータは、木構造を構成するノード（要素）単位で管理される。そのために各ノードには、一意の番号であるノードＩＤが付与される。図５に示されるように、ＸＭＬＤＢ１１には、仮想的なＸＭＬ文書１１０の木構造を、当該木構造を構成するノード（要素）単位で管理する構造情報テーブル５１と、当該ＸＭＬ文書１１０の各ノード（要素）の情報（ノード情報）を管理するノード情報ブロック５２とが格納される。構造情報テーブル５１のエントリ数及びノード情報ブロック５２の数は、ＸＭＬ文書１１０の木構造のノード数に一致する。
【００３１】
構造情報テーブル５１のｉ番目（ｉ＝１，２，…）のエントリは、ノードｉのノードＩＤ（ＩＤ＝ｉ）、当該ノードｉの親ノードのノードＩＤ、当該ノードｉの兄ノードのノードＩＤ、当該ノードｉの弟ノードのノードＩＤ、及び当該ノードｉの子ノードのノードＩＤを、それぞれ設定するフィールドから構成される。つまり、構造情報テーブル５１の各エントリは、対応するノードの木構造における位置関係を示す情報（構造情報）を保持するのに用いられる。なお、ノードｉに、親ノード、兄ノード、弟ノードまたは子ノードが存在しない場合、構造情報テーブル５１におけるｉ番目のエントリの対応するフィールドには、該当するノードが存在しないことを示す特定の値が設定される（図５では、“−”で示されている）。
【００３２】
本実施形態では、ノードｉに子ノードが複数存在する場合、構造情報テーブル５１におけるｉ番目のエントリの子ノードのフィールドには、長男のノードのノードＩＤのみが設定される。例えば、ノードＩＤが２の“ｂｏｏｋ”ノードの子ノードは、ノードＩＤが３，４及び５の、それぞれ“ｔｉｔｌｅ”ノード、“ａｕｔｈｏｒ”ノード及び“ｐｕｂｌｉｓｈｅｒ”ノードであり、ノードＩＤが３の“ｔｉｔｌｅ”ノードが長男である。この場合、構造情報テーブル５１における２番目のエントリの子ノードのフィールドには、“ｔｉｔｌｅ”ノードのノードＩＤ（＝３）が設定される。
【００３３】
一方、ノード情報ブロック５２は、対応するノードに固有の情報（ノード情報）を保持するのに用いられる。ここでは、ノード情報ブロック５２は、ノードＩＤと、当該ノードのタグ名と、当該ノードの値（要素値）とを保持する。ノード情報ブロック５２が格納されているＸＭＬＤＢ１１における位置は、格納位置情報（ブロックポインタ情報）によって示される。本実施形態では、例えばノードｉのノード情報ブロック５２を指す格納位置情報は、構造情報テーブル５１のｉ番目のエントリにおけるノードＩＤが設定されるフィールド（ノードＩＤのフィールド）に当該ノードＩＤと対をなして設定されるものとする。勿論、構造情報テーブル５１の各エントリに、格納位置情報が設定される専用のフィールドを持たせることも可能である。
【００３４】
上述した構造情報テーブル５１のエントリの情報（構造情報）、及び当該エントリに対応するノード情報ブロック５２は、ＸＭＬ文書のパース後データ（パース後ＸＭＬ文書）をＸＭＬＤＢ１１に格納する際に作成される。このように本実施形態では、ＸＭＬ文書を、テキスト形式のまま、或いはシステム独自のバイナリ形式で、ＸＭＬＤＢ１１に格納するのではないことに注意されたい。即ち本実施形態では、ＸＭＬ文書のパース後データ（パース後ＸＭＬ文書）を“ｒｏｏｔ”ノードをルートとする木構造の部分木として、当該ＸＭＬ文書の各ノード（要素）の当該木構造における位置関係を示す情報（構造情報）と、当該ＸＭＬ文書の各ノードに固有の情報（ノード情報）とが、ＸＭＬＤＢ１１に格納される。但し、このＸＭＬ文書のパース後データ（パース後ＸＭＬ文書）に関する構造情報とノード情報がＸＭＬＤＢ１１に格納されることを、説明の簡略化のために、ＸＭＬ文書のパース後データ（パース後ＸＭＬ文書）がＸＭＬＤＢ１１に格納されると表現することもある。
【００３５】
図４は、図３の状態のＸＭＬＤＢ１１に、更にＸＭＬ文書（ＸＭＬ文書Ｂ）３２のパース後データ（パース後ＸＭＬ文書）３２０が追加された状態を示す。ＸＭＬ文書（Ｂ）３２は、ＸＭＬ文書（Ａ）３１と同様に、パース後データ（パース後ＸＭＬ文書）３２０に変換されて、“ｒｏｏｔ”ノードの下に格納される。“ｒｏｏｔ”ノードと、ＸＭＬ文書Ｂの最上位タグ（最上位ノード）であるｂｏｏｋ（“ｂｏｏｋ”ノード）とは、木構造における親子関係（“ｒｏｏｔ”ノードが親）となるように関連付けられる。即ち、ＸＭＬＤＢ１１において、パース後データ（パース後ＸＭＬ文書）３２０も、パース後データ（パース後ＸＭＬ文書）３１０と同様に、“ｒｏｏｔ”ノードを根とする木構造の部分木として管理される。
【００３６】
図６は、図４の状態、即ちＸＭＬ文書（Ａ）３１のパース後データ（パース後ＸＭＬ文書）の次にＸＭＬ文書（Ｂ）３２のパース後データ（パース後ＸＭＬ文書）３２０がＸＭＬＤＢ１１に格納された状態における、当該ＸＭＬＤＢ１１のデータ構造例を示す。ここでは、ＸＭＬ文書３１及び３２のパース後データ（パース後ＸＭＬ文書）３１０及び３２０が、いずれも“ｒｏｏｔ”を根とする木構造（仮想的なＸＭＬ文書３００の木構造）の部分木として、ＸＭＬＤＢ１１に格納される。つまりＸＭＬＤＢ１１に格納される全てのパース後データ（パース後ＸＭＬ文書）は、１つの木構造を構成する。
【００３７】
図６において、パース後データ（パース後ＸＭＬ文書）３２０の最上位ノードは、ノードＩＤとして９が付与された“ｂｏｏｋ”ノードである。ここで、パース後データ（パース後ＸＭＬ文書）３２０におけるノードＩＤが９の“ｂｏｏｋ”ノードは、パース後データ（パース後ＸＭＬ文書）３１０におけるノードＩＤが２の“ｂｏｏｋ”ノードの弟ノードとして関連付けられる。したがって、ノードＩＤが２の“ｂｏｏｋ”ノードに対応する、構造情報テーブル５１の２番目のエントリにおける弟ノードのフィールドは、弟ノードなしを示す状態“−”から（図５参照）、ノードＩＤが９のノード（“ｂｏｏｋ”ノード）を弟ノードとして示す状態に更新される。また、パース後データ（パース後ＸＭＬ文書）３２０をＸＭＬＤＢ１１に格納する際に、構造情報テーブル５１には、当該パース後データ（パース後ＸＭＬ文書）３２０のノード数に一致する数のエントリ（ここでは７個のエントリ）が追加される。
【００３８】
次に、図１に示す構造化文書管理システム１０における動作について、(1-1)格納処理、(1-2)検索処理、(1-3)パース後データ取得処理、及び、(1-4)パース後データ変更処理を例に順に説明する。
【００３９】
(1-1)格納処理
まず、構造化文書管理システム１０における格納処理の手順について、図７のフローチャートを参照して説明する。
【００４０】
今、クライアント端末２０のアプリケーション２１から構造化文書管理システム１０に対して、ＸＭＬ文書の格納要求が発行されたものとする。この場合、構造化文書管理システム１０内の要求処理部１２は、アプリケーション２１から格納要求と格納対象となるＸＭＬ文書とを受け取る（ステップＳ１）。
【００４１】
次に要求処理部１２は、受け取った要求を解析する（ステップＳ２）。この例のように、受け取った要求が格納要求であった場合、要求処理部１２は、アプリケーション２１から受け取ったＸＭＬ文書を構造化文書更新部１３に渡す。構造化文書更新部１３は、このＸＭＬ文書をパース処理部１４に渡す。するとパース処理部１４は、構造化文書更新部１３から渡されたＸＭＬ文書をパースする（ステップＳ３）。そしてパース処理部１４は、パースの対象となったＸＭＬ文書が文法的に正当かを調べ、正当であれば構造化文書更新部１３にパース後のデータを返す。なお、正当でない場合には、その旨がアプリケーション２１に通知される。
【００４２】
構造化文書更新部１３は、パース処理部１４によるパース後データ（パース後ＸＭＬ文書）のノード毎のノード情報を、先に述べた図５または図６に示されるようなデータ構造のノード情報ブロック５２の形式でＸＭＬＤＢ１１に格納する（ステップＳ４）。つまり構造化文書更新部１３は、パース後データのノード情報をＸＭＬＤＢ１１に格納する。構造化文書更新部１３は、パース後データと、当該パース後データのノード情報を保持するノード情報ブロック５２のＸＭＬＤＢ１１内の格納位置を示す格納位置情報を格納位置管理部１７に渡す。
【００４３】
すると格納位置管理部１７は、ＸＭＬＤＢ１１に格納されている構造情報テーブル５１にエントリを追加して、当該エントリに、格納位置情報を含む図５または図６に示されるようなデータ構造の構造情報を保存する（ステップＳ５）。このステップＳ５において、格納位置管理部１７は、格納対象のＸＭＬ文書の最上位ノード（以下、ノードＸと称する）と“ｒｏｏｔ”ノードとが親子関係になるように（“ｒｏｏｔ”ノードが親）、構造情報テーブル５１の対応エントリに構造情報を設定する。またステップＳ４において、既に少なくとも１つのＸＭＬ文書がＸＭＬＤＢ１１に格納済みであるならば、格納位置管理部１７は、当該ＸＭＬＤＢ１１に最も最近に格納されたＸＭＬ文書の最上位ノードとノードＸとが兄弟関係になるように（ノードＸが弟）、構造情報を設定する。
【００４４】
このように格納位置管理部１７は、パース後データの構造情報を保存する際に、ＸＭＬＤＢ１１内の全てのＸＭＬ文書（パース後ＸＭＬ文書）が１つの木構造となるように、構造情報を設定する。その後、格納位置管理部１７は、構造化文書更新部１３に要求完了を通知する。構造化文書更新部１３は、この要求完了を要求処理部１２に通知する。要求処理部１２は、この要求完了をネットワークＮを介してクライアント端末２０のアプリケーション２１に通知する（ステップＳ６）。
【００４５】
以上、ＸＭＬ文書の格納処理について説明した。この格納処理において最も特徴的な処理はステップＳ５である。このステップＳ５の処理により、ＸＭＬＤＢ１１に格納されている全てのＸＭＬ文書（パース後ＸＭＬ文書）が１つの木構造（仮想的なＸＭＬ文書３００）の部分木を形成することになる。
【００４６】
(1-2)検索処理
次に、構造化文書管理システム１０における検索処理の手順について、図８のフローチャートを参照して説明する。
【００４７】
今、クライアント端末２０のアプリケーション２１から構造化文書管理システム１０に対して、ＸＭＬ文書の検索要求が発行されたものとする。この場合、要求処理部１２は、アプリケーション２１から検索要求と検索に用いられるクエリ文字列とを受け取る（ステップＳ１１）。
【００４８】
次に要求処理部１２は、受け取った要求を解析する（ステップＳ１２）。この例のように、受け取った要求が検索要求であった場合、要求処理部１２は、アプリケーション２１から受け取ったクエリ文字列を構造化文書参照部１５に渡す。構造化文書参照部１５は、このクエリ文字列をクエリ処理部１６に渡して、当該クエリ文字列の解析を要求する。するとクエリ処理部１６は、構造化文書参照部１５から渡されたクエリ文字列を解析する（ステップＳ１３）。このステップＳ１３において、クエリ処理部１６はクエリ文字列が文法的に正当かを調べ、正当であればクエリ文字列の解析データ（クエリ解析データ）を構造化文書参照部１５に返す。なお、正当でない場合には、その旨がアプリケーション２１に通知される。
【００４９】
構造化文書参照部１５は、クエリ処理部１６から返されたクエリ解析データを格納位置管理部１７に渡す。このクエリ解析データは、検索の対象となるノード（ここではＸＭＬ文書の最上位ノード）へのパスを示す。そこで格納位置管理部１７は、クエリ解析データに従って、ＸＭＬＤＢ１１に保存されている構造情報テーブル５１を検索し、当該クエリ解析データに合致する格納位置情報、即ち当該クエリ解析データで示されるパスで特定されるノードのノードＩＤに対応する格納位置情報を取得する（ステップＳ１４）。格納位置管理部１７は、取得された格納位置情報を完了通知と共にパース処理部１４へ通知する。この要求完了と取得された格納位置情報とは、パース処理部１４から要求処理部１２及びネットワークＮを介してクライアント端末２０のアプリケーション２１に通知される（ステップＳ１５）。
【００５０】
これによりアプリケーション２１は、検索要求で指定したクエリ文字列によって示される検索条件に合致したノードのノード情報（パース後データのノード情報）の格納位置情報を取得できる。アプリケーション２１は、この格納位置情報を利用して、後述するパース後データ取得要求またはパース後データ変更要求を構造化文書管理システム１０に発行することにより、当該格納位置情報で指定されるパース後データ（ノード情報ブロック５２に保持されているノード情報）を取得または変更（更新）することができる。勿論、格納位置情報に限らず、例えば検索要求で指定されたクエリ文字列によって示される検索条件に合致したノードのノード情報がクライアント端末２０のアプリケーション２１に返される構成であっても構わない。
【００５１】
なお、ノードｉに固有のノード情報の格納位置を示す格納情報は、当該ノードｉに固有の構造情報（構造情報テーブル５１内のエントリ情報）中に、当該ノードｉのノードＩＤと共に含まれている。したがって、ノードｉに対応する格納情報は、当該ノードｉのノードＩＤを用いて構造情報テーブル５１を参照することにより取得することが可能である。そこで、上記ステップＳ１４では、クエリ解析データで示されるパスで特定されるノードのノードＩＤが取得され、上記ステップＳ１５では、当該取得されたノードＩＤがアプリケーション２１に通知されようにしても構わない。
【００５２】
(1-3)パース後データ取得処理
次に、構造化文書管理システム１０におけるパース後データ取得処理の手順について、図９のフローチャートを参照して説明する。
【００５３】
今、クライアント端末２０のアプリケーション２１から構造化文書管理システム１０に対して、パース後データ取得要求が発行されたものとする。この場合、構造化文書管理システム１０内の要求処理部１２は、アプリケーション２１からパース後データ取得要求と取得すべきパース後データの格納位置情報とを受け取る（ステップＳ２１）。この格納位置情報は、例えば、上記したアプリケーション２１からの検索要求に従う構造化文書管理システム１０の検索処理によって、当該アプリケーション２１が構造化文書管理システム１０から取得したものである。
【００５４】
次に要求処理部１２は、受け取った要求を解析する（ステップＳ２２）。この例のように、受け取った要求がパース後データ取得要求であった場合、要求処理部１２は、アプリケーション２１から受け取った格納位置情報を構造化文書参照部１５に渡す。構造化文書参照部１５は、この格納位置情報に従って、ＸＭＬＤＢ１１からパース後データを取得する（ステップＳ２３）。構造化文書参照部１５は、取得されたパース後データを完了通知と共に要求処理部１２へ通知する。この要求完了と取得されたパース後データとは、要求処理部１２からネットワークＮを介してクライアント端末２０のアプリケーション２１に通知される（ステップＳ２４）。
【００５５】
(1-4)パース後データ変更処理
次に、構造化文書管理システム１０におけるパース後データ変更処理の手順について、図１０のフローチャートを参照して説明する。
【００５６】
今、クライアント端末２０のアプリケーション２１から構造化文書管理システム１０に対して、パース後データ変更要求が発行されたものとする。この場合、要求処理部１２は、アプリケーション２１から、パース後データ変更要求、変更されるべきパース後データの格納位置情報及び変更後のＸＭＬ文書とを受け取る（ステップＳ３１）。この格納位置情報は、例えば、上記したアプリケーション２１からの検索要求に従う構造化文書管理システム１０の検索処理によって、当該アプリケーション２１が構造化文書管理システム１０から取得したものである。ここでは、この格納位置情報が、ＸＭＬ文書（ＸＭＬ文書Ａ）３１の“ｂｏｏｋ”ノード（“ｂｏｏｋ”タグ）のノード情報が格納されているＸＭＬＤＢ１１内の位置を示すものとする。また、変更後のＸＭＬ文書がＸＭＬ文書Ｃであるものとする。
【００５７】
次に要求処理部１２は、受け取った要求を解析する（ステップＳ３２）。この例のように、受け取った要求がパース後データ変更要求であった場合、要求処理部１２は、アプリケーション２１から受け取った変更後のＸＭＬ文書Ｃを構造化文書更新部１３に渡す。構造化文書更新部１３は、このＸＭＬ文書Ｃをパース処理部１４に渡す。するとパース処理部１４は、構造化文書更新部１３から渡されたＸＭＬ文書Ｃをパースする（ステップＳ３３）。このステップＳ３３において、パース処理部１４は、パースの対象となったＸＭＬ文書Ｃが文法的に正当かを調べ、正当であれば構造化文書更新部１３にパース後のデータを返す。
【００５８】
構造化文書更新部１３は、要求処理部１２から渡された格納位置情報に基づいて、ＸＭＬＤＢ１１に格納されているパース後データ（つまり、変更前ＸＭＬ文書Ａのパース後データ）を当該ＸＭＬＤＢ１１から取得する（ステップＳ３４）。
【００５９】
構造化文書更新部１３は、ステップＳ３４で取得された変更前ＸＭＬ文書Ａのパース後データのノード情報を、ステップＳ３３でパース処理部１４によって取得された変更後ＸＭＬ文書Ｃのパース後データのノード情報で更新する（ステップＳ３５）。このステップＳ３５において、構造化文書更新部１３は、更新されたパース後データのノード情報を、ＸＭＬＤＢ１１における元の格納位置に再格納する。構造化文書更新部１３は、このＸＭＬＤＢ１１に再格納されたパース後データと、当該パース後データのＸＭＬＤＢ１１における格納位置を示す格納位置情報とを格納位置管理部１７に渡す。
【００６０】
格納位置管理部１７は、構造化文書更新部１３によってＸＭＬＤＢ１１に再格納されたパース後データの構造情報で、当該ＸＭＬＤＢ１１内の対応する旧構造情報を更新する（ステップＳ３６）。これにより、アプリケーション２１からのパース後データ変更要求前にＸＭＬＤＢ１１に格納されていたＸＭＬ文書Ａのパース後データは、変更後のＸＭＬ文書Ｃのパース後データに置き換えられる。
【００６１】
その後、格納位置管理部１７は、構造化文書更新部１３に要求完了を通知する。構造化文書更新部１３は、この要求完了を要求処理部１２に通知する。要求処理部１２は、この要求完了をネットワークＮを介してクライアント端末２０のアプリケーション２１に通知する（ステップＳ３７）。
【００６２】
このように、第１の実施形態においては、ＸＭＬ文書のパース後データがＸＭＬＤＢ１１に格納される。このため、アプリケーション２１（クライアント端末２０）は、構造化文書管理システム１０に対するデータ取得要求（パース後データ取得要求）により、ＸＭＬＤＢ１１から、ＸＭＬ文書のデータとして、ＸＭＬ文書のパース後データを取得することができる。これによりアプリケーション２１（または構造化文書管理システム１０）は、ＸＭＬＤＢ１１から取得されたデータに対して負荷の高いパース処理を行わなくてよく、処理の高速化が実現できる。この効果は、ＸＭＬＤＢ１１から同一データを複数回取得する場合に特に大きくなる。
【００６３】
また、第１の実施形態において、ＸＭＬＤＢ１１に格納されたＸＭＬ文書は、１つの仮想的なＸＭＬ文書のパース後データの木構造の一部（部分木）として管理される。このため、元々複数のファイルに分かれていた同数のＸＭＬ文書の検索を、１回の検索処理で実行できる。他にも、同様な理由により、元々複数のファイルに分かれていた同数のＸＭＬ文書の取得や削除を、１回の処理で実行できる。
【００６４】
［第２の実施形態］
図１１は、本発明の第２の実施形態に係る構造化文書管理システム１００の構成を示すブロック図である。図１１において、図１と等価な要素には同一参照番号を付してある。
【００６５】
図１１に示す構造化文書管理システム１００が図１の構造化文書管理システム１０と異なる点は、元ＸＭＬ文書ＤＢ（元ＸＭＬ文書データベース）１１０と、元ＸＭＬ文書格納位置管理部１１７とが追加されたことにある。元ＸＭＬ文書ＤＢ１１０は、パース後データの元のＸＭＬ文書（例えばテキスト形式のＸＭＬ文書）を格納する。元ＸＭＬ文書格納位置管理部１１７は、パース後データの元のＸＭＬ文書の元ＸＭＬ文書ＤＢ１１０における格納位置の情報（格納位置情報）と、当該パース後データのＸＭＬＤＢ１１における格納位置の情報（格納位置情報）とを対応付けて管理する。
【００６６】
次に、図１１に示す構造化文書管理システム１００における動作について、(2-1)格納処理、及び(2-2)元ＸＭＬ文書取得処理を例に順に説明する。なお、構造化文書管理システム１００における検索処理及びパース後データ取得処理は、それぞれ構造化文書管理システム１０における検索処理及びパース後データ取得処理と同様である。
【００６７】
(2-1)格納処理
まず、構造化文書管理システム１００における格納処理の手順について、図１２のフローチャートを参照して説明する。
【００６８】
今、クライアント端末２０のアプリケーション２１から構造化文書管理システム１０に対して、ＸＭＬ文書の格納要求が発行されたものとする。この場合、構造化文書管理システム１０ではまず、図７のステップＳ１乃至Ｓ５と同様の処理（ステップＳ４１乃至Ｓ４５）が実行される。これにより、格納対象となるＸＭＬ文書のパース後データのノード情報がＸＭＬＤＢ１１に格納される。また、パース後データの構造情報がＸＭＬＤＢ１１に格納されると共に、ＸＭＬＤＢ１１内の全てのＸＭＬ文書（パース後ＸＭＬ文書）が１つの木構造となるように、構造情報が設定される。
【００６９】
すると構造化文書更新部１３は、パース処理部１４によってパースされる前のＸＭＬ文書、つまりＸＭＬＤＢ１１に格納されたパース後データの元になったＸＭＬ文書（ここではテキスト形式のＸＭＬ文書）を元ＸＭＬ文書ＤＢ１１０に格納する（ステップＳ４６）。
【００７０】
構造化文書更新部１３は、ＸＭＬＤＢ１１に格納されたパース後データの当該ＸＭＬＤＢ１１における格納位置を示す格納位置情報（ＸＭＬＤＢ内格納位置情報）と元ＸＭＬ文書ＤＢ１１０に格納された元のＸＭＬ文書の当該元ＸＭＬ文書ＤＢ１１０における格納位置を示す格納位置情報（元ＸＭＬ文書ＤＢ内格納位置情報）とを元ＸＭＬ文書格納位置管理部１１７に渡す。すると元ＸＭＬ文書格納位置管理部１１７は、構造化文書更新部１３から受け取ったＸＭＬＤＢ内格納位置情報と元ＸＭＬ文書ＤＢ内格納位置情報との対を元ＸＭＬ文書ＤＢ１１０に格納する（ステップＳ４７）。その後、元ＸＭＬ文書格納位置管理部１１７は、構造化文書更新部１３に要求完了を通知する。構造化文書更新部１３は、この要求完了を要求処理部１２に通知する。要求処理部１２は、この要求完了をネットワークＮを介してクライアント端末２０のアプリケーション２１に通知する（ステップＳ４８）。
【００７１】
(2-2)元ＸＭＬ文書取得処理
次に、構造化文書管理システム１００における元ＸＭＬ文書取得処理の手順について、図１３のフローチャートを参照して説明する。
【００７２】
今、クライアント端末２０のアプリケーション２１から構造化文書管理システム１０に対して、元ＸＭＬ文書取得要求が発行されたものとする。この場合、構造化文書管理システム１０内の要求処理部１２は、アプリケーション２１から元ＸＭＬ文書取得要求とパース後データの格納位置情報とを受け取る（ステップＳ５１）。このパース後データの格納位置情報は、取得すべき元ＸＭＬ文書のパース後データが格納されているＸＭＬＤＢ１１における位置を示す。
【００７３】
次に要求処理部１２は、受け取った要求を解析する（ステップＳ５２）。この例のように、受け取った要求が元ＸＭＬ文書取得要求であった場合、要求処理部１２は、アプリケーション２１から受け取ったパース後データの格納位置情報を構造化文書参照部１５に渡す。構造化文書参照部１５は、このパース後データの格納位置情報を元ＸＭＬ文書格納位置管理部１１７に渡す。元ＸＭＬ文書格納位置管理部１１７は、このパース後データの格納位置情報に基づいて元ＸＭＬ文書ＤＢ１１０を参照することにより、当該パース後データの格納位置情報と対をなす元のＸＭＬ文書の格納位置情報を取得する（ステップＳ５３）。元ＸＭＬ文書格納位置管理部１１７は、取得された元のＸＭＬ文書の格納位置情報を構造化文書参照部１５に通知する。
【００７４】
構造化文書参照部１５は、元ＸＭＬ文書格納位置管理部１１７によって通知された元のＸＭＬ文書の格納位置情報に従って、元ＸＭＬ文書ＤＢ１１０から元のＸＭＬ文書のデータを取得する（ステップＳ５４）。構造化文書参照部１５は、取得された元のＸＭＬ文書のデータを完了通知と共に要求処理部１２へ通知する。この要求完了と取得された元のＸＭＬ文書のデータとは、要求処理部１２からネットワークＮを介してクライアント端末２０のアプリケーション２１に通知される（ステップＳ５５）。
【００７５】
このように、第２の実施形態においては、ＸＭＬ文書のパース後データがＸＭＬＤＢ１１に格納されるだけでなく、当該パース後データの元のＸＭＬ文書が元ＸＭＬ文書ＤＢ１１０に格納される。これに加えて、パース後データ及び元のＸＭＬ文書各々の格納位置を示す格納位置情報が、元ＸＭＬ文書格納位置管理部１１７によって対応付けて保存管理される。このため第２の実施形態においては、上記第１の実施形態で得られる効果に加えて、ＸＭＬＤＢ１１に格納されたＸＭＬデータの原本性保証が実現できる。更に第２の実施形態においては、検索またはデータ取得の対象を、パース後データにするか、元のＸＭＬ文書にするかを、処理の内容や特性に応じて選択できる。
【００７６】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００７７】
【図１】本発明の第１の実施形態に係る構造化文書管理システム１０の構成を示すブロック図。
【図２】ＸＭＬ文書を格納していないＸＭＬＤＢ１１の状態であって、“ｒｏｏｔ”ノードと呼ぶ、木構造の根となる論理的な階層構造だけが存在するＸＭＬＤＢ１１の状態を示す図。
【図３】図２の状態のＸＭＬＤＢ１１に、ＸＭＬ文書（ＸＭＬ文書Ａ）３１のパース後データ３１０が追加された状態を示す図。
【図４】図３の状態のＸＭＬＤＢ１１に、ＸＭＬ文書（ＸＭＬ文書Ｂ）３２のパース後データ３２０が追加された状態を示す図。
【図５】図３の状態のＸＭＬＤＢ１１における、当該ＸＭＬＤＢ１１のデータ構造例を示す図。
【図６】図４の状態のＸＭＬＤＢ１１における、当該ＸＭＬＤＢ１１のデータ構造例を示す図。
【図７】構造化文書管理システム１０における格納処理の手順を示すフローチャート。
【図８】構造化文書管理システム１０における検索処理の手順を示すフローチャート。
【図９】構造化文書管理システム１０におけるパース後データ取得処理の手順を示すフローチャート。
【図１０】構造化文書管理システム１０におけるパース後データ変更処理の手順を示すフローチャート。
【図１１】本発明の第２の実施形態に係る構造化文書管理システム１００の構成を示すブロック図。
【図１２】構造化文書管理システム１００における格納処理の手順を示すフローチャート。
【図１３】構造化文書管理システム１００における元ＸＭＬ文書取得処理の手順を示すフローチャート。
【符号の説明】
【００７８】
１０，１００…構造化文書管理システム、１１…ＸＭＬＤＢ（ＸＭＬデータベース、構造化文書データベース）、１２…要求処理部、１３…構造化文書更新部（構造化文書格納手段、第１の格納手段）、１４…パース処理部、１５…構造化文書参照部（構造化文書取得手段）、１６…クエリ処理部（問い合わせ言語処理手段）、１７…格納位置管理部（構造化文書格納手段、第２の格納手段）、２０…クライアント端末、２１…アプリケーション、３１…ＸＭＬ文書（ＸＭＬ文書Ａ）、３２…ＸＭＬ文書（ＸＭＬ文書Ａ）、５１…構造情報テーブル、５２…ノード情報ブロック、１１０…元ＸＭＬ文書ＤＢ（元構造化文書データベース）、１１７…元ＸＭＬ文書格納位置管理部（元構造化文書格納位置管理手段）、３００…仮想的なＸＭＬ文書、３１０，３２０…パース後データ（パース後ＸＭＬ文書）。
【図１】
2006127235.tif 000003
【図２】
2006127235.tif 000004
【図３】
2006127235.tif 000005
【図４】
2006127235.tif 000006
【図５】
2006127235.tif 000007
【図６】
2006127235.tif 000008
【図７】
2006127235.tif 000009
【図８】
2006127235.tif 000010
【図９】
2006127235.tif 000011
【図１０】
2006127235.tif 000012
【図１１】
2006127235.tif 000013
【図１２】
2006127235.tif 000014
【図１３】
2006127235.tif 000015