(57)【特許請求の範囲】
【請求項１】
データベース管理システムにおいて、
ＸＭＬを規定する平坦化前の文書型定義（以下「ＤＴＤ」という）で宣言されたタグの内容モデルにおいて、該モデルに含まれる省略記号を除去し、該モデルに含まれる繰り返し記号を統一し、該モデルに含まれる入れ子を展開し、該モデルに含まれる選択は双方を表現するように変換し、同一タグは繰り返しで統一することにより、平坦後のＤＴＤを生成する平坦化手段と、
前記平坦化手段により作成された平坦後のＤＴＤにおいて、タグと属性をノードへ変換し、タグ間の参照をリンクへ変換し、タグ間の関係をリンクの関係へ変換することにより、ＤＴＤグラフを作成するＤＴＤグラフ作成手段と、
前記ＤＴＤグラフ作成手段により作成されたＤＴＤグラフにおいて、トップノードと中間ノードとをクラスに定義し、リーフノードをデータベースの属性に定義することにより、オブジェクトリレーショナルモデルのスキーマを作成するスキーマ作成手段と、
ＸＭＬデータ及び前記平坦後のＤＴＤをそれぞれ読み込み、読み込まれたＸＭＬデータからタグ名及び親タグ名を取得すると共に、前記読み込まれたＸＭＬデータを前記読み込まれた平坦後のＤＴＤを参照して当該平坦後のＤＴＤに該当する構造に変換することにより、前記平坦後のＤＴＤに対し検証済みのＸＭＬデータを作成する検証済みＸＭＬ作成手段と、
前記スキーマ作成手段により作成されたスキーマを参照し、前記検証済みＸＭＬ作成手段により作成された検証済みＸＭＬデータのタグと親タグの情報から該当する型を取得し、前記作成されたスキーマ及び前記取得した型に基づいてオブジェクトリレーショナルモデルのデータを作成するオブジェクトリレーショナルモデルデータ作成手段と
を具備することを特徴とするＸＭＬデータ変換方式。
【請求項２】
データベース管理システムにおいて、
ＸＭＬを規定する平坦化前の文書型定義（以下「ＤＴＤ」という）で宣言されたタグの内容モデルにおいて、該モデルに含まれる省略記号を除去し、該モデルに含まれる繰り返し記号を統一し、該モデルに含まれる入れ子を展開し、該モデルに含まれる選択は双方を表現するように変換し、同一タグは繰り返しで統一することにより、平坦後のＤＴＤを生成する平坦化工程と、
前記平坦化工程により作成された平坦後のＤＴＤにおいて、タグと属性をノードへ変換し、タグ間の参照をリンクへ変換し、タグ間の関係をリンクの関係へ変換することにより、ＤＴＤグラフを作成するＤＴＤグラフ作成工程と、
前記ＤＴＤグラフ作成工程により作成されたＤＴＤグラフにおいて、トップノードと中間ノードとをクラスに定義し、リーフノードをデータベースの属性に定義することにより、オブジェクトリレーショナルモデルのスキーマを作成するスキーマ作成工程と、
ＸＭＬデータ及び前記平坦化工程により生成された平坦後ＤＴＤを読み込み、読み込まれたＸＭＬデータからタグ名及び親タグ名を取得し、前記読み込まれたＸＭＬデータを前記読み込まれた平坦後ＤＴＤを参照して当該平坦後ＤＴＤに該当する構造に変換することにより、前記平坦後ＤＴＤに対し検証済みのＸＭＬデータを作成する検証済みＸＭＬ作成工程と、
前記スキーマ作成工程により作成されたスキーマを参照し、前記検証済みＸＭＬ作成工程により作成された検証済みのＸＭＬデータのタグと親タグの情報から該当する型を取得し、前記作成されたスキーマ及び前記取得した型に基づいてオブジェクトリレーションモデルのデータを作成するオブジェクトリレーショナルモデルデータ作成工程と
を具備することを特徴とするＸＭＬデータ変換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報流通におけるデータ変換形式として有望である妥当なＸＭＬのデータ変換方式に関する。
【０００２】
【従来の技術】
妥当なＸＭＬ（ｈｔｔｐ：／／ｗｗｗ．ｗ３ｃ．ｏｒｇ／ＸＭＬ／）をデータベース管理システムに格納する場合、ＸＭＬをリレーショナルモデルへ変換する方法が従来考えられている。
【０００３】
ＸＭＬをリレーショナルモデルへ変換するには、第一に、ＸＭＬを規定するＤＴＤを平坦化させ、つぎに、平坦後のＤＴＤを木構造のグラフ（ＤＴＤグラフ）へ変換する。該ＤＴＤグラフを生成後、リレーショナルモデルを作成する方法は２通りある。
【０００４】
たとえば、図１に示すような妥当なＸＭＬをリレーショナルモデルに変換する場合、これらの２通りの手法により、図２に示す２種類（図中（１）と（２））のスキーマが作成され得る。これら２種類のスキーマを生成する過程の処理の一部を図３，４に示す。図３は第１の方法を示し、図４は第２の方法を示す。
【０００５】
第１の方法（図３）では、あるノードが参照されている数によって、定義を行う（Ｓ３１）。ノードが参照されている数が「０」の場合は、テーブル定義する（Ｓ３５）。一方、該参照されている数が「１」の場合は、上位（親）のテーブルのＤＢ属性として定義する（Ｓ３４）。ただし、該ノードとその親ノードとの関係において“＊”や“＋”の参照関係がある場合は、データベース属性とせず単独でテーブル定義する（Ｓ３３）。また、該ノードへの参照数が「２」以上の場合は、該ノードをテーブル定義する（Ｓ３２，Ｓ３５）。
【０００６】
以上より、図２における（１）のスキーマが生成される。
【０００７】
つぎに、第２の方法（図４）は、方法１とほぼ同様であるが、該ノードへの参照数が「２」以上の場合でも、参照関係が“＊”や“＋”であるものがひとつもない場合は上位のテーブルのＤＢ属性として定義する（Ｓ４４，Ｓ４６）点で異なっている。
【０００８】
かかる第２の方法によれば、図２（２）に示されるようなスキーマが生成される。
【０００９】
しかし、上記図２（１）と（２）に示されるいずれのスキーマもＸＭＬの木構造を示すノードやラインに相当する情報を保存していないため、構造を含んだままＸＭＬデータを格納することが困難であった。
【００１０】
図５に示す簡易な問い合わせ時も、最初に「ａｕｔｈｏｒ」テーブルを検索して「ｌａｓｔｎａｍｅ」に該当する「ａｕｔｈｏｒＩＤ」を見つけ、次に「ｐａｐｅｒ」テーブルを検索し、前記「ａｕｔｈｏｒＩＤ」に該当する「ｔｉｔｌｅ」を選択するため、性能に影響を及ぼす結合処理が頻繁に発生する可能性があった。
【００１１】
【発明が解決しようとする課題】
この発明の目的は、ＸＭＬデータで要求されるＸＭＬの構造を保持しつつ、参照先を辿る回数を低減して検索性能の向上を図ったＸＭＬデータ変換方式及びＸＭＬデータ変換方法を提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するためにこの発明は、データベース管理システムにおけるＸＭＬデータ変換方式または方法にあって、平坦化手段（工程）と、ＤＴＤグラフ作成手段（工程）と、スキーマ作成手段（工程）と、検証済みＸＭＬ作成手段（工程）と、オブジェクトリレーショナルモデルデータ作成手段（工程）とを備える。
平坦化手段（工程）では、ＸＭＬを規定する平坦化前の文書型定義（以下「ＤＴＤ」という）で宣言されたタグの内容モデルにおいて、該モデルに含まれる省略記号を除去し、該モデルに含まれる繰り返し記号を統一し、該モデルに含まれる入れ子を展開し、該モデルに含まれる選択は双方を表現するように変換し、同一タグは繰り返しで統一することにより、平坦後のＤＴＤを生成する。
ＤＴＤグラフ作成手段（工程）では、上記平坦化手段（工程）により作成された平坦後のＤＴＤにおいて、タグと属性をノードへ変換し、タグ間の参照をリンクへ変換し、タグ間の関係をリンクの関係へ変換することにより、ＤＴＤグラフを作成する。
スキーマ作成手段（工程）では、上記ＤＴＤグラフ作成手段（工程）により作成されたＤＴＤグラフにおいて、トップノードと中間ノードとをクラスに定義し、リーフノードをデータベースの属性に定義することにより、オブジェクトリレーショナルモデルのスキーマを作成する。
検証済みＸＭＬ作成手段（工程）では、ＸＭＬデータ及び前記平坦後のＤＴＤをそれぞれ読み込み、読み込まれたＸＭＬデータからタグ名及び親タグ名を取得すると共に、上記読み込まれたＸＭＬデータを上記読み込まれた平坦後のＤＴＤを参照して当該平坦後のＤＴＤに該当する構造に変換することにより、上記平坦後のＤＴＤに対し検証済みのＸＭＬデータを作成する。
オブジェクトリレーショナルモデルデータ作成手段（工程）では、上記スキーマ作成手段（工程）により作成されたスキーマを参照し、上記検証済みＸＭＬ作成手段（工程）により作成された検証済みＸＭＬデータのタグと親タグの情報から該当する型を取得し、上記作成されたスキーマ及び上記取得した型に基づいてオブジェクトリレーショナルモデルのデータを作成する。
【００１３】
ＤＴＤグラフの作成手段までは従来の技術とほぼ同様であるが、平坦後のＤＴＤ及び検証済みのＸＭＬをデータベース管理システムに格納するためのデータ構造に変換する点がこの発明の特徴部分である。
すなわち、ＸＭＬデータ構造であるノードの親子関係をオブジェクトリレーショナルスキーマに変換する際に、ノードを意味するクラスにオブジェクトの参照属性を定義して、表現している。具体的には、ＸＭＬ中のデータ（オブジェクト指向モデルで云うインスタンス変数に相当）のうち、ストリングや定数については直接その値を保持し、一方他のデータ（オブジェクト指向モデルで云う他のインスタンス）を指し示すデータについては、当該他のデータ（インスタンス）のアドレスを保持するデータ構造を採用している。
したがってこの発明によれば、ＸＭＬの構造を保持しつつ、参照先を辿る回数が低減されて検索性能の向上が図られる。
【００１４】
【発明の実施の形態】
まず、本発明の原理を図６，７，８，９，１０，１１，１２を用いて説明する。
【００１５】
図６は、本発明の原理を説明するための図である。図６において、ＤＴＤおよび妥当なＸＭＬが、本発明にかかるデータ変換方法を実行するデータ変換方式機構６１に渡されると、該データ変換方式機構６１は本発明にかかるデータ変換方法を実行しオブジェクトリレーショナルスキーマおよびオブジェクトリレーショナルデータを生成する。
【００１６】
図６に示されるように、該データ変換方式機構６１は、ＸＭＬを規定する平坦化前のＤＴＤを平坦化し、平坦後のＤＴＤを生成する平坦化手段６２と、該平坦後のＤＴＤからＤＴＤグラフを作成する、ＤＴＤグラフ作成手段６３と、該ＤＴＤグラフからオブジェクトリレーショナルモデルのスキーマを作成する、スキーマ作成手段６４と、前記平坦後のＤＴＤに対して検証済みとなるＸＭＬを作成する検証済ＸＭＬ作成手段６５と、該検証済みとなるＸＭＬからオブジェクトリレーショナルモデルのデータを作成するオブジェクトリレーショナルモデルデータ作成手段６６とを備えている。
【００１７】
なお、これら手段６２から６６は、それぞれの処理を実行するためのプログラムを格納した記憶装置と、該記憶装置に接続され、該プログラムに基づいて処理を実行するプロセッサとからなり、これら手段６２から６６の記憶装置およびプロセッサはそれぞれ独立したものでなくても良く、たとえばこれら手段が１つの記憶手段と一つのプロセッサを共用するように構成されても良い。該記憶装置はたとえば、ＲＯＭ，ＲＡＭ，ＣＤ−ＲＯＭ，ＭＯ，磁気記憶装置などデータの記憶および再生可能な全ての形式の記憶装置であって良い。また、該プロセッサは、たとえば一般に市場に供されているマイクロプロセッサで構成されて良い。
【００１８】
つぎに、上記手段６２から６６のそれぞれにおいて行われる処理工程について説明する。
【００１９】
まず、平坦化手段６２において行われる処理工程について述べる。
【００２０】
該平坦化手段６２は、ＸＭＬを規定するＤＴＤを平坦化する。図７は、平坦化するパターンを示している。本平坦化手段では、平坦化する必要が無いＤＴＤの場合は処理を行わない。該平坦手段６２では、図７の「元」から「変換後」となるように、タグの内容モデルを展開する。すなわち、省略記号「？」を除去し、繰返し記号「＋」を記号「＊」で統一し、入れ子を展開し、選択「｜」は双方「、」を表現し、同一タグは繰返しで統一する。
【００２１】
以上の平坦化処理をフローチャートを図８に示す。図８に示すように、まずタグの内容モデルのうち、「｜」を「、」に置換する（Ｓ８１）。つぎに、該内容モデルにおいて、「？」を削除する（Ｓ８２）。つぎに、該内容モデルにおいて、「＋」を「＊」に置換する（Ｓ８３）。つぎに、該内容モデルにおいて、括弧を展開する（Ｓ８４）。最後に、該内容モデルにおいて、同一参照をまとめる（Ｓ８５）。
【００２２】
つぎに、ＤＴＤグラフ作成手段６３において行われる処理工程について述べる。
【００２３】
ＤＴＤグラフ作成手段６３は、前記平坦化手段６２により作成された、平坦後のＤＴＤから木構造グラフ（ＤＴＤグラフ）を作成する。該ＤＴＤグラフを作成する処理工程を図示するフローチャートを図９に示す。該処理工程において、まず、平坦後のＤＴＤの各エレメントにおいて、エレメントに属性があるかどうかを調べる（Ｓ９１）。エレメントに属性がある場合には、該属性をエレメントの子ノードにする（Ｓ９２）。エレメントに属性がない場合、または前記処理Ｓ９２においてタグと属性をノードへ該属性をエレメントの子ノードにした場合、そのエレメントの内容モデルに参照エレメントがあるか否かを調べる（Ｓ９３）。そのエレメントの内容モデルに参照エレメントがある場合には、該内容モデルの全エレメントを子ノードにし、記号「＊」を該当親ノードと子ノード間のラインに付記する（Ｓ９４）。処理Ｓ９３において参照エレメントが無い場合、または処理Ｓ９４を行った場合は、ＤＴＤグラフ作成手段６３において行われる処理工程が終了する。この処理により、タグ間の参照をリンクへ、タグ間の関係をリンクの関係へ変換される。
【００２４】
つぎに、スキーマ作成手段６４により行われる処理工程について説明する。
【００２５】
スキーマ作成手段６４は、前記ＤＴＤグラフ作成手段６３によって作成されたＤＴＤグラフからオブジェクトリレーショナルモデルのスキーマを作成する。該スキーマ作成を行う処理工程をフローチャートを図１０に示す。図１０に示すように、まず該ＤＴＤグラフにおいて、ノードがリーフノードであるかリーフノード以外（トップノードおよび中間ノード）であるかを調べる（Ｓ１０１）。該処理Ｓ１０１において、ノードがリーフノードであれば処理工程を終了する。一方、リーフノード以外（トップノードおよび中間ノード）であれば、該ノードをクラス定義する（Ｓ１０２）。つぎに、クラス定義した該ノードの直下ノード群をＤＢ属性として定義する。このとき、直下ノードとの関係が「＊」である場合は、該直下ノードはｓｅｑｕｅｎｃｅ型ＤＢ属性として定義する。また、直下ノードがリーフノードの場合は、「ｓｔｒｉｎｇ」か「ｉｎｔ」か「ｆｌｏａｔ」のＤＢ属性として定義し、それ以外は、ｏｂｊｅｃｔ参照のＤＢ属性として定義する。（Ｓ１０３）。つぎに、該ノードに親ノードがあるか否かを調べる（Ｓ１０４）。親ノードがある場合は、親ノードをあらわすクラスへの参照属性を定義する。クラス定義したノードに親ノードが存在する場合は、親ノードに該当するクラスを参照するＤＢ属性を定義する。（Ｓ１０５）。親ノードが無い場合、および処理工程Ｓ１０５において参照属性を定義した場合は、該スキーマ作成を行う処理を終了する。
【００２６】
つぎに、検証済ＸＭＬ作成手段６５により行われる処理工程について説明する。
【００２７】
検証済ＸＭＬ作成手段６５は、平坦化前のＤＴＤに検証済みであるＸＭＬを平坦後のＤＴＤに対して検証済みのＸＭＬとなるように変換することによって、平坦後のＤＴＤに対して検証済みとなるＸＭＬを作成する。該検証済みとなるＸＭＬを作成する処理工程をあらわしたフローチャートを図１１に示す。まず、変換前のＸＭＬデータ、および平坦化手段６２にて作成された平坦後のＤＴＤを読み込む（Ｓ１１１）。変換前のＸＭＬデータにおけるタグ、親タグを各々取得する（Ｓ１１２）。それらを平坦後のＤＴＤと比較し、平坦後のＤＴＤにあわせてタグ、親タグを再配置する（Ｓ１１３）ことにより、変換前のＸＭＬデータを検証済みの構造を有するＸＭＬデータ（検証済みＸＭＬデータ）へ変換する（Ｓ１１４）。
【００２８】
最後に、オブジェクトリレーショナルモデルデータ作成手段６６により行われる処理工程について説明する。
【００２９】
該オブジェクトリレーショナルモデルデータ作成手段６６は、該検証済ＸＭＬからオブジェクトリレーショナルモデルのデータを作成する。該オブジェクトリレーショナルモデルのデータを作成する処理工程を示すフローチャートを図１２に掲げる。
【００３０】
まず、検証済ＸＭＬ作成手段６５により作成された検証済ＸＭＬデータを読み込む（Ｓ１２１）。つぎに、該検証済ＸＭＬデータから、タグ名、親タグ名を取得する（Ｓ１２２）。つぎに、前記スキーマ作成手段６４により作成されたスキーマ（オブジェクトリレーショナルモデルのスキーマに該当する）を参照し、ＸＭＬデータのタグと親タグの情報から該当する型を取得する（Ｓ１２３）。Ｓ１２２において取得したタグ名、親タグ名に該当する型を与えることによって、オブジェクトリレーショナルモデルのデータを作成する（Ｓ１２４）。
【００３１】
上記各手段により得られた該スキーマ、データを用いて、データベース６７（図１参照）を構築する。
【００３２】
【実施例】
図１，１３，１４，１５，１６に基づいて実施例を説明する。
【００３３】
図１のＤＴＤおよび妥当なＸＭＬを入力対象とした場合を例にとって実施例を説明する。
【００３４】
図１に示すようなＤＴＤおよび妥当なＸＭＬを前記平坦化手段６２およびＤＴＤグラフ作成手段６３が、図８および図９に示す処理工程を実行すると、図１３に示すような、ＤＴＤグラフが作成される。
【００３５】
本ＤＴＤグラフを基に、スキーマ作成手段６４が図１０に示されるような処理工程を行い、オブジェクトリレーショナルモデルへ変換すると図１４に示すスキーマが作成される。本スキーマでは、ＤＴＤグラフにおけるリンクがオブジェクト参照属性として表現され、ノードがクラスとして表現されているため、リレーショナルモデルのスキーマと比べ、ＸＭＬの構造を保存可能となることがわかる。
【００３６】
また、検証済ＸＭＬ作成手段６５が図１１に示されるような処理工程を行うことにより、平坦処理を行うと図１のＤＴＤとなるＸＭＬ（図１５）に対し、不足しているｅｍａｉｌタグを省略という形式で補充することにより図１のＤＴＤに対し検証済みとなる。
【００３７】
これらの平坦後ＤＴＤに検証済みとなったＸＭＬデータを、オブジェクトリレーショナルモデルデータ作成手段６６において図１２に示すような処理を行うことにより、先のスキーマを基にオブジェクトリレーショナルモデルへ変換する。
【００３８】
該オブジェクトリレーショナルモデルを用いてデータベース投入用のデータを作成し、データベースユーティリティに入力し、データベースを構築する。
【００３９】
以上より、本発明の目的であるＸＭＬの構造を保存するスキーマがＤＴＤグラフから作成可能となり、妥当なＸＭＬをデータベースへ格納することが可能となる。
【００４０】
また、該スキーマは、オブジェクトリレーショナルモデルであるため、格納したデータに対し問合せを行った場合、性能を劣化させる結合処理が発生せず、性能に影響が出ないトラバース処理（図１６）のみで検索可能となり、検索性能が向上する。
【００４１】
【発明の効果】
上述のように、従来技術では、リレーショナルモデルに変換するのに対し、本発明では、オブジェクトリレーショナルモデルに変換しているため、格納したデータに対し問合せを行った場合、性能を劣化させる結合処理が発生せず、性能に影響が出ないトラバース処理のみで検索可能となる。
【図面の簡単な説明】
【図１】本発明の対象となるＤＴＤおよび妥当なＸＭＬの例を示す図である。
【図２】従来の変換方法により得られる２種類のスキーマを示す図である。
【図３】従来の変換方法の一方を説明する為のフローチャート図である。
【図４】従来の変換方法の他方を説明する為のフローチャート図である。
【図５】従来の変換方法により得られたリレーショナルモデルを用いて、簡易な検索を行う場合を示す概念図である。
【図６】本発明にかかる変換方式を示す概略図である。
【図７】平坦化するパターンを示している図である。
【図８】平坦化処理を示すフローチャート図である。
【図９】ＤＴＤグラフを作成する処理工程を示すフローチャート図である。
【図１０】スキーマ作成を行う処理工程を示すフローチャート図である。
【図１１】該検証済みとなるＸＭＬを作成する処理工程を示すフローチャート図である。
【図１２】オブジェクトリレーショナルモデルのデータを作成する処理工程を示すフローチャートである。
【図１３】図８および図９に示す処理工程を実行すると得られるＤＴＤグラフを示す図である。
【図１４】図１０に示されるような処理工程を行うと得られるオブジェクトリレーショナルスキーマの例を示す図である。
【図１５】平坦処理を行うと図１のＤＴＤとなるＸＭＬの例を示す図である。
【図１６】本発明により、検索性能が向上することを示す、概念図である。
【符号の説明】
６１  …  データ変換方式機構
６２  …  平坦化手段
６３  …  ＤＴＤグラフ作成手段
６４  …  スキーマ作成手段
６５  …  検証済ＸＭＬ作成手段
６６  …  オブジェクトリレーショナルモデルデータ作成手段
【図１】
0003583688.tif 000002
【図２】
0003583688.tif 000003
【図３】
0003583688.tif 000004
【図４】
0003583688.tif 000005
【図５】
0003583688.tif 000006
【図６】
0003583688.tif 000007
【図７】
0003583688.tif 000008
【図８】
0003583688.tif 000009
【図９】
0003583688.tif 000010
【図１０】
0003583688.tif 000011
【図１１】
0003583688.tif 000012
【図１２】
0003583688.tif 000013
【図１３】
0003583688.tif 000014
【図１４】
0003583688.tif 000015
【図１５】
0003583688.tif 000016
【図１６】
0003583688.tif 000017