(57)【要約】【課題】  本発明は、タグ付き構造化文書を取り扱えるシステムとレガシーシステムとの間でタグ付き構造化文書の任意の情報を容易に共有できる仕組みを提供することを目的とする。【解決手段】  マッピング条件及び文書特定キーとを設定情報ファイルに任意設定する機能（５）と、前記設定情報ファイルを読み取り前記文書特定キーに対応付けて前記タグ付き構造化文書（２）の全体を前記ＲＤＢの全体用カラムに格納し且つ特定部位の情報を前記ＲＤＢ（３）の特定部位用カラムに格納する機能（４）と、前記文書特定キーに基づいて、特定部位用カラムの情報へアクセスする機能（４）と、前記設定情報ファイルを読み取り、前記全体用カラムの情報及び前記特定用カラムの情報からタグ付き構造化文書（２）を生成する機能（４）と、をコンピュータに実行させる。【選択図】図１
2005284575.tif 000002
【特許請求の範囲】
【請求項１】
タグ付き構造化文書とＲＤＢとの間のマッピング条件及び前記ＲＤＢに格納される前記タグ付き構造化文書を一意に特定するための文書特定キーとを設定情報ファイルに任意設定する機能と、
前記設定情報ファイルの最新設定情報を読み取り、前記文書特定キーとなる情報に対応付けて前記タグ付き構造化文書の全体を前記ＲＤＢの全体用カラムに格納し且つ前記タグ付き構造化文書の特定部位の情報を前記ＲＤＢの特定部位用カラムに格納する機能と、
前記文書特定キーに基づいて、前記ＲＤＢの特定部位用カラムに格納される情報へアクセスする機能と、
前記設定情報ファイルの最新設定情報を読み取り、前記文書特定キーの所定情報に対応付けされた前記全体用カラムの情報及び前記特定部位用カラムの情報からタグ付き構造化文書を生成する機能と、
をコンピュータに実行させるプログラム。
【請求項２】
同一の特定部位を二つ以上含むタグ付き構造化文書において、該タグ付き構造化文書中の各特定部位の位置を一意に特定する部位特定キーを前記設定情報ファイルに任意設定する機能と、
前記タグ付き構造化文書中に同一の特定部位を二つ以上含む場合、前記同一の特定部位の情報を前記部位特定キーによって指定される情報に対応付けて前記特定部位用カラムに格納する機能と、
前記特定部位用カラムに格納される前記同一の特定部位の情報の夫々に前記部位特定キーに基づいてアクセスする機能と、
前記部位特定キーの情報から前記タグ付き構造化文書全体中の前記同一の特定部位の情報の位置を特定し、前記全体用カラムの情報及び前記特定部位用カラムの情報から、前記タグ付き構造化文書全体に前記同一の特定部位の情報が反映されたタグ付き構造化文書を生成する機能と、
を更にコンピュータに実行させることを特徴とする請求項１に記載のプログラム。
【請求項３】
タグ付き構造化文書とＲＤＢとの間のマッピング条件及び前記ＲＤＢに格納される前記タグ付き構造化文書を一意に特定するための文書特定キーとを設定情報ファイルに任意設定する機能と、
前記設定情報ファイルの最新設定情報を読み取り、前記文書特定キーとなる情報に対応付けて前記タグ付き構造化文書の全体を前記ＲＤＢの全体用カラムに格納し且つ前記タグ付き構造化文書の特定部位の情報を前記ＲＤＢの特定部位用カラムに格納する機能と、
前記文書特定キーに基づいて、前記ＲＤＢの特定部位用カラムに格納される情報へアクセスする機能と、
前記設定情報ファイルの最新設定情報を読み取り、前記文書特定キーの所定情報に対応付けされた前記全体用カラムの情報及び前記特定部位用カラムの情報からタグ付き構造化文書を生成する機能と、
を有することを特徴とするタグ付き構造化文書格納システム。
【請求項４】
同一の特定部位を二つ以上含むタグ付き構造化文書において、該タグ付き構造化文書中の各特定部位の位置を一意に特定する部位特定キーを前記設定情報ファイルに任意設定する機能と、
前記タグ付き構造化文書中に同一の特定部位を二つ以上含む場合、前記同一の特定部位の情報を前記部位特定キーによって指定される情報に対応付けて前記特定部位用カラムに格納する機能と、
前記特定部位用カラムに格納される前記同一の特定部位の情報の夫々に前記部位特定キーに基づいてアクセスする機能と、
前記部位特定キーの情報から前記タグ付き構造化文書全体中の前記同一の特定部位の情報の位置を特定し、前記全体用カラムの情報及び前記特定部位用カラムの情報から、前記タグ付き構造化文書全体に前記同一の特定部位の情報が反映されたタグ付き構造化文書を生成する機能と、
を更に有することを特徴とする請求項３に記載のタグ付き構造化文書格納システム。
【請求項５】
タグ付き構造化文書とＲＤＢとの間のマッピング条件及び上記ＲＤＢに格納される上記タグ付き構造化文書を一意に特定するための文書特定キーとを設定情報ファイルに任意設定し、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーとなる情報に対応付けて上記タグ付き構造化文書の全体を上記ＲＤＢの全体用カラムに格納し且つ上記タグ付き構造化文書の特定部位の情報を上記ＲＤＢの特定部位用カラムに格納し、上記文書特定キーに基づいて、上記ＲＤＢの特定部位用カラムに格納される情報へアクセスし、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーの所定情報に対応付けされた上記全体用カラムの情報及び上記特定部位用カラムの情報からタグ付き構造化文書を生成する、ことを特徴とするタグ付き構造化文書格納方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タグ付き構造化文書とDB（DataBase）との間のマッピング技術に関し、特にタグ付き構造化文書中の部分的な情報をRDB（Relational DataBase）システムから利用可能にする技術に関する。
【背景技術】
【０００２】
XML（eXtensible Markup Language）を始めとするタグ付き構造化文書をRDB（Relational DataBase）に格納する方法として、タグ付き構造化文書を一つのカラムに一括格納させる方法がある。この方法ではタグ付き構造化文書を単なるバイナリデータもしくは文字列データとして扱い、そのタグ付き構造化文書の全てを一括してRDBの一カラムに格納する。このため、この方法はタグ付き構造化文書の構造によらず汎用的に格納できる点では優れている。しかしタグ付き構造化文書中の部分的な情報を頻繁に更新するような場合、タグ付き構造化文書全体を取り出して対象部分を変更し、更にその変更されたタグ付き構造化文書の全てを再格納する必要があるため、処理スピードが低下するという欠点も持つ。
【０００３】
これに対し、タグ付き構造化文書全体及びそのタグ付き構造化文書に含まれる部分的な情報とを対応付けてDBに格納することにより、当該タグ付き構造化文書中の部分的な情報に対する更新を高速に行なわせる技術がある。
【０００４】
この技術では、構造化文書（上記タグ付き構造化文書）の内容を構造解析することによりその構造化文書の階層関係を示す構造解析データを生成する。そしてその構造解析データから、抽出要素定義に基づき、上記構造化文書中の所定の配置にある要素を見つけ出し、その要素に含まれる属性情報を構造化文書全体と関連付けて別々のカラムでＤＢ管理する。従って、構造化文書中の所定の配置にある要素に含まれる属性情報のみを更新する場合、その属性情報を格納するカラムの内容を更新するだけで良く、構造化文書の再生成時は、この更新情報を構造化文書全体の対応個所に反映させることができる。このように本技術は、タグ付き構造化文書の細部とＤＢとの間のマッピング技術を提供する（特許文献１参照）。
【特許文献１】特開２００２−１１７０５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のマッピング技術は、タグ付き構造化文書を扱うことのできるシステムを介することによりタグ付き構造化文書中の部分的な情報の登録・更新やタグ付き構造化文書の再生成を行なう技術を提供する。このため、当該技術は閉じたシステムに対しては効果的に機能するが、その他のシステムと連携して互いに情報共有を図る場合は両システムに大幅な変更が必要となる。そこでタグ付き構造化文書を扱うことのできるシステムに留まらず、その他のシステムに対しても有効な、汎用性のあるマッピング技術の開発が望まれている。
【０００６】
昨今では例えばＸＭＬを取り扱うシステムが普及し始めている。しかしながら、XMLが普及する以前はＲＤＢにデータを蓄積しているものが殆どであり、これまで築き上げてきた高い信頼性から今後もＲＤＢによるデータ蓄積は衰えることはないと考えられる。このため、所定のマッピング定義を行ったXMLシステムをその他のRDBシステム（レガシーシステム）に連携させる場合は両システムに大幅な変更を加えなければならず、また別のRDBシステムと連携させる場合は再び両システムに大幅な変更を加えなければならないため、開発時間に手間を要し、レガシーシステムの資産の流用促進に支障をきたす。
よってこれまで蓄積してきたＲＤＢシステムの資産を流用できるように新システムであるＸＭＬシステムをレガシーシステムに連携させるニーズは非常に高く、これらを簡易的に低コストで連携できる汎用的な仕組みを提供することは、信頼性の高いレガシーシステムの利用を衰退させることなく新システムの発展を促進させる点で非常に有効である。
【０００７】
そこで本発明は、タグ付き構造化文書を取り扱えるシステムとレガシーシステムとの間でタグ付き構造化文書の任意の情報を容易に共有できるようにする仕組みを提供することを第一の目的とする。
【０００８】
そしてこの時、同一構造のパターンが繰り返されるタグ付き構造化文書を容易に取り扱うことのできる仕組みを提供することを第二の目的とする。
また更に、共有対象となるタグ付き構造化文書中の任意の情報をその利用頻度に応じて動的に変更させる仕組みを提供することを第三の目的とする。
【課題を解決するための手段】
【０００９】
本発明は上記課題を解決するために以下のように構成する。
本発明の態様一つは、コンピュータで実行可能なプログラムであり、タグ付き構造化文書とＲＤＢとの間のマッピング条件及び上記ＲＤＢに格納される上記タグ付き構造化文書を一意に特定するための文書特定キーとを設定情報ファイルに任意設定する機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーとなる情報に対応付けて上記タグ付き構造化文書の全体を上記ＲＤＢの全体用カラムに格納し且つ上記タグ付き構造化文書の特定部位の情報を上記ＲＤＢの特定部位用カラムに格納する機能と、上記文書特定キーに基づいて、上記ＲＤＢの特定部位用カラムに格納される情報へアクセスする機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーの所定情報に対応付けされた上記全体用カラムの情報及び上記特定部位用カラムの情報からタグ付き構造化文書を生成する機能と、をコンピュータに実行させる。
【００１０】
また、同一の特定部位を二つ以上含むタグ付き構造化文書において、該タグ付き構造化文書中の各特定部位の位置を一意に特定する部位特定キーを上記設定情報ファイルに任意設定する機能と、上記タグ付き構造化文書中に同一の特定部位を二つ以上含む場合、上記同一の特定部位の情報を上記部位特定キーによって指定される情報に対応付けて上記特定部位用カラムに格納する機能と、上記特定部位用カラムに格納される上記同一の特定部位の情報の夫々に上記部位特定キーに基づいてアクセスする機能と、上記部位特定キーの情報から上記タグ付き構造化文書全体中の上記同一の特定部位の情報の位置を特定し、上記全体用カラムの情報及び上記特定部位用カラムの情報から、上記タグ付き構造化文書全体に上記同一の特定部位の情報が反映されたタグ付き構造化文書を生成する機能と、を更にコンピュータに実行させてもよい。
【００１１】
また、上記特定部位用カラムは少なくとも動的部位用カラムを含み、上記タグ付き構造化文書に含まれる部位の中から動的に選択される部位の情報の格納先として上記動的部位用カラムの指定を上記設定情報ファイルに任意設定する機能と、上記全体用カラムに格納されるタグ付き構造化文書全体及び上記特定部位用カラムに格納される部位の情報を対象に、上記タグ付き構造化文書に含まれる部位の情報へのアクセス数を上記部位ごとに履歴管理する機能と、上記設定情報ファイルに指定された上記動的部位用カラムに対し、上記タグ付き構造化文書中の上記部位の位置を指定する指定パスにより、上記タグ付き構造化文書中の上記アクセス数の多い部位を上記動的に選択される部位として昇降順に対応付けする機能と、上記指定パスに基づいて上記タグ付き構造化文書中の上記動的に選択される部位を上記動的部位用カラムに格納する機能と、上記指定パスに基づいて上記タグ付き構造化文書全体中の上記動的に選択される部位の位置を特定し、上記全体用カラムの情報及び上記動的部位用カラムの情報から、上記動的に選択される部位の情報が上記タグ付き構造化文書全体に反映されたタグ付き構造化文書を生成する機能とを更にコンピュータに実行させてもよい。
【００１２】
このとき、上記特定部位用カラムは、上記設定情報ファイルに上記タグ付き構造化文書中の格納対象部位として指定された所定の特定部位を格納するための固定部位カラム及び上記動的部位用カラムからなり、上記タグ付き構造化文書に含まれる部位の情報へのアクセス数を上記部位ごとに履歴管理する機能において、上記動的部位用カラムに格納される部位の情報、上記固定部位カラムに格納される特定部位の情報、及び上記全体用カラムに格納されるタグ付き構造化文書全体に含まれる部位の情報へのアクセス数を上記部位ごとに履歴管理する機能をコンピュータに実行させることが望ましい。
【００１３】
なお、上記設定情報ファイルに指定された上記動的部位用カラムに対し、上記タグ付き構造化文書中の上記部位の位置を指定する指定パスにより、上記タグ付き構造化文書中の上記アクセス数の多い部位を上記動的に選択される部位として昇降順に対応付けする機能では、上記動的部位用カラムを備えるテーブル名、該動的部位用カラムのカラム名、及び動的に選択される部位の位置を指定する上記指定パスとを動的マッピングテーブルで互いに対応付けして管理するようにしてもよい。
【００１４】
上記各態様において、上記マッピング条件には、上記タグ付き構造化文書の生成時に、上記特定部位用カラムに格納されている情報を上記全体用カラムに格納されているタグ付き構造化文書全体の対応個所に反映させるか否かの指定が含まれ、上記反映させる指定の場合、上記タグ付き構造化文書の生成時に、上記特定部位用カラムに格納されている情報を上記全体用カラムに格納されているタグ付き構造化文書全体の対応個所に反映させる機能と、をコンピュータに実行させるようにしてもよい。
【００１５】
また上記各態様において、所定時刻またはシステム負荷を監視する機能と、上記所定時刻または低負荷時に、上記特定部位用カラムに格納されている情報を対応する上記タグ付き構造化文書全体中の対応個所に反映し、反映後のタグ付き構造化文書全体を元の上記全体用カラムに再格納する機能と、を更にコンピュータに実行させるようにしてもよい。
【００１６】
また上記各態様において、上記特定部位用カラムでは、上記タグ付き構造化文書中の部位の情報が該部位毎に別々のカラムに格納され、上記タグ付き構造化文書全体中の部位の情報に対する更新は該部位と対応付けされた上記カラムを単位として行なう、ことをコンピュータに実行させることが望ましい。
【００１７】
本発明のその他の態様の一つであるコンピュータ読み取り可能な記録媒体は、タグ付き構造化文書とＲＤＢとの間のマッピング条件及び上記ＲＤＢに格納される上記タグ付き構造化文書を一意に特定するための文書特定キーとを設定情報ファイルに任意設定する機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーとなる情報に対応付けて上記タグ付き構造化文書の全体を上記ＲＤＢの全体用カラムに格納し且つ上記タグ付き構造化文書の特定部位の情報を上記ＲＤＢの特定部位用カラムに格納する機能と、上記文書特定キーに基づいて、上記ＲＤＢの特定部位用カラムに格納される情報へアクセスする機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーの所定情報に対応付けされた上記全体用カラムの情報及び上記特定部位用カラムの情報からタグ付き構造化文書を生成する機能と、をコンピュータに実現させるプログラムを記録する。
【００１８】
また、同一の特定部位を二つ以上含むタグ付き構造化文書において、該タグ付き構造化文書中の各特定部位の位置を一意に特定する部位特定キーを上記設定情報ファイルに任意設定する機能と、上記タグ付き構造化文書中に同一の特定部位を二つ以上含む場合、上記同一の特定部位の情報を上記部位特定キーによって指定される情報に対応付けて上記特定部位用カラムに格納する機能と、上記特定部位用カラムに格納される上記同一の特定部位の情報の夫々に上記部位特定キーに基づいてアクセスする機能と、上記部位特定キーの情報から上記タグ付き構造化文書全体中の上記同一の特定部位の情報の位置を特定し、上記全体用カラムの情報及び上記特定部位用カラムの情報から、上記タグ付き構造化文書全体に上記同一の特定部位の情報が反映されたタグ付き構造化文書を生成する機能と、を更にコンピュータに実現させるプログラムを記録してもよい。
【００１９】
また、上記特定部位用カラムは少なくとも動的部位用カラムを含み、上記タグ付き構造化文書に含まれる部位の中から動的に選択される部位の情報の格納先として上記動的部位用カラムの指定を上記設定情報ファイルに任意設定する機能と、上記全体用カラムに格納されるタグ付き構造化文書全体及び上記特定部位用カラムに格納される部位の情報を対象に、上記タグ付き構造化文書に含まれる部位の情報へのアクセス数を上記部位ごとに履歴管理する機能と、上記設定情報ファイルに指定された上記動的部位用カラムに対し、上記タグ付き構造化文書中の上記部位の位置を指定する指定パスにより、上記タグ付き構造化文書中の上記アクセス数の多い部位を上記動的に選択される部位として昇降順に対応付けする機能と、上記指定パスに基づいて上記タグ付き構造化文書中の上記動的に選択される部位を上記動的部位用カラムに格納する機能と、上記指定パスに基づいて上記タグ付き構造化文書全体中の上記動的に選択される部位の位置を特定し、上記全体用カラムの情報及び上記動的部位用カラムの情報から、上記動的に選択される部位の情報が上記タグ付き構造化文書全体に反映されたタグ付き構造化文書を生成する機能と、を更にコンピュータに実現させるプログラムを記録してもよい。
【００２０】
本発明のその他の態様のタグ付き構造化文書格納システムの一つは、タグ付き構造化文書とＲＤＢとの間のマッピング条件及び上記ＲＤＢに格納される上記タグ付き構造化文書を一意に特定するための文書特定キーとを設定情報ファイルに任意設定する機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーとなる情報に対応付けて上記タグ付き構造化文書の全体を上記ＲＤＢの全体用カラムに格納し且つ上記タグ付き構造化文書の特定部位の情報を上記ＲＤＢの特定部位用カラムに格納する機能と、上記文書特定キーに基づいて、上記ＲＤＢの特定部位用カラムに格納される情報へアクセスする機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーの所定情報に対応付けされた上記全体用カラムの情報及び上記特定部位用カラムの情報からタグ付き構造化文書を生成する機能と、を有する。
【００２１】
また、同一の特定部位を二つ以上含むタグ付き構造化文書において、該タグ付き構造化文書中の各特定部位の位置を一意に特定する部位特定キーを上記設定情報ファイルに任意設定する機能と、上記タグ付き構造化文書中に同一の特定部位を二つ以上含む場合、上記同一の特定部位の情報を上記部位特定キーによって指定される情報に対応付けて上記特定部位用カラムに格納する機能と、上記特定部位用カラムに格納される上記同一の特定部位の情報の夫々に上記部位特定キーに基づいてアクセスする機能と、上記部位特定キーの情報から上記タグ付き構造化文書全体中の上記同一の特定部位の情報の位置を特定し、上記全体用カラムの情報及び上記特定部位用カラムの情報から、上記タグ付き構造化文書全体に上記同一の特定部位の情報が反映されたタグ付き構造化文書を生成する機能と、を更に有するようにしてもよい。
【００２２】
また、上記特定部位用カラムは少なくとも動的部位用カラムを含み、上記タグ付き構造化文書に含まれる部位の中から動的に選択される部位の情報の格納先として上記動的部位用カラムの指定を上記設定情報ファイルに任意設定する機能と、上記全体用カラムに格納されるタグ付き構造化文書全体及び上記特定部位用カラムに格納される部位の情報を対象に、上記タグ付き構造化文書に含まれる部位の情報へのアクセス数を上記部位ごとに履歴管理する機能と、上記設定情報ファイルに指定された上記動的部位用カラムに対し、上記タグ付き構造化文書中の上記部位の位置を指定する指定パスにより、上記タグ付き構造化文書中の上記アクセス数の多い部位を上記動的に選択される部位として昇降順に対応付けする機能と、上記指定パスに基づいて上記タグ付き構造化文書中の上記動的に選択される部位を上記動的部位用カラムに格納する機能と、上記指定パスに基づいて上記タグ付き構造化文書全体中の上記動的に選択される部位の位置を特定し、上記全体用カラムの情報及び上記動的部位用カラムの情報から、上記動的に選択される部位の情報が上記タグ付き構造化文書全体に反映されたタグ付き構造化文書を生成する機能と、を更に有するようにしてもよい。
【００２３】
本発明では、タグ付き構造化文書とＲＤＢとの間のマッピング条件及び上記ＲＤＢに格納される上記タグ付き構造化文書を一意に特定するための文書特定キーとを設定情報ファイルに任意設定できるようにする。このため、タグ付き構造化文書をＲＤＢに格納する際の、例えばタグ付き構造化文書中の何れの特定部位の情報をＲＤＢの特定部位用カラムに格納するかなどの対応付け及びその情報を有するタグ付き構造化文書の文書キーを、上記設定情報ファイルにおいて容易に設定変更できるようになる。
また本発明では、同一の特定部位を二つ以上含むタグ付き構造化文書において、該タグ付き構造化文書中の各特定部位の位置を一意に特定できるようにする。このため、タグ付き構造化文書中に同一の特定部位を二つ以上含む場合であっても、各特定部位の情報が一意に特定された状態で特定部位用カラムに格納される。
【００２４】
また本発明では、タグ付き構造化文書中の部位のアクセス数を履歴管理して、そのアクセス数の多い部位の情報から順に動的部位用カラムに格納するようにする。このため、例えば格納対象の部位の数を制限することにより、使用頻度の少ない部位の情報の格納を減らすことができる。
【発明の効果】
【００２５】
以上のように本発明では、設定情報ファイルを設けているため、タグ付き構造化文書とＲＤＢとの間のマッピング条件や検索キーを自由に設定変更できる。このため既存のＲＤＢシステムと連携する場合においても、設定情報ファイルの設定内容を変更し、検索キーをＲＤＢシステムに与える程度のことで容易に既存のＲＤＢシステムにおいてタグ付き構造化文書の情報が扱えるようになる。
【００２６】
また、本発明では、タグ付き構造化文書中に繰り返し現れる同一構造の部位を一意に特定できるようにＲＤＢに格納させるため、当該部位の情報を検索したり、更新したりすることが可能になる。また、当該部位の情報をタグ付き構造化文書中の所定位置に戻すことも可能になる。
【００２７】
また、本発明ではタグ付き構造化文書に含まれる部位の情報の利用頻度が高いもののみを所定期間毎にＲＤＢで管理するため、利用頻度が少ない部位の情報をＲＤＢで管理する必要がなくなり、ＲＤＢの記憶領域の有効利用ができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明を実施するための最良の形態を、図面を参照しながら詳細に説明する。
図１は、本発明の実施形態におけるタグ付き構造化文書格納システムの原理図である。      
本タグ付き構造化文書格納システム１は、例えばＸＭＬ（eXtensible Markup Language）やＳＧＭＬ（Standard Generalized Markup Language）などのように文書の構成要素間の階層構造や参照関係をタグを用いて表した文書（以下、総称してタグ付き構造化文書と呼ぶこととする）２を文書全体とその文書中の特定部位の情報（文書全体及びその文書中の特定部位の情報を、以下では総称してタグ付き構造化文書情報と呼ぶこととする）とをそれぞれ対応付けてＤＢ３に格納する。このＤＢ３に対するタグ付き構造化文書情報の上記格納や該格納情報に対する諸操作（検索・更新・削除）は、タグ付き構造化文書格納手段４を介して行なわれる。
【００２９】
タグ付き構造化文書格納手段４は、タグ付き構造化文書２を外部から受け取ると、タグ付き構造化文書格納手段４の外部に備えられた設定手段５の設定に応じて、上記入力されたタグ付き構造化文書２をタグ付き構造化文書全体とその文書中の特定部位の情報とに分け、互いの情報に対応関係を持たせてＤＢ３へ格納する。
【００３０】
また、ＤＢ３に登録されているタグ付き構造化文書情報の更新指示を受けると、ＤＢ３に格納されているタグ付き構造化文書情報を更新する。この更新情報は、上記設定手段５の設定に応じて、文書全体に反映することもできる。
【００３１】
上記設定手段５は、ＤＢ３に格納する特定部位の情報の指定、タグ付き構造化文書全体や特定部位の情報をＤＢ３に格納する際の格納形式や振り分け方の指定、更にはＤＢ３に格納されたタグ付き構造化文書情報を一意に特定するためのキーの指定など、タグ付き構造化文書とＤＢとの間のマッピングの条件を任意に設定でき、しかもこの設定の変更を上記タグ付き構造化文書格納手段４に依存することなく行なうことができる。
【００３２】
このような構成の下ではＤＢ３に対する格納方式を設定手段５によって様々に設定できるため、タグ付き構造化文書がどのような構造を持っていようとも、またＤＢ３に格納させるべきタグ付き構造化文書中の特定部位の情報が頻繁に変わるような場合でも上記設定手段５の設定を変えることによって、柔軟に、そのタグ付き構造化文書及びタグ付き構造化文書中の任意の特定部位の情報をＤＢ３に格納させることができる。そして、ＤＢ３に格納されたタグ付き構造化文書情報は、文書全体と文書中の特定部位の情報とが互いに関係付けされて別々に管理されるため、タグ付き構造化文書の全体だけでなく文書内の特定部位の情報も外部から利用可能になる。そして、上記設定手段５に設定されたタグ付き構造化文書情報を一意に特定できるキー（例えば文書キー）を獲得するだけで、タグ付き構造化文書を取り扱うように設計されていないレガシーシステム６からでもタグ付き構造化文書に含まれる特定部位の情報の取得・更新が可能になる。
【００３３】
また、特定部位の情報が利用できるようになる上、タグ付き構造化文書の特定部位の情報を更新する際は、ＤＢ３に格納されているタグ付き構造化文書の全体ではなくその特定部位の情報のみを更新するだけよいため、タグ付き構造化文書中の特定部位の情報の検索・更新等を外部から高速に行なうことができるようになる。
【００３４】
次に、本発明の実施形態におけるタグ付き構造化文書格納システムの実施例を示す。なお以下においては、タグ付き構造化文書の具体例としてＸＭＬで作成されたＸＭＬ文書を例に挙げて説明する。
【００３５】
但し、以下に説明するＸＭＬ装置を機能させるために必要な基本技術は、様々な文献（例えば特開２００２−１１７０５５号公報など）に詳しく開示されているため、基本技術に対する詳細な説明は省略或いは簡略化することとし、特に本発明の特徴部分について詳しく説明する。
【００３６】
第一実施例では、ＲＤＢ（Relational DataBase）に格納するＸＭＬ文書中の特定部位を設定手段で直接指定する場合の例を示す。
図２は、第一実施例におけるXML文書格納システムの構成図である。
【００３７】
本例のXML文書格納システム１１は、XML装置１２と、ＲＤＢＭＳの管理下にあるＲＤＢ１３と、ＸＭＬ装置１２及びＲＤＢ１３間でのＸＭＬ文書の格納・更新・検索・削除等の条件設定をする設定情報ファイル１４とを備える。これらは一つのコンピュータに実装させたり、或いは通信ネットワークを介して複数のコンピュータに分散して実装させることができる。
【００３８】
上記XML装置１１は、例えば、同図のXML文書１５の内容を分割したり合成したりする分割／合成部や、設定情報ファイル１４の設定を分析する設定情報分析部や、ＳＱＬ文を生成してＲＤＢＭＳにそのＳＱＬ文を発行するＳＱＬ文発行部や、更に、設定情報ファイル１４の設定に応じて必要（具体的な設定は後述する）な、システムの低負荷時を検出する装置負荷監視部などを備え、これらは対応する複数のプログラムやファイルがコンピュータで実行されることによって機能する。そして、上記各種のプログラム（例えばコンパイル済みのプログラム）がコンピュータで実行され、上記設定情報ファイル１４の設定が読まれることにより、上記各部が作用し、次の一から三の機能が実現する。
一．XML文書１５を対象に、該ＸＭＬ文書の「ＸＭＬ文書全体」、及び該ＸＭＬ文書中に含まれる「特定要素の内容」や「その要素の属性の値」（以下、特定要素やその要素の属性を総称して「特定部分（または特定部位や特定ノード）と呼び、特定部分の内容や値を総称して「特定部分情報」と呼び、「ＸＭＬ文書全体」及び「特定部分情報」を総称して「ＸＭＬ文書情報」と呼ぶこととする）を互いに対応付けてＲＤＢ１３の別々のカラムへ格納させる機能。
二．ＲＤＢ１３に格納されている「特定部分情報」を更新する機能。
三．「特定部分情報」の更新後のデータを、選択指定に基づいてＲＤＢ１３に格納されている「ＸＭＬ文書全体」に反映させる機能。
【００３９】
この第三の機能については後に詳しく説明するが、ＲＤＢ１３からＸＭＬ文書を取り出す際、「ＸＭＬ文書全体」に更新後の「特定部分情報」を反映して出力したり、反映せずに元のままのＸＭＬ文書を出力したり、或いは、例えばシステムの低負荷時に、上記更新後の「特定部分情報」を「ＸＭＬ文書全体」中の対応個所に反映し、反映後の「ＸＭＬ文書全体」を元の「ＸＭＬ文書全体」の位置に格納させたりする。
【００４０】
上記設定情報ファイル１４は、ＸＭＬで作成されており、ＸＭＬ文書１５とＲＤＢ１３のテーブル（またはＲＤＢテーブルともいう）との間のマッピングを任意に設定できる（言うまでもないが、上記設定は一度設定したものに対して変更を実施する設定変更の意味も含む）。例えば、ＸＭＬ文書中の「特定部分」を指定し、「ＸＭＬ文書全体」及びその「特定部分情報」をＲＤＢ１３の指定したテーブルやカラムへ格納するように指定できる。
【００４１】
また、例えば、ＲＤＢ１３に「ＸＭＬ文書全体」及び「特定部分情報」に振り分けて格納されたXML文書の、「ＸＭＬ文書全体」に対する「特定部分情報」の反映方式を指定できる。上述して説明したように、ＲＤＢ１３からＸＭＬ文書を取り出す際、「ＸＭＬ文書全体」の「特定部分」に更新後の「特定部分情報」を反映して出力したり、反映せずに「ＸＭＬ文書全体（元のままのＸＭＬ文書）」を出力したり、或いは、例えばシステムの低負荷時に、上記更新後の「特定部分情報」を「ＸＭＬ文書全体」の「特定部分」に反映し、反映後の「ＸＭＬ文書全体（更新後のＸＭＬ文書）」を元の「ＸＭＬ文書全体（元のままのＸＭＬ文書）」に換えて格納させたりするための指定が選択的に行なえる。
【００４２】
また更に、格納されている「ＸＭＬ文書情報」を一意に特定するためのキー（文書キー）を指定できる。
上記ＲＤＢ１３は、上記マッピングの設定に対応するように各種名称のテーブル及びカラムが作成されている。なお本例では、ＸＭＬ文書全体の格納には「ＢＬＯＢ型カラム」を使用する。また、「特定部分情報」を格納するカラムを「特定ノード用カラム」と総称する。
【００４３】
上記構成の下では、設定情報ファイル１４で設定された内容がＸＭＬ装置１２の設定情報分析部で分析され、その分析結果に基づいて、分割部で分割したＸＭＬ文書１５をＲＤＢに格納したり、ＲＤＢ１３から取り出したＸＭＬ文書を合成部で合成したりできる。その際、ＸＭＬ文書１５のＲＤＢ１３への格納やＲＤＢ１３からの取り出しは、ＳＱＬ文発行部で発行するＳＱＬ文をＲＤＢＭＳと取り交わすことにより行なう。
【００４４】
このため、ＸＭＬ文書を取り扱えない既存のシステム（同図のレガシーシステム６）からもＳＱＬを用いてＲＤＢ１３にアクセスすることができる。
以下に、同一の特定要素を繰り返し含まないXML文書及び同一の特定要素を繰り返し含むＸＭＬ文書と、それぞれのＸＭＬ文書に対する設定情報ファイルの記述例を示し、上記XML文書格納システム１１の処理を詳しく説明する。
【００４５】
なお、理解しやすいように以下においては、XML形式で示したＸＭＬ文書や設定情報ファイルの記述例の説明を、文書の左端に本文とは関係のない行番号（例えば「１：」や「２：」など）を付し、特に関係する個所のみとりあげて説明する。
【００４６】
先ず、同一の特定要素を繰り返し含まないXML文書と設定情報ファイルの組み合わせから説明する。
図３は、同一の特定要素を繰り返し含まないXML文書の記述例である。
【００４７】
同図に示されるXML文書３０は、要素“data”の子要素“person”の属性“id”に値“AB12345”を含み（３行目）、要素“data”の子要素“person”のそのまた子要素“name”に内容“Mr.Foo”を含み（４行目）、更に、要素“person”の子要素“home”のそのまた子要素“phone”に内容“0000-712-3543”を含んでいる（７行目）。
【００４８】
続いて、同一の特定要素を繰り返し含まない上記ＸＭＬ文書に対する設定情報ファイル１４の記述例を２種類紹介する。
図４は、同一の特定要素を繰り返し含まないＸＭＬ文書に対する設定情報ファイル１４の一つ目の例である。
【００４９】
本例の設定情報ファイル４０では、ＸＭＬ文書と一つのテーブル（ＲＤＢテーブル）との間のマッピングを設定する。本例では、設定情報ファイル４０において以下に示す一から五の指定を行なう。
一．「ＸＭＬ文書全体」と、テーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＣＯＰＹ」の値とが対応するように指定（３行目）。
二．「ＸＭＬ文書全体」を圧縮して格納するように指定し、ＸＭＬ文書の取り出し時に、取り出した「ＸＭＬ文書全体」に「特定ノード用カラム」の「特定部分情報」を反映させるように指定（４行目）。
三．ＸＭＬ文書の「特定部分」として、ＸＭＬ文書の木構造の頂点に位置する要素“data”の子要素“person”のそのまた子要素 “name”を指定し、更に、この「特定部分情報」とテーブル「ＡＤＤＲＢＯＯＫ」のカラム「NAME」の値とが対応するように指定（８行目）。
【００５０】
同様に、ＸＭＬ文書の「特定部分」として、要素“person”の子要素 “home”のそのまた子要素“phone”を指定し、更に、この「特定部分情報」とテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＴＥＬ＿ＨＯＭＥ」の値とが対応するように指定（１０行目）。
【００５１】
同様に、ＸＭＬ文書の「特定部分」として、要素“person”の属性“id”を指定し、更に、この「特定部分情報」とテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＩＤ」の値とが対応するように指定（１２行目）。
四．更新対象のテーブルとしてテーブル「ＡＤＤＲＢＯＯＫ」を指定（１６行目）。
五．ＸＭＬ文書ごとに一意になる主キーとして、要素“person”の属性“id”の値を指定し、これを更新対象テーブルのプライマリキーとして指定（１７行目から１９行目）。
【００５２】
図５は、同一の特定要素を繰り返し含まないＸＭＬ文書に対する設定情報ファイル１４の二つ目の例である。
本例の設定情報ファイル５０では、一つのＸＭＬ文書と、互いに関連付けされた複数のＲＤＢテーブルとの間のマッピングを設定する。本例では以下に示す一から六の指定を行なう。
一．「ＸＭＬ文書全体」とテーブル「ＯＲＩＧＩＮＡＬＤＡＴＡ」のカラム「ＣＯＰＹ」の値とが対応するように指定（３行目）。
二．「ＸＭＬ文書全体」を圧縮して格納するように指定し、ＸＭＬ文書の取り出し時に、取り出した「ＸＭＬ文書全体」に「特定ノード用カラム」の「特定部分情報」を反映させないように指定（４行目）。
三．ＸＭＬ文書の「特定部分」として、ＸＭＬ文書の木構造の頂点に位置する要素“data”の子要素“person”のそのまた子要素 “name”を指定し、更に、この「特定部分情報」とテーブル「ＴＥＬＬＩＳＴ」のカラム「NAME」の値とが対応するように指定（８行目）。
【００５３】
同様に、ＸＭＬ文書の「特定部分」として、要素“person”の子要素 “home”のそのまた子要素“phone”を指定し、更に、この「特定部分情報」とテーブル「ＴＥＬＬＩＳＴ」のカラム「ＴＥＬ＿ＨＯＭＥ」の値とが対応するように指定（１０行目）。
【００５４】
同様に、XML文書の「特定部分」として、要素“person”の属性“id”を指定し、更に、この「特定部分情報」とテーブル「ＯＲＩＧＩＮＡＬＤＡＴＡ」のカラム「ＩＤ」の値とが対応するように指定（１２行目）。
四．上記属性“id”の値をテーブル「ＴＥＬＬＩＳＴ」のカラム「ＩＤ」に対する外部キーとして指定（１３行目）。
五．更新対象のテーブルとしてテーブル「ＯＲＩＧＩＮＡＬＤＡＴＡ」及びテーブル「ＴＥＬＬＩＳＴ」を指定（１８、１９行目）。
六．ＸＭＬ文書ごとに一意になるキーとして、要素“person”の属性“id”の値を指定し、これを更新対象テーブルのプライマリキーとして指定（２０行目から２２行目）。
【００５５】
以下、同一の「特定部分」を含まないＸＭＬ文書を対象に実行されるＸＭＬ文書格納システム１１の各種処理を、図４または図５の設定を用いて説明する。
なお以下の説明では特に説明しないが、ＲＤＢ１３には、図４または図５の設定で示される各種テーブル及び各種カラムが予め作成されている。すなわち、図４の設定に対してはテーブル「ＡＤＤＲＢＯＯＫ」、該テーブル「ＡＤＤＲＢＯＯＫ」に対してカラム「ＣＯＰＹ」、カラム「ＮＡＭＥ」、カラム「ＴＥＬ＿ＨＯＭＥ」、及びカラム「ＩＤ」が作成され、図５の設定に対してはテーブル「ＯＲＩＧＩＮＡＬＤＡＴＡ」、該テーブル「ＯＲＩＧＩＮＡＬＤＡＴＡ」に対してカラム「ＩＤ」及びカラム「ＣＯＰＹ」、更に加えて、テーブル「ＴＥＬＬＩＳＴ」、該テーブル「ＴＥＬＬＩＳＴ」に対してカラム「ＩＤ」、カラム「NAME」、及びカラム「TEL HOME」が作成されている。
【００５６】
また、以降の説明において特に説明しないが、ＸＭＬ文書中の「特定部分」及びその「特定部分情報」は、ＸＭＬ装置１２の分割部から取り出しができる。
図６は、図３のＸＭＬ文書をＸＭＬ装置１２からＲＤＢ１３に格納する場合の処理フローである。
【００５７】
先ず、設定情報ファイル（図４または図５）から「ＸＭＬ文書全体を格納する指示」を取得する（Ｓ１００）。  上記「ＸＭＬ文書全体を格納する指示」とは、図４または図５の説明の「一」及び「二」で述べた、「ＸＭＬ文書全体」を対応付けるテーブル名とカラム名、及び格納時に圧縮するか否かの指定である。
【００５８】
そしてこの情報を基に、ＸＭＬ文書全体をＲＤＢ１３の「ＢＬＯＢカラム」に格納するＳＱＬ文（ＩＮＳＥＲＴ文）を作成する（Ｓ１０２）。なお上記「ＢＬＯＢカラム」は、図４の設定ではテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＣＯＰＹ」に相当し、図５の設定ではテーブル「ＯＲＩＧＩＮＡＬＤＡＴＡ」のカラム「ＣＯＰＹ」に相当する。
【００５９】
次に、上記設定情報ファイルから「ＸＭＬ文書中の特定部分情報を格納するための指示」を一つ取得する（Ｓ１０４）。この指示は、図４または図５の説明の「三」で述べた、「特定部分」の指定及び、その「特定部分情報」とテーブル名とカラム名の値の対応付けの指定であり、それが一つ取得される。
【００６０】
そしてこの取得した情報を基に、ＸＭＬ文書（図３）中の「特定部分情報」をＲＤＢ１３の対応する「特定ノード用カラム」に格納する命令を作成する（Ｓ１０６）。なお、図４の設定では、「特定ノード用カラム」はステップＳ１０２でＳＱＬ文を作成したテーブル「ＡＤＤＲＢＯＯＫ」と同じテーブルに設けられているため、ステップＳ１０６において作成されるＳＱＬ文はステップＳ１０２で作成されたＳＱＬ文に追加される。また、図５の設定では、「特定ノード用カラム」はステップＳ１０２でＳＱＬ文を作成したテーブル「ＡＤＤＲＢＯＯＫ」と異なるテーブル「ＴＥＬＬＩＳＴ」に設けられているため、ステップＳ１０６において作成されるＳＱＬ文は新規作成される。
【００６１】
ステップＳ１０６においてＳＱＬ文の追加或いは新規作成が終了すると、上記ＸＭＬ文書中の「特定部分情報」を格納する指定が他にも設定情報ファイル中に残っているか否か判定され（Ｓ１０８）、格納する指定が他にも残っていると判定されればステップＳ１０４に処理を戻し、ステップＳ１０４から上記と同様な手順で処理を行なう。すなわち、例えば、図４であれば、ステップＳ１０４において「ＸＭＬ文書の木構造の頂点に位置する要素“data”の子要素“person”のそのまた子要素 “name”を特定部分とし、更に、この要素“name”の内容をテーブル「ＡＤＤＲＢＯＯＫ」のカラム「NAME」の値に対応づけるという指定が、最初に取得され、ステップＳ１０６においては、上記取得内容に基づいてＳＱＬ文が作成される。そして、図４ではその他にも、「ＸＭＬ文書の要素“person”の子要素 “home”のそのまた子要素“phone”を特定情報とし、更に、この要素“phone”の内容をテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＴＥＬ＿ＨＯＭＥ」の値に対応づけるという指定」、「ＸＭＬ文書の要素“person”の属性“id”を特定情報とし、更に、この属性“id”の値をテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＩＤ」の値に対応づけるという指定」が残っているため、この順でステップＳ１０４からステップ１０８の処理が繰り返し行なわれる。
【００６２】
そして、ステップＳ１０８において格納する指定が他に無いと判定されれば、続くステップＳ１１０に処理を移行する。
ステップＳ１１０においては、テーブルごとに作られたＳＱＬ文を一つ選択して発行し、ＲＤＢ１３の対応するテーブルにレコードを追加する。図４の設定では「ＸＭＬ文書全体」、要素“name”の内容である“Mr.Foo”、要素“phone”の内容である“0000-712-3543”、及び属性“id”の値である“AB12345”からなるレコードが、カラム「ＣＯＰＹ」、カラム「ＮＡＭＥ」、カラム「ＴＥＬ＿ＨＯＭＥ」、及びカラム「ＩＤ」にそれぞれが対応するようにテーブル「ＡＥＥＲＢＯＯＫ」に追加される。また図５の設定では、属性“id”の値である“AB12345”及び「ＸＭＬ文書全体」からなるレコードが、カラム「ＩＤ」及びカラム「ＣＯＰＹ」にそれぞれ対応するようにテーブル「ＯＲＩＧＩＮＡＬＤＡＴＡ」に追加される。
【００６３】
そしてこの際に、主キー（本例ではＩＤの値）の衝突によりレコード追加が失敗したか否か判定され（Ｓ１１２）、失敗と判定され場合はＳＱＬ文（ＩＮＳＥＲＴ文）をＳＱＬ文（ＵＰＤＡＴＥ文）に変え、そのレコードを更新する（Ｓ１１４）。
【００６４】
そして、ステップＳ１１２でレコードが追加される、またはステップＳ１１４でレコードが更新されると、発行していないＳＱＬ文がその他にあるか否か判定される（Ｓ１１６）。
【００６５】
ステップＳ１１６で発行していないＳＱＬ文が残っていると判定されると、ステップＳ１１０に処理を戻し、上記と同様な手順でＲＤＢ１３の所定のテーブルにレコード追加或いはレコード更新を行なう。
【００６６】
図５の設定では、まだ、属性“id”の値である“AB12345”、要素“name”の内容である“Mr.Foo”、及び要素“phone”の内容である“0000-712-3543”からなるレコードを、カラム「ＩＤ」、カラム「ＮＡＭＥ」、及びカラム「ＴＥＬ＿ＨＯＭＥ」にそれぞれが対応するようにテーブル「ＴＥＬＬＩＳＴ」に追加するＳＱＬ文が残っているため、このＳＱＬ文を発行し、上記の通りレコードを追加する。
【００６７】
そして、ステップＳ１１６において全てのＳＱＬ文が発行されたと判定されると、当該格納処理を終了する。
以上の処理が行なわれる事により、ＲＤＢ１３には、以下のようにＸＭＬ文書情報が格納される。
【００６８】
図７は、図４の設定情報ファイルの設定に基づいて図３のＸＭＬ文書が格納処理された時の、格納後のＲＤＢ１３のテーブル例である。
同図の表７０は、ＲＤＢ１３に設定されているテーブル「ＡＤＤＲＢＯＯＫ」を表形式で示したものである。但し、このテーブル「ＡＤＤＲＢＯＯＫ」７０内の４つのカラム（「ＣＯＰＹ」７１、「ＮＡＭＥ」７２、「ＴＥＬ＿ＨＯＭＥ」７３、及び「ＩＤ」７４）は予め設定されていたものである。
【００６９】
上記格納処理の結果として、カラム「ＣＯＰＹ」７１、カラム「ＮＡＭＥ」７２、カラム「ＴＥＬ＿ＨＯＭＥ」７３、及びカラム「ＩＤ」７４には新たに、その順に、「ＸＭＬ文書全体」７５、ＸＭＬ文書（図３）中の要素“name”の内容“Mr.Foo”、ＸＭＬ文書（図３）中の要素“phone”の内容“0000-712-3543”、ＸＭＬ文書（図３）中の属性“id”の値“AB12354”からなるレコードが追加された。
【００７０】
図８は、図５の設定情報ファイルの設定に基づいて図３のＸＭＬ文書が格納処理された時の、格納後のＲＤＢ１３のテーブル例である。
同図の表８０、８１は、ＲＤＢ１３に設定されているテーブル「ＯＲＩＧＩＮＡＬＤＡＴＡ」、テーブル「ＴＥＬＬＩＳＴ」をそれぞれ表形式で示したものである。但し、これらの各テーブルに示されるカラム（カラム「ＩＤ」８２及びカラム「ＣＯＰＹ」８３、または、カラム「ＩＤ」８４、カラム「ＮＡＭＥ」８５、及びカラム「ＴＥＬ＿ＨＯＭＥ」８６）は、予め設定されていたものである。
【００７１】
上記処理の結果として、テーブル「ＯＲＩＧＩＮＡＬＤＡＴＡ」８０のカラム「ＩＤ」８２及びカラム「ＣＯＰＹ」８３には新たに、その順に、ＸＭＬ文書（図３）中の属性“id”の値“AB12354”及び「ＸＭＬ文書全体」７５からなるレコードが追加された。また、テーブル「ＴＥＬＬＩＳＴ」８１のカラム「ＩＤ」８４、カラム「NAME」８５、及びカラム「TEL HOME」８６には新たに、その順に、ＸＭＬ文書（図３）中の属性“id”の値“AB12354”、ＸＭＬ文書（図３）中の要素“name”の内容“Mr.Foo”、及びＸＭＬ文書（図３）中の要素“phone”の内容“0000-712-3543”からなるレコードが追加された。
【００７２】
次に、ＲＤＢ１３に格納されたＸＭＬ文書の「特定部分情報」を変更する場合の処理について説明する。
この処理は、ＲＤＢ１３の「特定ノード用カラム」に格納される「特定部分情報」を更新の対象とする。これはＲＤＢＭＳに対してＳＱＬで問合せを行なうため、当然、ＸＭＬ文書を扱えないレガシーシステムからでも同様の処理が可能である。
【００７３】
図９は、ＲＤＢ１３の「特定部分情報」を変更する際に行なわれる、当該ＸＭＬ装置１２（またはレガシーシステム１６）における処理フローである。
先ず、プライマリキーを基に対象のＸＭＬ文書を特定し、該ＸＭＬ文書の更新対象の「特定ノード用カラム」及び該「特定ノード用カラム」に対する新しい入力値を基にＳＱＬ文（ＵＰＤＡＴＥ文）を作成する（Ｓ２００）。レガシーシステム１６から本更新処理を行なう場合は、予め当該プライマリキーをレガシーシステム１６に設定する必要がある。また、ＸＭＬ装置１２を介して本更新処理を行なう場合は、設定情報ファイルの設定からプライマリキーを読み出すことができる。
【００７４】
そして、上記ＳＱＬ（ＵＰＤＡＴＥ文）をＲＤＢＭＳに対して発行する（Ｓ２０２）。
この結果、ＲＤＢ１３の更新対象の「特定ノード用カラム」の値が新しい入力値で更新される。
【００７５】
以上の更新処理により、ＲＤＢ１３に格納されたＸＭＬ文書の「特定部分情報」のみを更新することができる。
図１０は、図９の更新処理により、図７に示されるテーブル「ＡＤＤＲＢＯＯＫ」７０のカラム「ＮＡＭＥ」７２の値「Mr.Foo」を「Mrs Robinson」に更新処理した場合の、更新後のテーブル「ＡＤＤＲＢＯＯＫ」を示すものである。
【００７６】
同図から明らかなように、図７のカラム「ＮＡＭＥ」７２に格納されていた値「Mr.Foo」が値「Mrs Robinson」（図１０の１００）に更新されていることが分かる。ただし、カラム「ＣＯＰＹ」７１に格納されている「ＸＭＬ文書全体」７５の中の“name”の内容は“Mr.Foo”のままであることに注意されたい。
【００７７】
続いて、ＸＭＬ文書をＲＤＢ１３から取り出す際の処理フローを示す。
図１１は、ＸＭＬ文書をＲＤＢ１３から取り出す際の処理フローである。
なお、本処理を効果的に説明できるように、「特定部分情報」のみの更新が行なわれた図１０のＲＤＢテーブルから、ＸＭＬ文書を取り出す場合を例に挙げて説明する。
【００７８】
先ず、ＸＭＬ文書を一意に特定する値を持つ「特定部分」を設定情報ファイルから取得する。このとき「特定部分」が複数存在する場合は、ＸＭＬ文書を一意に識別できるその他の「特定部分」を設定情報ファイルに作成し、作成した「特定部分」を取得する（Ｓ３００）。このステップＳ３００により、図４の設定情報ファイルから要素“person”の属性“id”が取得される。
【００７９】
続いて、ステップＳ３００で取得した「特定部分」に対応するＲＤＢテーブル名とカラム名を設定情報ファイルから取得する（Ｓ３０２）。このステップＳ３０２により、図４の設定情報ファイルからテーブル「ＡＤＤＲＢＯＯＫ」とカラム「ＩＤ」が取得される。
【００８０】
続いて、上記「特定部分」の値（例えば、“AB12345”）と、上記取得したＲＤＢテーブル名（テーブル「ＡＤＤＲＢＯＯＫ」）及びカラム名（「ＩＤ」）を基に、該当するレコードを抽出するようにＳＱＬ（ＳＥＬＥＣＴ文）を作成する（Ｓ３０４）。
【００８１】
続いて、ステップＳ３０４で作成したＳＱＬ文をＲＤＢＭＳに発行し、ＲＤＢ１３から該当するレコードを取得する（Ｓ３０６）。このステップＳ３０６により、図１０に示される「ＸＭＬ文書全体」、「Mrs Robinson」、「0000-712-3543」、「AB12354」からなるレコードが取得される。
【００８２】
続いて、「ＸＭＬ文書全体」を格納するカラムの設定（ＲＤＢカラム名、圧縮／非圧縮の指定）を設定情報ファイルから取得する（Ｓ３０８）。このステップＳ３０８により、図４の設定情報ファイルからは「ＢＬＯＢカラム」及び「圧縮の指定」が取得される。
【００８３】
続いて、上記「ＸＭＬ文書全体」を格納するカラムの設定を基に、ステップＳ３０６で取得したレコードの中の「ＸＭＬ文書全体」を格納するカラムからＸＭＬ文書全体を取り出す（Ｓ３１０）。このステップＳ３１０により、図１０の「ＸＭＬ文書全体」６５が取得される。
【００８４】
続いて、ＸＭＬ文書の「特定部分情報」を格納する指示（格納する「特定部分」、ＲＤＢテーブル名、カラム名）を設定情報ファイルから取得する（Ｓ３１２）。
このステップＳ３１２により、図４の設定情報ファイルから要素“data”の子要素“person”のそのまた子要素に該当する“name”、テーブル「ＡＤＤＲＢＯＯＫ」、及びカラム「ＮＡＭＥ」が取得される。
【００８５】
続いて、指定されたテーブル「ＡＥＥＲＢＯＯＫ」のカラム「ＮＡＭＥ」の内容を上記レコードの対応カラムから取り出し、上記「特定部分」により特定される「ＸＭＬ文書全体」中の対応部分の内容を上記取り出した「ＮＡＭＥ」の内容で上書きする（Ｓ３１４）。このステップＳ３１４により、上記レコードのカラム「ＮＡＭＥ」の値「Mrs Robinson」が取得され、ステップＳ３１２で取得した「要素“data”の子要素“person”のそのまた子要素“name”」で示されるＸＭＬ文書全体６５中の対応部分の値「Mr.Foo」が、上記値「Mrs Robinson」で上書きされる。
【００８６】
最後に、ＸＭＬ文書の「特定部分情報」を格納する指示が他にあるか否か判定し（Ｓ３１６）、ある場合はステップＳ３１２から上記同様に処理を繰り返し、ＸＭＬ文書中の全ての特定部分の値を上書きする。また、ステップＳ３１６において格納指示が他に無いと判定された場合は本処理を終了する。
【００８７】
図１２は、図１０のＲＤＢに格納されるＸＭＬ文書を上記処理フローにより取り出した場合の結果である。
同図の１２００に示されるように、要素“data”の子要素“person”のそのまた子要素“name”の内容が“Mr.Foo”から“Mrs Robinson”に更新されている。
【００８８】
次に、同一の特定要素を繰り返し含むＸＭＬ文書と設定情報の組み合わせ例について説明する。
図１３は、同一の要素を繰り返し含むXML文書の記述例である。
【００８９】
同図に示されるXML文書１３０は、要素“data”の子要素“docNo”に内容“211”を含んでいる（３行目）。
また、要素“data”の子要素“person”の属性“id”に値“AB12345”を含み（４行目）、要素“person”の子要素“name”に内容“Mr.Foo”を含み（５行目）、更に、要素“person”の子要素“home”のそのまた子要素“phone”に内容“0000-712-3543”を含んでいる（８行目）。
【００９０】
上記４行目、５行目、８行目で指定される各要素や属性は、この順番に１１行目、１２行目、１５行目にも繰り返し現れ、それぞれは、値“CD12456”内容“Mr.Bar”内容“0000-643-3219”を含んでいる。
【００９１】
図１４は、同一の要素を繰り返し含むＸＭＬ文書１３０に対する設定情報ファイル１４の例である。
本例の設定情報ファイル１４０では、ＸＭＬ文書と二つのＲＤＢテーブルとの間のマッピングを設定する。本例では、以下に示す一から七の指定を行なう。
一．「ＸＭＬ文書全体」と、テーブル「ＤＯＣＵＭＥＮＴ」のカラム「ＣＯＰＹ」の値とが対応するように指定（３行目）。
二．「ＸＭＬ文書全体」を圧縮して格納するように指定し、システム低負荷時に「特定ノード用カラム」の「特定部分情報」を「ＸＭＬ文書全体」に反映し、反映した「ＸＭＬ文書全体」を元のカラムに再格納するように指定（４行目）。
三．ＸＭＬ文書中に繰り返し現れない要素に対し、以下の指定を適用する。
【００９２】
ＸＭＬ文書の「特定部分」として、要素“data”の子要素“docNo”を指定し、更に、この「特定部分情報」とテーブル「ＤＯＣＵＭＥＮＴ」のカラム「ＮＯ」の値とが対応するように指定（７行目）。
四．上記“docNo”の値をテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＤＯＣＮＯ」に対する外部キーとして指定（８行目）。
五．ＸＭＬ文書中に繰り返し現れる同一要素に対し、以下の指定を適用する。
【００９３】
ＸＭＬ文書の「特定部分」として、要素“person”のそのまた子要素 “name”を指定し、更に、この「特定部分情報」とテーブル「ＡＤＤＲＢＯＯＫ」のカラム「NAME」の値とが対応するようにを指定（１３行目）。
【００９４】
同様に、ＸＭＬ文書の「特定部分」として、要素“person”の子要素 “home”のそのまた子要素“phone”を指定し、更に、この「特定部分情報」とテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＴＥＬ＿ＨＯＭＥ」の値とが対応するようにを指定（１５行目）。
【００９５】
同様に、XML文書の「特定部分」として、要素“person”の属性“id”を指定し、更に、この「特定部分情報」とテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＩＤ」の値とが対応するように指定（１７行目）。
六．更新対象のテーブルとしてテーブル「ＤＯＣＵＭＥＮＴ」及びテーブル「ＡＤＤＲＢＯＯＫ」を指定（２３、２４行目）。
七．ＸＭＬ文書ごとに一意となるキーとして、要素“docNo”の値を指定し、同一の要素を一意に示すキーとして、要素“person”の属性“id”の値を指定し、各々の値を合わせたものを更新対象テーブルのプライマリキーとして指定（２５行目から２８行目）。
【００９６】
図１５は、同一の特定要素を繰り返し含むＸＭＬ文書１３０をＲＤＢ１３に格納する場合の処理フローである。
先ず、設定情報ファイル（図1４）から「ＸＭＬ文書全体を格納する指示」を取得する（Ｓ４００）。  上記「ＸＭＬ文書全体を格納する指示」とは、図１４の説明の「一」及び「二」で述べた、「ＸＭＬ文書全体」とテーブル名とカラム名の値の対応付け、及び格納時に圧縮するか否かの指定である。
【００９７】
そしてこの情報を基に、ＸＭＬ文書全体をＲＤＢ１３のＢＬＯＢカラムに格納するＳＱＬ文（ＩＮＳＥＲＴ文）を作成する（Ｓ４０２）。なお上記「ＢＬＯＢカラム」は、図１４の設定ではテーブル「ＤＯＣＵＭＥＮＴ」のカラム「ＣＯＰＹ」に相当する。
【００９８】
次に上記設定情報ファイルから「ＸＭＬ文書中の特定部分情報を繰り返しなしで格納する指示」を一つ取得する（Ｓ４０４）。この指示は、図１４の説明の「三」で述べた、文書中に繰り返し現れない「特定部分」の指定及び、その「特定部分情報」とテーブル名とカラム名の値の対応付けの指定であり、それが一つ取得される。
【００９９】
そしてこの取得した情報を基に、ＸＭＬ文書（図１３）中の上記「特定部分情報」をＲＤＢ１３の対応する上記「特定ノード用カラム」に格納する命令を作成する（Ｓ４０６）。設定情報ファイル（図１４）の設定では、ステップＳ４０２で作成されたＳＱＬ文と同一テーブル「ＤＯＣＵＭＥＮＴ」のカラム「ＮＯ」に対して子要素“docNo”の値が対応づけされているため、ステップＳ４０６で作成されるＳＱＬ文は上記ＳＱＬ文に追加される。
【０１００】
ステップＳ４０６においてＳＱＬ文の追加或いは新規作成が終了すると、上記「ＸＭＬ文書中の特定部分情報を繰り返し無しで格納する指示」が他にも設定情報ファイル中に残っているか否か判定され（Ｓ４０８）、その「指示」が他にも残っていると判定されればステップＳ４０４に処理を戻し、ステップＳ４０４から上記と同様な手順で処理を行なう。本例の設定情報ファイル（図１４）では「指示」は図１４の７行目に記される一つのみであるため、ステップＳ４０８において格納する指定が他に無いと判定され、続くステップＳ４１０に処理を移行する。
【０１０１】
ステップＳ４１０においては、テーブルごとに作られたＳＱＬ文を一つ選択して発行し、ＲＤＢ１３の対応するテーブルにレコードを追加する。設定情報ファイル（図１４）の設定では要素“docNo”の内容である“211”及び「ＸＭＬ文書全体」からなるレコードが、カラム「ＮＯ」及びカラム「ＣＯＰＹ」にそれぞれが対応するようにテーブル「ＤＯＣＵＭＥＮＴ」に追加される。
【０１０２】
そしてこの際に、主キー（本例ではＩＤの値）の衝突によりレコード追加が失敗したか否か判定され（Ｓ４１２）、失敗と判定され場合はＳＱＬ文（ＩＮＳＥＲＴ文）をＳＱＬ文（ＵＰＤＡＴＥ文）に変え、そのレコードを更新する（Ｓ４１４）。
【０１０３】
そして、ステップＳ４１２でレコードが追加される、またはステップＳ４１４でレコードが更新されると、発行していないＳＱＬ文がその他にあるか否か判定される（Ｓ４１６）。
【０１０４】
ステップＳ４１６でＳＱＬ文が残っていると判定されると、ステップＳ４１０に処理を戻し、上記と同様な手順でＲＤＢ１３の所定のテーブルにレコード追加或いはレコード更新を行なう。本例では他に発行されていないＳＱＬ文が残っていないため、続く処理に移行する。
【０１０５】
上記続く処理では、上記設定情報ファイルから「ＸＭＬ文書中の特定部分情報を繰り返し格納する指示」を一つ取得する（Ｓ４１８）。この「指示」は、図１４の説明の「五」で述べた、文書中に繰り返し現れる「特定部分」の指定及び、その「特定部分情報」とテーブル名とカラム名の値の対応付けの指定であり、それが一つ取得される。
【０１０６】
そしてこの取得した情報を基に、ＸＭＬ文書中の「特定部分情報」をＲＤＢ１３の「特定ノード用カラム」に格納する命令を作成する（Ｓ４２０）。
ステップＳ４２０においてＳＱＬ文の作成が終了すると、上記「ＸＭＬ文書中の特定部分情報を繰り返し格納する指示」が他にも設定情報ファイル中に残っているか否か判定され（Ｓ４２２）、その「指示」が他にも残っていると判定されればステップＳ４１８に処理を戻し、ステップＳ４１８から上記と同様な手順で処理を行なう。本例の設定情報ファイル（図１４）では、その１３行目、１５行目及び１７行目の３カ所に上記「指示」が記述され、何れもテーブル「ＡＤＤＲＢＯＯＫ」が対応付けられているため、上記ステップＳ４１８からステップＳ４２２までの処理が３回繰り返され、ＸＭＬ文書（図１３）中の４から１０行目に含まれる一つ目の「特定部分情報」を同一テーブル「ＡＤＤＲＢＯＯＫ」に格納するＳＱＬ文を作成する。そして、ステップＳ４２２において上記「指示」が他に無いと判定され、続くステップＳ４２４に処理を移行する。
【０１０７】
ステップＳ４２４においては、テーブルごとに作られたＳＱＬ文を一つ選択して発行し、ＲＤＢ１３の対応するテーブルにレコードを追加する。本例の設定情報ファイルの設定では要素“docNo”の内容である“211”、属性“id”の値である“CD12345”、要素“name”の内容である“Mr.Bar”、及び要素“phone”の内容である“0000-643-3219”からなるレコードが、それぞれカラム「ＤＯＣＮＯ」、カラム「ＩＤ」、カラム「ＮＡＭＥ」、及びカラム「ＴＥＬ＿ＨＯＭＥ」に対応するようにテーブル「ＡＤＤＲＢＯＯＫ」に追加される。なお、カラム「ＤＯＣＮＯ」の値に対する要素“docNo”の内容の対応付けは、設定情報ファイル（図４）の８行目でなされている。
【０１０８】
そしてこの時、主キー（本例の場合ＩＤ）の衝突によりレコード追加が失敗したか否か判定され（Ｓ４２６）、失敗と判定され場合はＳＱＬ文（ＩＮＳＥＲＴ文）をＳＱＬ文（ＵＰＤＡＴＥ文）に変え、そのレコードを更新する（Ｓ４２８）。
【０１０９】
ここで、ステップＳ４２６でレコードが追加される、またはステップＳ４２８でレコードが更新されると、発行していないＳＱＬ文がその他にあるか否か判定される（Ｓ４３０）。
【０１１０】
ステップＳ４３０でＳＱＬ文が残っていると判定されると、ステップＳ４２４に処理を戻し、上記と同様な手順でＲＤＢ１３の所定のテーブルにレコード追加或いはレコード更新を行なう。そして、ステップＳ４３０において全てのＳＱＬ文が発行されたと判定されると、繰り返し部分の一部が未格納であるかどうかを判定し（Ｓ４３２）、未格納であった場合はＳＱＬ文を消去し（Ｓ４３４）、ステップＳ４１８以後の処理を再び繰り返す。本例では、図１３の１１〜１７行目に含まれる２つめの「特定部分情報」が未格納であるため、ステップＳ４３２で未格納であると判定され、ステップＳ４１８から上記二つ目の「特定部分情報」に対する格納処理が行なわれる。
【０１１１】
そして、ステップＳ４３２において全て格納されたと判断されると、本格納処理を終了する。
図１６は、図１４の設定情報ファイルの設定に基づいて図１３のＸＭＬ文書が格納処理された時の、格納後のＲＤＢ１３のテーブル例である。
【０１１２】
同図の表１６０、１６１は、ＲＤＢ１３に設定されているテーブル「ＤＯＣＵＭＥＮＴ」とテーブル「ＡＤＤＲＢＯＯＫ」を表形式で示したものである。これらのテーブルの内、６つのカラム「ＮＯ」１６２、カラム「ＣＯＰＹ」１６３、カラム「ＤＯＣＮＯ」１６４、カラム「ＩＤ」１６５、カラム「ＮＡＭＥ」１６６、カラム「ＴＥＬ＿ＨＯＭＥ」１６７、は予め設定されていたものである。
【０１１３】
上記処理により、テーブル「ＤＯＣＵＭＥＮＴ」１６０のカラム「ＮＯ」１６２及びカラム「ＣＯＰＹ」１６３のそれぞれに対応するように、「ＸＭＬ文書全体」１３０の３行目に含まれる値「211」及び「ＸＭＬ文書全体」１３０が格納された。
【０１１４】
また、テーブル「ＡＤＤＲＢＯＯＫ」１６１のカラム「ＤＯＣＮＯ」１６４、カラム「ＩＤ」１６５、カラム「ＮＡＭＥ」１６６、及びカラム「ＴＥＬ＿ＨＯＭＥ」１６７のぞれぞれに対応するように、一つ目の「特定部分情報」である「211」、「AB12345」、「Mr.Foo」、及び「0000-712-3543」からなるレコードと、二つ目の「特定部分情報」である「211」、「CD12456」、「Mr.Bar」、及び「0000-643-3219」からなるレコードが格納された。
【０１１５】
このように格納された「特定部分情報」は、同一要素が繰り返し含まれないXML文書に対する処理例でも説明したが、RDBMSに対してSQLを発行することで行なえるため、XML文書を扱えないレガシーシステムからでも以下に示す処理に従って取得や更新等の処理が行なえる。
【０１１６】
図１７は、「特定部分情報」を取得する際に行なわれる、当該ＸＭＬ装置（またはレガシーシステム）における処理フローである。
先ず、ＸＭＬ文書を特定するカラム（図１６のカラム「NO」１６２）と繰り返し部分を特定するカラム（図１６のカラム「ID」１６５）をキーにレコードを特定し対象の「特定部分情報」に対応するカラムの値を取得するSQL文（SELECT文）を作成する（S５００）。
【０１１７】
そして、上記SQL文（SELECT文）をＲＤＢＭＳに対して発行する（Ｓ５０２）。
これにより、対象個所が取得される。
図１８は、「特定部分情報」を変更する際に行なわれる、当該ＸＭＬ装置（またはレガシーシステム）における処理フローである。
【０１１８】
先ず、ＸＭＬ文書を特定するカラム（図１６のカラム「NO」１６２）と繰り返し部分を特定するカラム（図１６のカラム「ID」１６５）をキーにレコードを特定し更新対象とする「特定部分情報」に対応するカラムの値を変更するSQL文（UPDATE文）を作成する（S６００）。
【０１１９】
そして、上記ＳＱＬ（ＵＰＤＡＴＥ文）をＲＤＢＭＳに対して発行する（Ｓ６０２）。
これにより、対象個所が更新される。
続いて、設定情報ファイル（図１４）の４行目に指定される反映処理について説明する。
【０１２０】
上記反映処理では、システム低負荷時に「特定ノード用カラム」の「特定部分情報」を「ＸＭＬ文書全体」に反映し、反映した「ＸＭＬ文書全体」を元のカラムに再格納する。
図１９は、上記反映処理フローの一例である。
【０１２１】
先ず、設定情報ファイルから「ＸＭＬ文書の一部を格納する指示」を一つ取得する（Ｓ７００）。上記「指示」とは、ＸＭＬ文書中の「特定部分」の指定と、その「特定部分情報」と対応する「ＲＤＢテーブル名」及び「カラム名」である。
【０１２２】
ここで他にも上記「指示」が設定情報ファイルに含まれているか否か判定し（Ｓ７０２）、含まれている場合はステップＳ７００の処理を繰り返す。そして、ステップＳ７０２で上記「指示」が他にないと判定されると、以下の処理に移行する。
【０１２３】
先ず、システムの負荷が低くなるまで待機する（Ｓ７０４）。なお、システムの負荷は、ＸＭＬ装置の装置負荷監視部で監視することができる。
続いて、ステップＳ７００で取得した「カラム名」の値の変更の有無を更新フラグで確認する（Ｓ７０６）。当該更新フラグを用いた変更の有無の確認は、図１８で説明した「特定部分情報」の変更の際に例えばその変更個所に対応させてフラグ「1」を立て、このフラグの状態を参照することで確認できる。
【０１２４】
ここで、上記変更の有無を判定し（Ｓ７０８）、該変更が確認されない場合はステップＳ７０４から処理を繰り返す。
そして、ステップＳ７０８で変更が確認されると、設定情報ファイルから「ＸＭＬ文書全体を格納する指示」を取得する（Ｓ７１０）。上記「ＸＭＬ文書全体を格納する指示」とは、「ＸＭＬ文書全体」とテーブル名とカラム名の値の対応付け、及び格納時に圧縮するか否かの指定である。
【０１２５】
続いて、ＸＭＬ文書を一意に特定する値を持つ「特定部分」（以下、文書キー部分と呼ぶこととする）を設定情報ファイルから取得する。このとき「特定部分」が複数存在する場合は、ＸＭＬ文書を一意に識別できるその他の「特定部分」を設定情報ファイルに作成し、作成した「特定部分」を取得する（Ｓ７１２）。
【０１２６】
続いて、上記文書キー部分に対応するＲＤＢテーブル名及びカラム名を設定情報ファイルから取得する（Ｓ７１４）。
続いて、内容変更があったＸＭＬ文書に上記文書キーの値をＲＤＢから取得する（Ｓ７１６）。
【０１２７】
続いて、上記文書キーの値を使用して、内容変更のあったカラムの値（以下、更新済み特定部分情報と呼ぶこととする）とこれに対応する「ＸＭＬ文書全体」とをＲＤＢ１３から取り出す（Ｓ７１８）。
【０１２８】
続いて、ステップＳ７１８で取り出した「更新済み特定部分情報」で、同じくステップＳ７１８で取り出した「ＸＭＬ文書全体」中の該当する「特定部分」の値を更新する（Ｓ７２０）。
【０１２９】
最後に、更新後の「ＸＭＬ文書全体」をＲＤＢの元にカラムに格納する（Ｓ７２２）。なおこのとき、更新した個所に対応する更新フラグを「１」から「０」にする。
そして、他の更新個所に対し、ステップＳ７０４から処理を繰り返す。
（第二実施例）
本実施例では、ＲＤＢに格納するＸＭＬ文書中の特定部位を、更新・参照の頻度を学習することにより動的に変えていく例を示す。
【０１３０】
図２０は、第二実施例におけるＸＭＬ文書格納システムの構成図である。
本例のXML文書格納システム２００は、XML装置２０２と、ＲＤＢＭＳの管理下にあるＲＤＢ２０４と、ＸＭＬ装置２０２及びＲＤＢ２０４間でのＸＭＬ文書の格納・更新・検索・削除等の条件設定をする設定情報ファイル２０６とを備える。これらは一つのコンピュータに実装させたり、或いは通信ネットワークを介して複数のコンピュータに分散して実装させることができる。
【０１３１】
本実施例では格納対象のＸＭＬ文書中の特定部位を動的に変化させるため、上記ＲＤＢ２０４に２種類のテーブル（ＸＭＬ内容格納テーブル２０４−１、ＸＭＬノード−カラム動的マッピングテーブル２０４−２）を設ける。
【０１３２】
上記ＸＭＬ内容格納テーブル２０４−１は第一実施例のＲＤＢテーブルに相当し、もう一方の上記ＸＭＬノード−カラム動的マッピングテーブル２０４−２は、ＸＭＬ文書中の「特定部分」と上記ＸＭＬ内容格納テーブル２０４−１中の「特定ノード用カラム」との間のマッピングを動的に変化させるためのテーブルである。
【０１３３】
そして、上記マッピングを動的に変化させるため、ＸＭＬ装置２０２には第一実施例で述べた機能に加え、更に学習機能を備える。
上記学習機能は、ＲＤＢ２０４に格納されたＸＭＬ文書情報（「ＸＭＬ文書全体」または「特定部分情報」）に対するアクセス処理及び該アクセス先の「特定部分」に対する処理を監視するノードアクセス監視部２１０と、ＲＤＢ２０４の「特定ノード用カラム」へのアクセス処理及び該処理を監視するカラムアクセス監視部２１２と、上記ノードアクセス監視部２１０及び上記カラムアクセス監視部２１２によって検出される「特定部分」（「特定ノード用カラム」と対応する「特定部分」も含む）のアクセス情報（更新・参照）を履歴管理する更新参照履歴管理部２１４と、該更新参照履歴管理部２１４によって管理されるアクセス履歴を基に、上記ＸＭＬ内容格納テーブル２０４−１の「特定ノード用カラム」に格納させる「特定部分情報」の設定変更を上記ＸＭＬノード−カラム動的マッピングテーブル２０４−２に対して行なう更新部２１６とを備える。
【０１３４】
なお、上記設定情報ファイル２０６では、第一実施例で説明した設定に加え、上記ＸＭＬ内容格納テーブル２０４−１において動的に変化させるカラムの指定を行なう。
以下に、第一実施例に例示した「同一の特定要素を繰り返し含まないXML文書（図３）と設定情報ファイル（図４）とそのＲＤＢテーブル（図７）の組み合わせ例」、と比較して、第二実施例のXML文書格納システム２００の処理を詳しく説明する。
【０１３５】
なお、第一実施例と同様に、以下の説明においても理解しやすいように、XML形式で示したＸＭＬ文書や設定情報ファイルの記述例の説明を、文書の左端に本文とは関係のない行番号（例えば「１：」や「２：」など）を付し、特に関係する個所のみとりあげて説明する。
【０１３６】
図２１は、同一の特定要素を繰り返し含まないＸＭＬ文書（図３）に対する設定情報ファイルの例である。
本例の設定情報ファイル２１８では、第一実施例の設定情報ファイル（図４）に対し、次のように変更する。
【０１３７】
ＸＭＬ文書の木構造の頂点に位置する要素“data”の子要素“person”のそのまた子要素 “name”の内容をテーブル「ＡＤＤＲＢＯＯＫ」のカラム「NAME」の値に対応させる指定（図４の８行目）と、要素“person”の子要素 “home”のそのまた子要素“phone”の内容をテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＴＥＬ＿ＨＯＭＥ」の値に対応させる指定（図４の１０行目）を共に解除し、テーブル「ＡＤＤＲＢＯＯＫ」の「カラム１」から「カラム５」を、動的に変化する格納対象ノード（特定部分）の内容（特定部分情報）を格納するカラムとして指定する（図２１の１３行目から１７行目）。
【０１３８】
図２２は、上記設定情報ファイル（図２１）に対応するように作成したＸＭＬ格納内容テーブル（テーブル「ＡＤＤＲＢＯＯＫ」）を表形式で示したものである。
同図のテーブル「ＡＤＤＲＢＯＯＫ」２２０には、第一実施例の図７に示されるテーブルと同様に、ＸＭＬ文書全体を格納させるためのＢＬＯＢカラム「ＣＯＰＹ」及びＸＭＬ文書中の動的に変化しない「特定部分」（本例では属性“id”）に含まれる「特定部分情報」を格納するための固定カラム（本例ではカラム「ＩＤ」）が設けられている。そして、カラム「ＮＡＭＥ」及びカラム「ＴＥＬ＿ＨＯＭＥ」の代わりに、ＸＭＬ文書中の動的に変化する「特定部分」（本例では５つとする）に含まれるそれぞれの「特定部分情報」を格納するための動カラム（上記動的に変化する「特定部分」の数に合わせて本例では５つのカラム「カラム１」、「カラム２」、「カラム３」、「カラム４」、及び「カラム５」）が設けられている。
【０１３９】
図２３は、本実施例において新たに作成したＸＭＬノード−カラム動的マッピングテーブルを表形式で示したものである。
同図の左から順に、動カラムが設定されているテーブル名を格納するためのカラム「テーブル名」、該動カラム名を格納するためのカラム「カラム名」、及び同一レコードに示されるテーブルのカラムに格納させるＸＭＬ文書中の「特定部分情報」の位置を格納するカラム「対象ノードのXPath」が設けられている。
【０１４０】
図２４は、更新参照履歴テーブルを表形式で示したものである。
同図の左から順に、ＸＭＬ内容格納テーブル２０４−１に格納されたＸＭＬ文書情報に対して情報の参照・更新が行なわれた「特定部分」の位置を記録するためのカラム「対象ノードのＸＰａｔｈ」、該「特定部分」に対する参照・更新回数を記録するためのカラム「のべ参照・更新回数」、及び反映の有無を記録するためのカラム「反映済みフラグ」が設定されている。
【０１４１】
図２５は、設定情報ファイル２０６に基づいて、ＸＭＬ文書１５をＸＭＬ装置２０２からＲＤＢ２０４に格納する場合の処理フローである。
但し、本処理を説明する前提として、図２３のＸＭＬノード−カラム動的マッピングテーブルは、次に示されるにような設定が現在なされているものとする。
【０１４２】
図２６にはその設定を示す。
すなわち、カラム「テーブル名」には全て、テーブル「ＡＤＤＲＢＯＯＫ」が指定され、カラム「カラム名」には、「カラム１」から「カラム５」が指定され、これら「カラム１」・・・「カラム５」に対し、それぞれ、カラム「対象ノードのXPath」に「要素“data”の子要素“person”の子要素“name”」、・・・、「要素“data”の子要素の“person”の子要素の“home”の子要素“phone”」が割り当てられている。
【０１４３】
これらの設定は、後に詳しく説明するが、学習機能によりその時点で最も多く更新・参照がなされた情報を含む「特定部分」をランク付けし、上位の「特定部分」を動的カラムに一つずつ対応付けする処理により、更新参照部位更新部２１６から設定される。
【０１４４】
さて、上記前提条件をもとに、図２５の処理フローを説明する。
先ず、設定情報ファイル（図２１）から「ＸＭＬ文書全体を格納する指示」を取得する（Ｓ８００）。上記「ＸＭＬ文書全体を格納する指示」とは、「ＸＭＬ文書全体」とテーブル名とカラム名の値の対応付け、及び格納時に圧縮するか否かの指定である。すなわち本例の場合、「ＸＭＬ文書全体」をＢＬＯＢカラム（＝テーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＣＯＰＹ」）に「圧縮」して格納するという指定に相当する。
【０１４５】
そしてこの情報を基に、ＸＭＬ文書全体をＲＤＢ２０４の「ＢＬＯＢカラム」に格納するＳＱＬ文（ＩＮＳＥＲＴ文）を作成する（Ｓ８０２）。
次に、上記設定情報ファイルから「ＸＭＬ文書中の特定部分情報を静的に格納するための指示」を一つ取得する（Ｓ８０４）。この「静的に」とは、「特定部分」とその「特定部分情報」の格納先とが事前に対応付けされていることを差している。上記「指示」は本例の場合、要素“data”の子要素“person”の属性“id”の値をテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＩＤ」に格納する指示に相当する。
【０１４６】
そしてこの取得した情報を基に、ＸＭＬ文書（図３）中の事前に指定された「特定部分」の内容をＲＤＢ２０４の対応テーブルの対応カラム（特定ノード用カラム）に格納する命令を作成する（Ｓ８０６）。なお、図２１の設定では、カラム「ＩＤ」はカラム「ＣＯＰＹ」と同じテーブル「ＡＤＤＲＢＯＯＫ」に作成されているため、ステップＳ８０６において作成されるＳＱＬ文はステップＳ８０２で作成されたＳＱＬ文に追加される。なお、上記対応カラムがテーブル「ＡＤＤＲＢＯＯＫ」と異なるテーブルに設けられている場合、ＳＱＬ文はそのテーブルに対して新規作成される。
【０１４７】
ステップＳ８０６においてＳＱＬ文の追加或いは新規作成が終了すると、上記ＸＭＬ文書中の「特定部分情報」を静的に格納する指示が他にも設定情報ファイル中に残っているか否か判定され（Ｓ８０８）、格納する指示が他にも残っていると判定されればステップＳ８０４に処理を戻し、ステップＳ８０４から上記と同様な手順で処理を行なう。
【０１４８】
そして、ステップＳ８０８において格納する指示が他に無いと判定されれば、続くステップＳ８１０に処理を移行する。
続く処理では、上記設定情報ファイルから「ＸＭＬ文書中の動的に変わる特定部分の内容を格納するための指示」を一つ取得する（Ｓ８１０）。上記「指示」は本例の場合、テーブル「ＡＤＤＲＢＯＯＫ」の「カラム１」を動カラムとする指示、テーブル「ＡＤＤＲＢＯＯＫ」の「カラム２」を動カラムとする指示、テーブル「ＡＤＤＲＢＯＯＫ」の「カラム３」を動カラムとする指示、テーブル「ＡＤＤＲＢＯＯＫ」の「カラム４」を動カラムとする指示、及びテーブル「ＡＤＤＲＢＯＯＫ」の「カラム５」を動カラムとする指示があり、これらのうちの一つが取得される。
【０１４９】
続いて、ＸＭＬノード−カラム動的マッピングテーブルから、該テーブルに現在格納している「テーブル名」、「カラム名」、及び「特定部分」の位置の組み合わせを取得する（Ｓ８１２）。
【０１５０】
そして、動カラムとして指定されたカラムに対し、ＸＭＬノード−カラム動的マッピングテーブルで対応付けされた「特定部分」の位置の情報を格納させる構文をＳＱＬ文に追加する（Ｓ８１４）。本例では、上記動カラムがテーブル「ＡＤＤＲＢＯＯＫ」に設けられているため、テーブル「ＡＤＤＲＢＯＯＫ」に対して作成されたＳＱＬ文に追加する形式をとるが、上記動的カラムがテーブル「ＡＤＤＲＢＯＯＫ」と異なるテーブルに設けられている場合は、そのテーブルに対してＳＱＬ文を新規作成する。
【０１５１】
ステップＳ８１４においてＳＱＬ文の追加或いは新規作成が終了すると、上記「ＸＭＬ文書中の動的に変わる特定部分の内容を格納するための指示」が他にも設定情報ファイル中に残っているか否か判定され（Ｓ８１６）、格納する指示が他にも残っていると判定されればステップＳ８１０に処理を戻し、ステップＳ８１０から上記と同様な手順で処理を行なう。
【０１５２】
上述したように本例では、上記「ＸＭＬ文書中の動的に変わる特定部分の内容を格納するための指示」が５種類あるため、ステップＳ８１０からステップＳ８１６までの処理は５回繰り返される。
【０１５３】
そして、ステップＳ８１６において格納する指示が他に無いと判定されれば、続くステップＳ８１８に処理を移行する。
ステップＳ８１８においては、テーブルごとに作られたＳＱＬ文を一つ選択して発行し、ＲＤＢ２０４のＸＭＬ内容格納テーブル２０４−１にレコードを追加する。本例では「ＸＭＬ文書全体」、属性“id”の値である“AB12345”要素“name”の内容である“Mr.Foo”、・・・、及び要素“phone”の内容である“0000-712-3543”からなるレコードが、カラム「ＣＯＰＹ」、カラム「ＩＤ」、カラム「ＮＡＭＥ」、・・・、及びカラム「ＴＥＬ＿ＨＯＭＥ」にそれぞれが対応するようにテーブル「ＡＤＤＲＢＯＯＫ」に追加される。
【０１５４】
そしてこの際に、主キー（本例ではＩＤの値）の衝突によりレコード追加が失敗したか否か判定され（Ｓ８２０）、失敗と判定され場合はＳＱＬ文（ＩＮＳＥＲＴ文）をＳＱＬ文（ＵＰＤＡＴＥ文）に変え、そのレコードを更新する（Ｓ８２２）。
【０１５５】
そして、ステップＳ８１８でレコードが追加される、またはステップＳ８２２でレコードが更新されると、発行していないＳＱＬ文がその他にあるか否か判定される（Ｓ８２４）。
【０１５６】
ステップＳ８２４で発行していないＳＱＬ文が残っていると判定されると、ステップＳ８１８に処理を戻し、上記と同様な手順でＲＤＢ２０４の所定のテーブルにレコード追加或いはレコード更新を行なう。
【０１５７】
そして、ステップＳ８２４において全てのＳＱＬ文が発行されたと判定されると、当該格納処理を終了する。
以上の処理が行なわれる事により、ＲＤＢ２０４には、以下のようにＸＭＬ文書情報が格納される。
【０１５８】
図２７は、図２１の設定情報ファイルの設定及び図２６のＸＭＬノード−カラム動的マッピングテーブルに基づいて図３のＸＭＬ文書が格納処理された時の、格納後のＸＭＬ内容格納テーブル２０４−１のテーブル例である。
【０１５９】
同図の表２７０は、本例のＸＭＬ内容格納テーブル２０４−１であるテーブル「ＡＤＤＲＢＯＯＫ」を表形式で示したものである。
同図から分かるように、上記格納処理の結果、カラム「ＣＯＰＹ」２７１、カラム「ＩＤ」２７２、「カラム１」２７３、・・・、「カラム５」２７４には新たに、その順に、「ＸＭＬ文書全体」７５、ＸＭＬ文書（図３）中の属性“id”の値“AB12354”、ＸＭＬ文書（図３）中の要素“name”の内容“Mr.Foo”、・・・、ＸＭＬ文書（図３）中の要素“phone”の内容“0000-712-3543”からなるレコードが追加された。
【０１６０】
図２８はＲＤＢ２０４からＸＭＬ文書を取り出す際の処理フローである。
先ず、ＸＭＬ文書を一意に特定する値を持つ「特定部分」を設定情報ファイルから取得する。このとき「特定部分」が複数存在する場合は、ＸＭＬ文書を一意に識別できるその他の「特定部分」を設定情報ファイルに作成し、作成した「特定部分」を取得する（Ｓ９００）。このステップＳ９００により、図２１の設定情報ファイルから要素“person”の属性“id”が取得される。
【０１６１】
続いて、ステップＳ９００で取得した「特定部分」に対応するＲＤＢテーブル名とカラム名を設定情報ファイルから取得する（Ｓ９０２）。このステップＳ９０２により、図２１の設定情報ファイルからテーブル「ＡＤＤＲＢＯＯＫ」とカラム「ＩＤ」が取得される。
【０１６２】
続いて、上記「特定部分」の値（例えば、“AB12345”）と、上記取得したＲＤＢテーブル名（テーブル「ＡＤＤＲＢＯＯＫ」）及びカラム名（「ＩＤ」）を基に、該当するレコードを抽出するようにＳＱＬ（ＳＥＬＥＣＴ文）を作成する（Ｓ９０４）。
【０１６３】
続いて、ステップＳ９０４で作成したＳＱＬ文をＲＤＢＭＳに発行し、ＲＤＢ２０４から該当するレコードを取得する（Ｓ９０６）。このステップＳ９０６により、図２７に示される「ＸＭＬ文書全体」、「AB12354」、「Mr.Foo」、及び「0000-712-3543」、からなるレコードが取得される。
【０１６４】
続いて、「ＸＭＬ文書全体」を格納するカラムの設定（ＲＤＢカラム名、圧縮／非圧縮の指定）を設定情報ファイルから取得する（Ｓ９０８）。このステップＳ９０８により、図２１の設定情報ファイルからはカラム「ＣＯＰＹ」及び「圧縮の指定」が取得される。
【０１６５】
続いて、上記「ＸＭＬ文書全体」を格納するカラムの設定を基に、ステップＳ９０６で取得したレコードの中の「ＸＭＬ文書全体」を格納するカラムから「ＸＭＬ文書全体」を取り出す（Ｓ９１０）。このステップＳ９１０により、図２７の「ＸＭＬ文書全体」７５が取得される。
【０１６６】
続いて、「ＸＭＬ文書中の特定部分情報を静的に格納するための指示」（格納する「特定部分」の位置、ＲＤＢテーブル名、カラム名）を設定情報ファイルから取得する（Ｓ９１２）。
【０１６７】
このステップＳ９１２により、図２１の設定情報ファイルから属性“id”の位置とテーブル「ＡＤＤＲＢＯＯＫ」、カラム「ＩＤ」が取得される。
続いて、指定されたテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＩＤ」の内容を上記レコードの対応カラムから取り出し、上記「特定部分」の位置により特定される「ＸＭＬ文書全体」中の対応部分（属性“id”）の内容を上記対応カラム（カラム「ＩＤ」）から取り出した内容で上書きする（Ｓ９１４）。このステップＳ９１４により、上記レコードのカラム「ＩＤ」の値が書き換えられていれば「ＸＭＬ文書全体」７５中の対応部分の内容をその買い替え後の値で更新できる。
【０１６８】
ここで、ＸＭＬ文書の「特定部分情報」を格納する指示が他にあるか否か判定し（Ｓ９１６）、ある場合はステップＳ９１２から上記同様に処理を繰り返し、「ＸＭＬ文書全体」中の全ての特定部分の値を上書きする。また、ステップＳ９１６において格納指示が他に無いと判定された場合は続く処理に移行する。
【０１６９】
続く処理では、「ＸＭＬ文書中の動的に変わる特定部分の内容を格納するための指示」（ＲＤＢテーブル名、カラム名）を設定情報ファイルから取得する（Ｓ９１８）。
このステップＳ９１８により、図２１の設定情報ファイルからテーブル「ＡＤＤＲＢＯＯＫ」と「カラム１」が取得される。
【０１７０】
続いて、ＸＭＬノード−カラム動的マッピングテーブルから、当該テーブル「ＡＤＤＲＢＯＯＫ」、当該カラム「カラム１」、及びこれに対応する「特定部分」の位置の組み合わせを取得する（Ｓ９２０）。ＸＭＬノード−カラム動的マッピングテーブルの現在の設定が図２６に示される設定である場合、「ＡＤＤＲＢＯＯＫ」、「カラム１」、及び「要素“name”の位置」が取得される。
【０１７１】
指定されたテーブル「ＡＤＤＲＢＯＯＫ」の「カラム１」の内容を上記レコードの対応カラムから取り出し、上記「特定部分」の位置により特定される「ＸＭＬ文書全体」中の対応部分（上記の場合、要素“name”）の内容を上記対応カラム（カラム１）から取り出した内容で上書きする（Ｓ９２２）。このステップＳ９２２により、上記レコードの「カラム１」の値が書き換えられていれば「ＸＭＬ文書全体」７５中の対応部分の内容をその書き替え後の値で更新できる。
【０１７２】
ここで、「ＸＭＬ文書中の動的に変わる特定部分の内容を格納するための指示」が他にあるか否か判定し（Ｓ９２４）、ある場合はステップＳ９１８から上記同様に処理を繰り返し、動的に変化する「特定部分」に対応する「ＸＭＬ文書全体」中の情報を全て上書きする。本例では、上記「カラム１」以外に「カラム２」、「カラム３」、「カラム４」、及び「カラム５」が動カラムに指定されているため、それらに対しても同様に処理が繰り返される。そして、ステップＳ９２４において格納指示が他に無いと判定された場合は本処理を終了する。
【０１７３】
続いて、ＲＤＢ２０４に格納されたＸＭＬ文書の「特定部分」を参照・更新した場合の、更新参照履歴管理部２１４に対する記録処理について説明する。
ＲＤＢ２０４に格納されているＸＭＬ文書の「特定部分」を参照・更新する場合、例えばＸＭＬ文書を一意に特定できるキーにより該当レコードを特定し、上記「特定部分」のカラムに対する参照・更新処理を行なう。例えばレガシーシステムからこの処理を行なう場合、カラムアクセス監視部２１２を介して該当レコード中の「動カラム」または「固定カラム」に対する参照・更新処理が行なわれる。上記「特定部分」が「動カラム」及び「固定カラム」の何れにも対応しない場合には、「ＢＬＯＢカラム」に格納された「ＸＭＬ文書全体」中の上記「特定部分」の値に対して参照・更新処理を行なう必要がある。この場合はノードアクセス監視部２１０を介して、該当レコード中の「ＢＬＯＢカラム」に対して所望の「特定部分」の値が参照・更新される。
【０１７４】
図２９は、ノードアクセス監視部２１０（またはカラムアクセス監視部２１２）及び更新参照履歴管理部２１４における参照・更新記録の処理フローである。
先ず、ノードアクセス監視部２１０（またはカラムアクセス監視部２１２）において、ＲＤＢ２０４に格納されたＸＭＬ文書の「特定部分」の値に対する参照・更新を監視し（Ｓ１０００）、参照・更新があったか否かを判定する（Ｓ１００２）。ここで参照・更新が検出されなければ処理を繰り返し、参照・更新が検出されるとステップＳ１００４に処理を移行する。
【０１７５】
ステップＳ１００４においては、参照・更新を行なった「特定部分」が含まれる「ＸＭＬ文書全体」の位置（「ＸＰａｔｈ文字列」）または「固定カラム」や「動カラム」に対応する「特定部分」の「ＸＰａｔｈ文字列」と、その「特定部分」に対する「のべ更新・参照回数」を更新参照履歴管理部２１４に記録する（Ｓ１００４）。
【０１７６】
そして最後に、更新・参照履歴の当該ＸＰａｔｈ文字列の「反映済みフラグ」を“未反映”にセットし（Ｓ１００６）、ステップＳ１０００の処理に戻る。
図３０は、上記参照・更新記録の処理フローによって情報が記録された場合の、更新参照履歴管理部２１４のテーブルに対する格納例を、表形式で示したものである。
【０１７７】
本例では、カラム「対象ノードのＸＰａｔｈ」、カラム「のべ参照・更新回数」、及びカラム「反映済みフラグ」に対し、この順に“data/person/home/phone”、“25”、及び“未反映”が記録されている。これは、要素“data”の子要素“person”の子要素“home”の子要素“phone”の内容に対して参照・更新がのべ２５回なされ、未反映であることを示している。
【０１７８】
図３１は、動的格納部位の変更処理である。
先ず、ＸＭＬ文書を一意に特定する値を持つ「特定部分」（以下、文書キーのノードと呼ぶこととする）を設定情報ファイルから取得する（Ｓ１１００）。なお、同名の「特定部分」が複数ある場合は設定情報ファイルに別名を設定し、この別名を文書キーのノードとする。
【０１７９】
続いて、ＸＭＬ文書の繰り返し部分の一つを特定する値を持つ「特定部分」（以下、繰り返しキーのノードと呼ぶこととする）を、設定情報ファイルから取得する（Ｓ１１０２）。なお、同名の「特定部分」が複数ある場合は設定情報ファイルに別名を設定し、この別名を繰り返しキーのノードとする。
【０１８０】
ここで、設定情報ファイルを見て、文書キーのノードを格納するＲＤＢテーブルの名前を取得する。そして、それらのテーブルのうち、動的に変わる格納対象部位を格納する指示のあるテーブルの名前のリスト（以下、格納テーブルリストと呼ぶこととする）を作成する（Ｓ１１０４）。
【０１８１】
続いて、ＸＭＬノード−カラム動的マッピングテーブルの内容を全消去する（Ｓ１１０６）。
続いて、動的に変わる格納対象部位を格納するカラム（動カラム）の内容を消去する（Ｓ１１０８）。
【０１８２】
そして、参照・更新履歴テーブルに「未反映」の記録があるか否か判定される（Ｓ１１１０）。
この判定により「未反映」の記録があると判定されると、続く処理が実行される。
【０１８３】
先ず、「未反映」・のべ参照・更新回数が最も多い「特定部分」（以下、対象ノードと呼ぶこととする）を参照・更新履歴テーブルから選択する（Ｓ１１１２）。
続いて、設定情報ファイルを見て繰り返し現れる要素の位置を確認する（Ｓ１１１４）。
【０１８４】
続いて、対象ノードは繰り返し現れる要素かその子かが判定される（Ｓ１１１６）。
ＮＯの場合、格納テーブルリストのテーブルの動カラムのうち、ＸＭＬノード−カラム動的マッピングテーブルに載っていないカラムの有無をチェックする（Ｓ１１１８）。
【０１８５】
そして、続くステップＳ１１２０へ処理を移行する。
一方、ステップＳ１１１６でＹＥＳと判定された場合、格納テーブルリストに載っておりかつ繰り返しキーのノードを格納するテーブルの動カラムのうち、ＸＭＬノード−カラム動的マッピングテーブルに載っていないカラムの有無をチェックする（Ｓ１１２２）し、ステップＳ１１２０に処理を移行する。
【０１８６】
ここで、ＸＭＬノード−カラム動的マッピングテーブルに載っていないカラムがあるか否かをチェックし（Ｓ１１２０）、ある場合はＸＭＬノード−カラム動的マッピングテーブルに、選択したノードのＸＰａｔｈと当該カラム名・テーブル名を記録する（Ｓ１１２４）。
【０１８７】
そして、選択したノードに対応する反映済みフラグを「反映済み」にセットし（Ｓ１１２６）、ステップＳ１１１０の判定処理に戻る。
なお、ステップＳ１１２０において判定がＮＯの場合は、ステップＳ１１２４の処理をとばしてステップＳ１１２６の処理を行ない、ステップＳ１１１０の判定処理に戻る。
【０１８８】
さて、ステップＳ１１１０で参照・更新履歴テーブルに未反映の記録がないと判定されると、続いて、設定情報ファイルからＸＭＬ文書全体を格納するカラムの指示（ＲＤＢカラム名、圧縮／非圧縮の指定）を取得する（Ｓ１１２８）。
【０１８９】
ここで、動カラムに内容を未反映のＸＭＬ文書があるか否か判定され（Ｓ１１３０）、「ある」という判定結果であれば、動カラムに内容未反映のＸＭＬ文書をＲＤＢから取得する（Ｓ１１３２）。
【０１９０】
そして、ＸＭＬノード−カラム動的マッピングテーブルに従って動的格納カラムに対象ノードの内容を格納し（Ｓ１１３４）、ステップＳ１１３０の判定処理に戻って同様に処理を繰り返す。
【０１９１】
一方、ステップＳ１１３０で「ない」という判定結果であれば、本処理を終了する。
さて、以上の各種処理は、同一の特定要素を繰り返し含むＸＭＬ文書（図１３）に対しても適用できる処理フローである。
【０１９２】
以下に、同一特定要素を繰り返し含むＸＭＬ文書に対して上記各種処理を施す場合の設定情報ファイルの例と、各種テーブルの構成例を示す。
図３２は、同一の特定要素を繰り返し含むＸＭＬ文書（図１３）に対する設定情報ファイルの例である。
【０１９３】
本例の設定情報ファイル３２０では、第一実施例の設定情報ファイル（図１４）に対し、以下の点を変更する。
ＸＭＬ文書の木構造の頂点に位置する要素“data”の子要素“person”のそのまた子要素 “name”の内容をテーブル「ＡＤＤＲＢＯＯＫ」のカラム「NAME」の値に対応させる指定（図１４の１３行目）と、要素“person”の子要素 “home”のそのまた子要素“phone”の内容をテーブル「ＡＤＤＲＢＯＯＫ」のカラム「ＴＥＬ＿ＨＯＭＥ」の値に対応させる指定（図１４の１５行目）を共に解除し、テーブル「ＡＤＤＲＢＯＯＫ」の「カラム１」から「カラム５」を、動的に変化する格納対象ノード（特定部分）の内容（特定部分情報）を格納するカラムとして指定する（図３２の２１行目から２５行目）。
【０１９４】
図３３は、上記設定情報ファイル（図３２）に対応するように作成したＸＭＬ内容格納テーブル（テーブル「ＤＯＣＵＭＥＮＴ」及びテーブル「ＡＤＤＲＢＯＯＫ」）と、そこに格納される情報を表形式で示したものである。
【０１９５】
同図には、ＸＭＬノード−カラム動的マッピングテーブルが図２６に示される内容の時に格納処理された場合の例が示される。
図３３に示されるように、図３２の設定情報ファイルにおけるテーブル「ＤＯＣＵＭＥＮＴ」に対する設定は第一実施例の設定情報ファイル（図１４）の設定から変更がないため、図１６に示されるテーブル「ＤＯＣＵＭＥＮＴ」１６０と同一となる。
【０１９６】
また、図３３のテーブル「ＡＤＤＲＢＯＯＫ」３３０においては、図３２の設定情報ファイルでカラム「ＤＯＣＮＯ」及びカラム「ＩＤ」に対する設定の変更はないため、当該カラム「ＤＯＣＮＯ」及びカラム「ＩＤ」は図１６と同一となる。一方、設定情報ファイルの上記変更点により、「カラム１」３３２・・・「カラム５」３３４には現在、その順に、「要素“data”の子要素“person”の子要素“name”」・・・「要素“data”の子要素“person”の子要素“home”の子要素“phone”」が割り当てられている。
【０１９７】
以上説明してきた各処理はプログラムの形態で配布することもできる。
その場合、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ＤＶＤなどの記録媒体に上記プログラムやファイルを記録させて配布したり、或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムやファイルの一部、若しくは全部を配信するようにしたりすることができる。この場合、それを受け取ったユーザは、ＣＤ−ＲＯＭ装置などの読み取り装置（入出力部の一部）を利用してフロッピー（登録商標）ディスクやＣＤ−ＲＯＭやＤＶＤなどの可搬型記録媒体から上記プログラムやファイルを外部記録部にコピーしたり、コンピュータの通信部を介してインターネットから上記プログラムやファイルを外部記録部にコピーしたりすることができる。そして、ＣＰＵで実行することにより、ユーザのコンピュータ上でも上述した機能を実現できる。
【０１９８】
以上のように本発明の実施の形態では、設定情報ファイルを設けているため、タグ付き構造化文書とＲＤＢとの間のマッピング条件や検索キーを自由に設定変更できる。このため既存のＲＤＢシステムと連携する場合においても、設定情報ファイルの設定内容を変更し、検索キーをＲＤＢシステムに与える程度のことで容易に既存のＲＤＢシステムにおいてタグ付き構造化文書の情報が扱えるようになる。
【０１９９】
また、本発明の実施の形態では、タグ付き構造化文書中に繰り返し現れる同一構造の部位を一意に特定できるようにＲＤＢに格納させるため、当該部位の情報を検索したり、更新したりすることが可能になる。また、当該部位の情報をタグ付き構造化文書中の所定位置に戻すことも可能になる。
【０２００】
また、本発明の実施の形態ではタグ付き構造化文書に含まれる部位の情報の利用頻度が高いもののみを所定期間毎にＲＤＢで管理するため、利用頻度が少ない部位の情報をＲＤＢで管理する必要がなくなり、ＲＤＢの記憶領域の有効利用ができる。
【０２０１】
（付記１）タグ付き構造化文書とＲＤＢとの間のマッピング条件及び上記ＲＤＢに格納される上記タグ付き構造化文書を一意に特定するための文書特定キーとを設定情報ファイルに任意設定する機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーとなる情報に対応付けて上記タグ付き構造化文書の全体を上記ＲＤＢの全体用カラムに格納し且つ上記タグ付き構造化文書の特定部位の情報を上記ＲＤＢの特定部位用カラムに格納する機能と、上記文書特定キーに基づいて、上記ＲＤＢの特定部位用カラムに格納される情報へアクセスする機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーの所定情報に対応付けされた上記全体用カラムの情報及び上記特定部位用カラムの情報からタグ付き構造化文書を生成する機能と、をコンピュータに実行させるプログラム。
【０２０２】
（付記２）  同一の特定部位を二つ以上含むタグ付き構造化文書において、該タグ付き構造化文書中の各特定部位の位置を一意に特定する部位特定キーを上記設定情報ファイルに任意設定する機能と、上記タグ付き構造化文書中に同一の特定部位を二つ以上含む場合、上記同一の特定部位の情報を上記部位特定キーによって指定される情報に対応付けて上記特定部位用カラムに格納する機能と、上記特定部位用カラムに格納される上記同一の特定部位の情報の夫々に上記部位特定キーに基づいてアクセスする機能と、上記部位特定キーの情報から上記タグ付き構造化文書全体中の上記同一の特定部位の情報の位置を特定し、上記全体用カラムの情報及び上記特定部位用カラムの情報から、上記タグ付き構造化文書全体に上記同一の特定部位の情報が反映されたタグ付き構造化文書を生成する機能と、を更にコンピュータに実行させることを特徴とする付記１に記載のプログラム。
【０２０３】
（付記３）上記特定部位用カラムは少なくとも動的部位用カラムを含み、上記タグ付き構造化文書に含まれる部位の中から動的に選択される部位の情報の格納先として上記動的部位用カラムの指定を上記設定情報ファイルに任意設定する機能と、上記全体用カラムに格納されるタグ付き構造化文書全体及び上記特定部位用カラムに格納される部位の情報を対象に、上記タグ付き構造化文書に含まれる部位の情報へのアクセス数を上記部位ごとに履歴管理する機能と、上記設定情報ファイルに指定された上記動的部位用カラムに対し、上記タグ付き構造化文書中の上記部位の位置を指定する指定パスにより、上記タグ付き構造化文書中の上記アクセス数の多い部位を上記動的に選択される部位として昇降順に対応付けする機能と、上記指定パスに基づいて上記タグ付き構造化文書中の上記動的に選択される部位を上記動的部位用カラムに格納する機能と、上記指定パスに基づいて上記タグ付き構造化文書全体中の上記動的に選択される部位の位置を特定し、上記全体用カラムの情報及び上記動的部位用カラムの情報から、上記動的に選択される部位の情報が上記タグ付き構造化文書全体に反映されたタグ付き構造化文書を生成する機能と、を更にコンピュータに実行させることを特徴とする付記１または２に記載のプログラム。
【０２０４】
（付記４）  上記マッピング条件には、上記タグ付き構造化文書の生成時に、上記特定部位用カラムに格納されている情報を上記全体用カラムに格納されているタグ付き構造化文書全体の対応個所に反映させるか否かの指定が含まれ、上記反映させる指定の場合、上記タグ付き構造化文書の生成時に、上記特定部位用カラムに格納されている情報を上記全体用カラムに格納されているタグ付き構造化文書全体の対応個所に反映させる機能と、をコンピュータに実行させることを特徴とする付記１乃至３の何れか一つに記載のプログラム。
【０２０５】
（付記５）タグ付き構造化文書とＲＤＢとの間のマッピング条件及び上記ＲＤＢに格納される上記タグ付き構造化文書を一意に特定するための文書特定キーとを設定情報ファイルに任意設定する機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーとなる情報に対応付けて上記タグ付き構造化文書の全体を上記ＲＤＢの全体用カラムに格納し且つ上記タグ付き構造化文書の特定部位の情報を上記ＲＤＢの特定部位用カラムに格納する機能と、上記文書特定キーに基づいて、上記ＲＤＢの特定部位用カラムに格納される情報へアクセスする機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーの所定情報に対応付けされた上記全体用カラムの情報及び上記特定部位用カラムの情報からタグ付き構造化文書を生成する機能と、をコンピュータに実現させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【０２０６】
（付記６）  同一の特定部位を二つ以上含むタグ付き構造化文書において、該タグ付き構造化文書中の各特定部位の位置を一意に特定する部位特定キーを上記設定情報ファイルに任意設定する機能と、上記タグ付き構造化文書中に同一の特定部位を二つ以上含む場合、上記同一の特定部位の情報を上記部位特定キーによって指定される情報に対応付けて上記特定部位用カラムに格納する機能と、上記特定部位用カラムに格納される上記同一の特定部位の情報の夫々に上記部位特定キーに基づいてアクセスする機能と、上記部位特定キーの情報から上記タグ付き構造化文書全体中の上記同一の特定部位の情報の位置を特定し、上記全体用カラムの情報及び上記特定部位用カラムの情報から、上記タグ付き構造化文書全体に上記同一の特定部位の情報が反映されたタグ付き構造化文書を生成する機能と、を更にコンピュータに実現させるプログラムを記録した付記５に記載のコンピュータ読み取り可能な記録媒体。
【０２０７】
（付記７）タグ付き構造化文書とＲＤＢとの間のマッピング条件及び上記ＲＤＢに格納される上記タグ付き構造化文書を一意に特定するための文書特定キーとを設定情報ファイルに任意設定し、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーとなる情報に対応付けて上記タグ付き構造化文書の全体を上記ＲＤＢの全体用カラムに格納し且つ上記タグ付き構造化文書の特定部位の情報を上記ＲＤＢの特定部位用カラムに格納し、上記文書特定キーに基づいて、上記ＲＤＢの特定部位用カラムに格納される情報へアクセスし、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーの所定情報に対応付けされた上記全体用カラムの情報及び上記特定部位用カラムの情報からタグ付き構造化文書を生成する、ことを特徴とするタグ付き構造化文書格納方法。
【０２０８】
（付記８）  同一の特定部位を二つ以上含むタグ付き構造化文書において、該タグ付き構造化文書中の各特定部位の位置を一意に特定する部位特定キーを上記設定情報ファイルに任意設定し、上記タグ付き構造化文書中に同一の特定部位を二つ以上含む場合、上記同一の特定部位の情報を上記部位特定キーによって指定される情報に対応付けて上記特定部位用カラムに格納し、上記特定部位用カラムに格納される上記同一の特定部位の情報の夫々に上記部位特定キーに基づいてアクセスし、上記部位特定キーの情報から上記タグ付き構造化文書全体中の上記同一の特定部位の情報の位置を特定し、上記全体用カラムの情報及び上記特定部位用カラムの情報から、上記タグ付き構造化文書全体に上記同一の特定部位の情報が反映されたタグ付き構造化文書を生成する、ことを更に特徴とする付記７に記載のタグ付き構造化文書格納方法。
【０２０９】
（付記９）タグ付き構造化文書とＲＤＢとの間のマッピング条件及び上記ＲＤＢに格納される上記タグ付き構造化文書を一意に特定するための文書特定キーとを設定情報ファイルに任意設定する機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーとなる情報に対応付けて上記タグ付き構造化文書の全体を上記ＲＤＢの全体用カラムに格納し且つ上記タグ付き構造化文書の特定部位の情報を上記ＲＤＢの特定部位用カラムに格納する機能と、上記文書特定キーに基づいて、上記ＲＤＢの特定部位用カラムに格納される情報へアクセスする機能と、上記設定情報ファイルの最新設定情報を読み取り、上記文書特定キーの所定情報に対応付けされた上記全体用カラムの情報及び上記特定部位用カラムの情報からタグ付き構造化文書を生成する機能と、を有することを特徴とするタグ付き構造化文書格納システム。
【０２１０】
（付記１０）  同一の特定部位を二つ以上含むタグ付き構造化文書において、該タグ付き構造化文書中の各特定部位の位置を一意に特定する部位特定キーを上記設定情報ファイルに任意設定する機能と、上記タグ付き構造化文書中に同一の特定部位を二つ以上含む場合、上記同一の特定部位の情報を上記部位特定キーによって指定される情報に対応付けて上記特定部位用カラムに格納する機能と、上記特定部位用カラムに格納される上記同一の特定部位の情報の夫々に上記部位特定キーに基づいてアクセスする機能と、上記部位特定キーの情報から上記タグ付き構造化文書全体中の上記同一の特定部位の情報の位置を特定し、上記全体用カラムの情報及び上記特定部位用カラムの情報から、上記タグ付き構造化文書全体に上記同一の特定部位の情報が反映されたタグ付き構造化文書を生成する機能と、を更に有することを特徴とする付記９に記載のタグ付き構造化文書格納システム。
【図面の簡単な説明】
【０２１１】
【図１】本発明の実施形態におけるタグ付き構造化文書格納システムの原理図である。
【図２】第一実施例におけるXML文書格納システムの構成図である。
【図３】同一の特定要素を繰り返し含まないXML文書の記述例である。
【図４】同一の特定要素を繰り返し含まないＸＭＬ文書に対する設定情報ファイル１４の一つ目の例である。
【図５】同一の特定要素を繰り返し含まないＸＭＬ文書に対する設定情報ファイル１４の二つ目の例である。
【図６】図３のＸＭＬ文書をＸＭＬ装置１２からＲＤＢ１３に格納する場合の処理フローである。
【図７】図４の設定情報ファイルの設定に基づいて図３のＸＭＬ文書が格納処理された時の、格納後のＲＤＢ１３のテーブル例である。
【図８】図５の設定情報ファイルの設定に基づいて図３のＸＭＬ文書が格納処理された時の、格納後のＲＤＢ１３のテーブル例である。
【図９】ＲＤＢ１３の「特定部分情報」を変更する際に行なわれる、当該ＸＭＬ装置１２（またはレガシーシステム１６）における処理フローである。
【図１０】図９の更新処理後のテーブル「ＡＤＤＲＢＯＯＫ」である。
【図１１】ＸＭＬ文書をＲＤＢ１３から取り出す際の処理フローである。
【図１２】図１０のＲＤＢに格納されるＸＭＬ文書を図１１の処理フローにより取り出した場合の結果である。
【図１３】同一の要素を繰り返し含むXML文書の記述例である。
【図１４】同一の要素を繰り返し含むＸＭＬ文書１３０に対する設定情報ファイル１４の例である。
【図１５】同一の特定要素を繰り返し含むＸＭＬ文書１３０をＲＤＢ１３に格納する場合の処理フローである。
【図１６】図１４の設定情報ファイルの設定に基づいて図１３のＸＭＬ文書が格納処理された時の、格納後のＲＤＢ１３のテーブル例である
【図１７】「特定部分情報」を取得する際に行なわれる、当該ＸＭＬ装置（またはレガシーシステム）における処理フローである。
【図１８】「特定部分情報」を変更する際に行なわれる、当該ＸＭＬ装置（またはレガシーシステム）における処理フローである。
【図１９】反映処理フローの一例である。
【図２０】第二実施例におけるＸＭＬ文書格納システムの構成図である。
【図２１】同一の特定要素を繰り返し含まないＸＭＬ文書（図３）に対する設定情報ファイルの例である。
【図２２】設定情報ファイル（図２１）に対応するように作成したＸＭＬ格納内容テーブル（テーブル「ＡＤＤＲＢＯＯＫ」）を表形式で示したものである。
【図２３】本実施例において新たに作成したＸＭＬノード−カラム動的マッピングテーブルを表形式で示したものである。
【図２４】更新参照履歴テーブルを表形式で示したものである。
【図２５】設定情報ファイル２０６に基づいて、ＸＭＬ文書１５をＸＭＬ装置２０２からＲＤＢ２０４に格納する場合の処理フローである。
【図２６】ＸＭＬノード−カラム動的マッピングテーブルの設定例である。
【図２７】図２１の設定情報ファイルの設定及び図２６のＸＭＬノード−カラム動的マッピングテーブルに基づいて図３のＸＭＬ文書が格納処理された時の、格納後のＸＭＬ内容格納テーブル２０４−１のテーブル例である。
【図２８】ＲＤＢ２０４からＸＭＬ文書を取り出す際の処理フローである。
【図２９】ノードアクセス監視部２１０（またはカラムアクセス監視部２１２）及び更新参照履歴管理部２１４における参照・更新記録の処理フローである。
【図３０】参照・更新記録の処理フローによって情報が記録された場合の、更新参照履歴管理部２１４のテーブルに対する格納例を、表形式で示したものである。
【図３１】動的格納部位の変更処理である。
【図３２】同一の特定要素を繰り返し含むＸＭＬ文書（図１３）に対する設定情報ファイルの例である。
【図３３】設定情報ファイル（図３２）に対応するように作成したＸＭＬ内容格納テーブル（テーブル「ＤＯＣＵＭＥＮＴ」及びテーブル「ＡＤＤＲＢＯＯＫ」）と、そこに格納される情報を表形式で示したものである。
【符号の説明】
【０２１２】
１  タグ付き構造化文書格納システム
２  タグ付き構造化文書
３  ＤＢ
４  タグ付き構造化文書格納手段
５  設定手段
【図１】
2005284575.tif 000003
【図２】
2005284575.tif 000004
【図３】
2005284575.tif 000005
【図４】
2005284575.tif 000006
【図５】
2005284575.tif 000007
【図６】
2005284575.tif 000008
【図７】
2005284575.tif 000009
【図８】
2005284575.tif 000010
【図９】
2005284575.tif 000011
【図１０】
2005284575.tif 000012
【図１１】
2005284575.tif 000013
【図１２】
2005284575.tif 000014
【図１３】
2005284575.tif 000015
【図１４】
2005284575.tif 000016
【図１５】
2005284575.tif 000017
【図１６】
2005284575.tif 000018
【図１７】
2005284575.tif 000019
【図１８】
2005284575.tif 000020
【図１９】
2005284575.tif 000021
【図２０】
2005284575.tif 000022
【図２１】
2005284575.tif 000023
【図２２】
2005284575.tif 000024
【図２３】
2005284575.tif 000025
【図２４】
2005284575.tif 000026
【図２５】
2005284575.tif 000027
【図２６】
2005284575.tif 000028
【図２７】
2005284575.tif 000029
【図２８】
2005284575.tif 000030
【図２９】
2005284575.tif 000031
【図３０】
2005284575.tif 000032
【図３１】
2005284575.tif 000033
【図３２】
2005284575.tif 000034
【図３３】
2005284575.tif 000035