(57)【要約】【課題】リレーショナルデータベースのスキーマ定義と、ＸＭＬのスキーマ定義との両方を生成することができるようにする。【解決手段】情報処理装置が、ツリー構造のデータを構成する要素データを示す要素名と、前記要素データの親となる前記要素データである親要素データを特定する親要素特定情報と、リレーショナルデータベースにおいて前記データを管理する場合に、前記要素データが前記親要素データを識別するための主キーとなるかどうかを示すキー情報と、を対応付けて記憶する要素情報記憶部と、前記要素名及び前記親要素特定情報に基づいて、前記データの構造を定義するＸＭＬのスキーマ定義を記述したＸＭＬスキーマ定義情報を生成するＸＭＬスキーマ生成部と、前記要素名、前記キー情報、及び前記親要素特定情報に基づいて、前記データの構造を定義するリレーショナルデータベースのスキーマ定義を記述したＲＤＢスキーマ定義情報を生成するＲＤＢスキーマ生成部と、を備えるようにする。【選択図】    図７
2006350924.tif 000002
【特許請求の範囲】
【請求項１】
ツリー構造のデータを構成する要素データを示す要素名と、
前記要素データの親となる前記要素データである親要素データを特定する親要素特定情報と、
リレーショナルデータベースにおいて前記データを管理する場合に、前記要素データが前記親要素データを識別するための主キーとなるかどうかを示すキー情報と、を対応付けて記憶する要素情報記憶部と、
前記要素名及び前記親要素特定情報に基づいて、前記データの構造を定義するＸＭＬのスキーマ定義を記述したＸＭＬスキーマを生成するＸＭＬスキーマ生成部と、
前記要素名、前記キー情報、及び前記親要素特定情報に基づいて、前記データの構造を定義するリレーショナルデータベースのスキーマ定義を記述したＲＤＢスキーマを生成するＲＤＢスキーマ生成部と、
を備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記ＲＤＢスキーマ生成部は、
前記親要素特定情報により特定される前記親要素データのそれぞれについて、
前記親要素データを特定する前記親要素特定情報に対応する前記要素名を前記要素情報記憶部から読み出し、
読み出した前記要素名のそれぞれをカラムとしたテーブルの定義と、読み出した前記要素名のうち、対応する前記キー情報が前記親要素データを識別するための主キーとなることを示すものに対するインデックスの定義とを記述した前記ＲＤＢスキーマを生成すること、
を特徴とする情報処理装置。
【請求項３】
請求項１に記載の情報処理装置であって、
前記要素名、前記親要素特定情報、及び前記キー情報を入力するためのユーザインタフェースと、
前記ユーザインタフェースから入力された前記要素名、前記親要素特定情報、及び前記キー情報を対応付けて前記要素情報記憶部に記憶する要素情報登録部と、
を備えることを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記要素情報記憶部に記憶されている前記要素名、前記親要素特定情報、及び前記キー情報を、前記ツリー構造における深さ優先順に前記ユーザインタフェースに一覧表示する要素情報出力部を備えること、
を特徴とする情報処理装置。
【請求項５】
請求項１に記載の情報処理装置であって、
前記要素情報記憶部は、前記要素データの識別情報、前記要素名、前記親要素特定情報、前記キー情報、前記要素データの属性を示す属性情報を対応付けて記憶しており、
前記ＸＭＬスキーマ作成部は、前記属性情報に基づいて、前記属性の定義を記述した前記ＸＭＬスキーマを作成し、
前記ＲＤＢスキーマ作成部は、前記要素データを格納するためのテーブルである要素テーブルの定義と、前記属性の属性値を格納するためのテーブルである属性テーブルの定義と、前記要素テーブルと前記属性テーブルとのリレーションの定義とを記述した前記ＲＤＢスキーマを作成すること、
を特徴とする情報処理装置。
【請求項６】
請求項１に記載の情報処理装置であって、
前記要素情報記憶部は、前記要素名、前記親要素特定情報、及び前記キー情報に加えて、前記要素のデータ型を特定する型特定情報を対応付けて記憶しており、
前記型特定情報に対応付けて、前記ＸＭＬのスキーマ定義における前記データ型の表現であるＸＭＬ表記情報と、前記リレーショナルデータベースのスキーマ定義における前記データ型の表現であるＲＤＢ表記情報とを対応付けて記憶する型表記情報記憶部を備え、
前記ＸＭＬスキーマ作成部は、前記要素名と、前記親要素特定情報と、前記型特定情報に対応する前記ＸＭＬ表記情報とに基づいて前記ＸＭＬスキーマを作成し、
前記ＲＤＢスキーマ作成部は、前記要素名と、前記親要素特定情報と、前記キー情報と、前記型特定情報に対応する前記ＸＭＬ表記情報とに基づいて前記ＲＤＢスキーマを作成すること、
を特徴とする情報処理装置。
【請求項７】
請求項１に記載の情報処理装置であって、
前記ＸＭＬスキーマ作成部は、前記親要素データの主キーとなる前記要素データについて、前記親要素データの属性として前記要素データを定義するように記述するとともに、前記要素データに対応する前記キー情報をコメントとして記述した前記ＸＭＬスキーマを作成し、
前記ＸＭＬスキーマの入力を受け付けるＸＭＬスキーマ入力部と、
受け付けた前記ＸＭＬスキーマから、前記要素データの定義とともに前記コメントを読み出す要素定義取得部と、
読み出した前記要素データの定義及び前記コメントを解析して、前記要素名、前記親要素特定情報、及びキー情報を抽出するＸＭＬスキーマ解析部と、
抽出した前記要素名、前記親要素特定情報、前記キー情報を対応付けて前記要素情報記憶部に記憶する要素情報登録部と、
を備えることを特徴とする情報処理装置。
【請求項８】
請求項１に記載の情報処理装置であって、
前記ＸＭＬスキーマ作成部は、ＤＴＤ形式又はＸＭＬ  Ｓｃｈｅｍａ形式により前記ＸＭＬスキーマを作成すること、
を特徴とする情報処理装置。
【請求項９】
ＣＰＵとメモリを備えるコンピュータが、
ツリー構造のデータを構成する要素データを示す要素名と、前記要素データの親となる前記要素データである親要素データを特定する親要素特定情報と、リレーショナルデータベースにおいて前記データを管理する場合に、前記要素データが前記親要素データを識別するための主キーとなるかどうかを示すキー情報と、を対応付けて前記メモリに記憶し、
前記要素名及び前記親要素特定情報に基づいて、前記データの構造を定義するＸＭＬのスキーマ定義を記述したＸＭＬスキーマを生成し、
前記要素名、前記キー情報、及び前記親要素特定情報に基づいて、前記データの構造を定義するリレーショナルデータベースのスキーマ定義を記述したＲＤＢスキーマを生成すること、
を特徴とするスキーマ定義作成方法。
【請求項１０】
ＣＰＵとメモリを備えるコンピュータに、
ツリー構造のデータを構成する要素データを示す要素名と、前記要素データの親となる前記要素データである親要素データを特定する親要素特定情報と、リレーショナルデータベースにおいて前記データを管理する場合に、前記要素データが前記親要素データを識別するための主キーとなるかどうかを示すキー情報と、を対応付けて前記メモリに記憶するステップと、
前記要素名及び前記親要素特定情報に基づいて、前記データの構造を定義するＸＭＬのスキーマ定義を記述したＸＭＬスキーマを生成するステップと、
前記要素名、前記キー情報、及び前記親要素特定情報に基づいて、前記データの構造を定義するリレーショナルデータベースのスキーマ定義を記述したＲＤＢスキーマを生成するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、スキーマ作成方法、及びプログラムに関する。
【背景技術】
【０００２】
情報処理システム間でのデータ交換を行う場合には、ＸＭＬ（eXtensible Markup Language）形式のデータが用いられるようになってきている。一方で情報処理システムでのデータの管理は主にリレーショナルデータベースにより行われている。ＸＭＬ形式のツリー構造のデータを、表形式のデータを管理するリレーショナルデータベースにおいて管理する手法が開発されている（例えば、特許文献１参照）。
【特許文献１】特開２００３−２７１４４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、近年ではＸＭＬ形式のデータのスキーマ定義を記述するスキーマ言語が規格化されており、ＸＭＬ形式のデータの構造をスキーマ言語により厳格に定義することができるようになっている。  
しかしながら、ＸＭＬのスキーマ定義は、全体でひとつのツリー構造となるデータを定義することを前提としており、リレーショナルデータベースのように複数のテーブルと、そのテーブル間のリレーションのような構造のデータをＸＭＬのスキーマ言語で定義することができない。したがって、従来はＸＭＬのスキーマ定義とリレーショナルデータベースのスキーマ定義とは別個に行う必要があり、スキーマ定義には手間がかかっていた。
【０００４】
本発明は、このような背景を鑑みてなされたものであり、リレーショナルデータベースのスキーマ定義と、ＸＭＬのスキーマ定義との両方を生成することのできる、情報処理装置、スキーマ作成方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するための本発明の主たる発明は、情報処理装置であって、ツリー構造のデータを構成する要素データを示す要素名と、前記要素データの親となる前記要素データである親要素データを特定する親要素特定情報と、リレーショナルデータベースにおいて前記データを管理する場合に、前記要素データが前記親要素データを識別するための主キーとなるかどうかを示すキー情報と、を対応付けて記憶する要素情報記憶部と、前記要素名及び前記親要素特定情報に基づいて、前記データの構造を定義するＸＭＬのスキーマ定義を記述したＸＭＬスキーマを生成するＸＭＬスキーマ生成部と、前記要素名、前記キー情報、及び前記親要素特定情報に基づいて、前記データの構造を定義するリレーショナルデータベースのスキーマ定義を記述したＲＤＢスキーマを生成するＲＤＢスキーマ生成部と、を備えることとする。
【発明の効果】
【０００６】
本発明によれば、リレーショナルデータベースのスキーマ定義と、ＸＭＬのスキーマ定義との両方を生成することができる。
【発明を実施するための最良の形態】
【０００７】
＝＝ハードウェア＝＝
以下、本実施形態に係る情報処理装置１０について説明する。本実施形態では、情報処理装置１０として一般的なコンピュータを用いることを想定している。図１に情報処理装置１０のハードウェア構成を示す。同図に示すように、本実施形態に係る情報処理装置１０は、ＣＰＵ１０１、メモリ１０２、記憶装置１０３、入力装置１０４、出力装置１０５を備えている。
【０００８】
記憶装置１０３は、プログラムやデータを記憶する、例えば、ハードディスクドライブやＣＤ−ＲＯＭドライブなどである。ＣＰＵ１０１は、記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより各種の機能を実現する。入力装置１０４はデータを入力する、例えばキーボードやマウスなどである。出力装置１０５はデータを出力する、例えばディスプレイである。
【０００９】
本実施形態の情報処理装置１０は、ユーザからツリー構造のデータ（以下、ツリーデータという。）を構成する各要素について、名称やデータ型などの定義の入力を受け付け、リレーショナルデータベースのスキーマ定義を記述したデータ（以下、ＲＤＢスキーマという。）と、ＸＭＬ形式のデータのスキーマ定義を記述したデータ（以下、ＸＭＬスキーマという。）とを生成する。なお、本実施形態では、ＲＤＢスキーマはＳＱＬ（Structured Query Language）の構文にしたがって記述され、ＸＭＬスキーマはXML Schema又はＤＴＤ（Document Type Definition）の構文にしたがって記述されるものとする。
【００１０】
＝＝ソフトウェア＝＝
図２に情報処理装置１０のソフトウェア構成を示す。同図に示すように、情報処理装置１０は、データ入力部１１、ＲＤＢスキーマ生成部１２、ＸＭＬスキーマ生成部１３、ＸＭＬスキーマ入力部１４、要素管理データベース３１、属性管理データベース３２、規定値管理データベース３３、型表記データベース３４を備えている。
【００１１】
要素管理データベース３１は、ツリーデータの各要素についての情報（以下、要素管理情報という。）を記憶する。図３に要素管理データベース３１が記憶する要素管理情報の構成を示す。同図に示すように、要素管理情報には、要素ＮＯ３１１、セグメントＩＤ３１２、セグメント名３１３、階層ＮＯ３１４、階層キー３１５、要素名３１６、データ型３１７、データ長３１８が含まれている。
【００１２】
要素ＮＯ３１１は、要素管理情報の識別情報である。本実施形態では、要素ＮＯ３１１はツリーデータにおける要素の深さ優先順に割り振られる番号である。  
セグメントＩＤ３１２は、ツリー構造において同一の要素の子となる要素のグループ（以下、セグメントという。）を識別する情報である。なお、本実施形態において、セグメントＩＤ３１２は、ツリー構造において子を有する要素に対して、その要素の深さ優先順に割り振られる番号である。  
階層ＮＯ３１４は、ツリー構造における要素の階層の深さを示す情報である。なお、上記要素ＮＯ３１１及び階層ＮＯ３１４が本発明の親要素特定情報に該当する。
【００１３】
階層キー３１５（本発明のキー情報に該当する。）は、セグメントが属する階層において、要素がセグメントの識別情報となるかどうかを示す情報である。階層キー３１５には、「真（Ｔｒｕｅ）」又は「偽（Ｆａｌｓｅ）」が設定される。後述するように、本実施形態では、リレーショナルデータベースのスキーマ定義では、セグメント単位にテーブルが作成され、階層キー３１５が「真」である要素はそのテーブルの主キーとなる。  
データ型３１７及びデータ長３１８は要素のデータ型及びデータ長を示す情報である。
【００１４】
属性管理データベース３２は、要素の属性についての情報（以下、属性管理情報という。）を記憶する。図４に属性管理データベース３２が記憶する属性管理情報の構成を示す。同図に示すように、属性管理情報には、属性ＩＤ３２１、属性名３２２、データ型３２３、データ長３２４が含まれている。属性ＩＤ３２１は属性の識別情報である。データ型３２３及びデータ長３２４は属性値のデータ型及びデータ長である。
【００１５】
規定値管理データベース３３は、要素ＮＯに対応付けて、その要素がとりうる属性について、その属性のデフォルト値を管理する。規定値管理データベース３３が記憶する情報（以下、規定値管理情報という。）の構成を図５に示す。同図に示すように、規定値管理情報には、要素ＮＯ３３１、属性ＩＤ３３２、及び属性値のデフォルト値３３３が含まれている。
【００１６】
型表記データベース３４は、ＸＭＬスキーマに記述するためのデータ型の表記（以下、ＸＭＬ表記という。）と、ＲＤＢのスキーマに記述するためのデータ型の表記（以下、ＲＤＢ表記という。）とを含む情報（以下、型表記情報という。）を記憶する。図６に型表記データベース３４に記憶される型表記情報の構成を示す。同図に示すように、型表記情報にはＸＭＬ表記３４１、ＲＤＢ表記３４２、及びレングス範囲３４３が含まれている。レングス範囲３４３は、要素又は属性値のデータ長としてとりうる範囲を示す情報である。例えば、整数を示す表記として、ＲＤＢ表記３４２では「ＮＵＭ」１種類であるのに対し、ＸＭＬ表記３４１では「integer」及び「long」の２種類があるが、データ長が指定されることにより、データ型定義装置３０は、ＸＭＬ表記３４１において上記２つの表記のいずれをＸＭＬのスキーマ情報に記述すべきであるかを判断することができる。
【００１７】
データ入力部１１（本発明の要素情報登録部に該当する。）は、データの定義の入力を受け付けて上記各データベースに情報を登録する。ＲＤＢスキーマ生成部１２は、上述の各データベースに登録されている情報に基づいてＲＤＢスキーマを生成する。ＸＭＬスキーマ生成部１３は、上述の各データベースに登録されている情報に基づいてＸＭＬスキーマを生成する。ＸＭＬスキーマ入力部１４は、ＸＭＬスキーマの入力を受け付け、受け付けたＸＭＬスキーマに基づいてツリーデータの定義を上記の各データベースに登録する。
【００１８】
以下、各機能部による処理の詳細を説明する。  
＝＝データ入力部１１の処理＝＝
図７にデータ入力部１１がデータの定義の入力に用いるユーザインタフェースとしての画面２００の一例を示す。  
画面２００は入力欄２０１、ＲＤＢスキーマの生成ボタン２０２、XML Schema形式のＸＭＬスキーマの生成ボタン２０３、ＤＴＤ形式のＸＭＬスキーマの生成ボタン２０４、要素のリスト入力欄２１０を備えている。
【００１９】
要素ＮＯの入力欄２１１には要素ＮＯが入力される。要素のリスト入力欄２１０では、画面縦方向に要素ＮＯの順に要素が表示される（要素情報出力部）。ユーザはツリーデータのツリー構造における深さ優先順に要素が並ぶように、各要素の定義を入力していく。
【００２０】
階層ＮＯの入力欄２１２には、要素の階層ＮＯが入力され、階層キーのチェック欄２１３には、要素がセグメントの主キーになるかどうかがチェックされる。要素名の入力欄２１４には要素名が入力され、入力欄２１５及び２１６にはそれぞれ要素のデータ型及びデータ長が入力される。
【００２１】
また、要素のリスト入力欄２１０では、画面横方向に属性が一覧表示される。入力欄２１７には属性名が入力され、入力欄２１８及び２１９にはそれぞれ属性のデータ型及びデータ長が入力される。
【００２２】
また、ユーザは各要素について、その要素がとりうる属性のデフォルト値を、属性名に対応する列の入力欄２２０に設定する。例えば図７の例では、「薬剤名」要素について、「ドメイン」「ドメイン変数名」及び「マスタ名称」の各属性について、それぞれ「ＳＵ」「ＤＯＳＥ」及び「薬剤マスタ」というデフォルト値が入力されている。これにより、「薬剤名」という要素名の要素は、「ドメイン」「ドメイン変数名」及び「マスタ名称」という属性をとりうることが設定されたことになる。
【００２３】
画面２００のボタン２０２が押下されると、ＲＤＢスキーマ生成部１２によりＲＤＢスキーマが生成される。また、画面２００のXML Schema形式のＸＭＬスキーマの生成ボタン２０３又はＤＴＤ形式のＸＭＬスキーマの生成ボタン２０４が押下されると、ＸＭＬスキーマ生成部１３によりＸＭＬスキーマが生成される。なお、ＲＤＢスキーマ生成部１２によるＲＤＢスキーマの生成処理、及びＸＭＬスキーマ生成部１３によるＸＭＬスキーマの生成処理の詳細については後述する。
【００２４】
画面２００では、ツリーデータに含まれる全要素が深さ優先順に画面縦方向に一覧表示され、いずれかの要素に用いられる属性が画面横方向に一覧表示され、各要素がとる属性のデフォルト値が、要素に対応する行の属性に対応する列に表示される。したがって、ユーザはツリーデータ全体の構造を把握しやすい。また、ツリーデータ全体に含まれうる属性が一覧表示されるので、各要素について属性のデフォルト値の設定のし忘れを防ぐこともできる。
【００２５】
＝＝データの登録＝＝
図８は、画面２００に入力された情報に基づいて、データ入力部１１がデータベースに情報を登録する処理の流れを示すフロー図である。  
まず、データ入力部１１は、入力欄２１７に入力された属性名のそれぞれについて、その属性名と、対応する入力欄２１８のデータ型及び入力欄２１９のデータ長とを設定した属性管理情報を作成し、作成した属性管理情報を属性管理データベース３２に登録する（Ｓ５０１）。次に、データ入力部１１は、リスト入力欄２１０の各行について、要素管理情報を要素管理データベース３１に登録し（Ｓ５０２）、要素ＮＯ、属性名、及びデフォルト値を設定した規定値管理情報を作成し、作成した規定値管理情報を規定値管理データベース３３に登録する（Ｓ５０３）。
【００２６】
図９は、要素管理情報を登録する処理の流れを示すフロー図である。また図１０は、この処理に用いられるデータを記録するテーブル（以下、セグメントワーク表４１という。）の構成例を示す図である。図１０に示すセグメントワーク表４１には、階層ＮＯ４１１、セグメントＩＤ４１２、セグメント名４１３の各項目が設けられている。
【００２７】
データ入力部１１は、まずＩＤ変数に「０」を設定し、要素名変数に画面２００に入力されたツリー名を設定し、ＮＯ変数に「０」を設定して各変数を初期化する（Ｓ５２１）。次にデータ入力部１１は、画面２００のリスト入力欄２１０の各行について以下の処理を行う。
【００２８】
データ入力部１１は、階層ＮＯがＮＯ変数よりも大きい場合（Ｓ５２２：ＹＥＳ）、ＩＤ変数をインクリメントし（Ｓ５２３）、階層ＮＯとＩＤ変数と要素名変数をセグメントワーク表４１に追加する（Ｓ５２４）。
【００２９】
データ入力部１１は、ＮＯ変数に階層ＮＯを設定し（Ｓ５２５）、階層ＮＯに対応するセグメントワーク表４１のセグメントＩＤ４１２とセグメント名４１３とを取得する（Ｓ５２６、Ｓ５２７）。データ入力部１１は、取得したセグメントＩＤ４１２及びセグメント名４１３と、画面２００の入力欄２１１に入力された要素ＮＯ、入力欄２１２の階層ＮＯ、入力欄２１３の階層キー、入力欄２１４の要素名、入力欄２１５のデータ型、及び入力欄２１６のデータ長とを設定した要素管理情報を作成し、作成した要素管理情報を要素管理データベース３１に登録する（Ｓ５２８）。データ入力部１１は、要素名変数に要素名を設定する（Ｓ５２９）。
【００３０】
上記の処理がリスト入力欄２１０の各行について行われることで、画面２００に入力されたデータが要素管理データベース３１に登録される。
【００３１】
＝＝ＲＤＢスキーマ生成部１２の処理＝＝
図１１は、ＲＤＢスキーマ生成部１２によるＲＤＢスキーマの生成処理の流れを示す図である。また、図１２にＲＤＢスキーマ生成部１２が生成するＲＤＢスキーマの一例を示す。
【００３２】
ＲＤＢスキーマ生成部１２は、要素管理データベース３１に登録されているセグメントＩＤ３１２のリストを取得し、取得したセグメントＩＤ３１２のそれぞれについて、以下の処理を行う。
【００３３】
ＲＤＢスキーマ生成部１２は、処理対象となっているセグメントＩＤ３１２（以下、処理対象ＩＤという。）に対応する要素管理情報（以下、セグメント要素管理情報という。）を要素管理データベース３１から読み出す（Ｓ５４１）。ＲＤＢスキーマ生成部１２は、読み出したセグメント要素管理情報のセグメント名３１３に処理対象ＩＤを連結する（Ｓ５４２）。例えば、セグメントＩＤ３１２が「０１」、セグメント名３１３が「薬剤セグメント」である場合には、セグメント名３１３は「薬剤セグメント０１」になる。
【００３４】
ＲＤＢスキーマ生成部１２は、セグメント要素管理情報のうち、階層キー３１５が「真」であるものについて要素名３１１に処理対象ＩＤを連結する（Ｓ５４３）。例えば、セグメントＩＤ３１２が「０１」、要素名３１６が「薬剤名」である場合、要素名３１６は「薬剤名０１」となる。ＲＤＢスキーマ生成部１２は、セグメント要素管理情報のそれぞれについて、含まれているデータ型３１７がＸＭＬ表記３４１又はＲＤＢ表記３４２のいずれかと一致する型表記情報を型表記データベース３４から読み出し（Ｓ５４４）、読み出した型表記情報のＲＤＢ表記４３２をセグメント要素管理情報のデータ型３１７に設定する（Ｓ５４５）。
【００３５】
ＲＤＢスキーマ生成部１２は、セグメント要素管理情報のそれぞれの要素名３１６と、「セグメントＩＤ」及び「レコード特定キー」とをカラムとし、テーブルの名称を上記のセグメント名としたテーブルの定義するスキーマ情報を生成する（Ｓ５４６）。
【００３６】
例えば、上述の図３の例では、「０１」のセグメントＩＤに対応する要素は「階層キー」「薬剤名」「投与ユニット」であり、「階層キー」に対応する階層キー３１５が「真」である。この場合「薬剤セグメント０１」がテーブル名となり、「薬剤セグメント０１」のテーブルは、「階層キー０１」「薬剤名」「投与ユニット」「セグメントＩＤ」「レコード特定キー」という５つのカラムを有するように定義される。
【００３７】
ＲＤＢスキーマ生成部１２は、セグメントＩＤ３１２が処理対象ＩＤ以下であり、かつ階層キーが「真」である要素管理情報（以下、キー要素管理情報という。）を要素管理データベース３１から読み出し（Ｓ５４７）、読み出したキー要素管理情報の要素名３１６に処理対象ＩＤを連結する（Ｓ５４８）。ＲＤＢスキーマ生成部１２は、上記のセグメント名のテーブルのすべての要素名３１６、すなわちキー要素管理情報の要素名３１６のそれぞれについてのインデックスを定義するＲＤＢスキーマを生成する（Ｓ５４９）。例えば、図１２に示すように、上記の図３の例では「薬剤セグメント０１」の「階層キー０１」に対するインデックスが定義される。
【００３８】
上記の処理を各セグメントＩＤ３１２について行うことにより、各セグメントについてテーブルとインデックスの定義が出力される。
【００３９】
次に、ＲＤＢスキーマ生成部１２は、属性管理データベース３２からすべての属性管理情報を読み出し（Ｓ５５０）、読み出した属性管理情報のそれぞれについて、含まれているタイプがＸＭＬ表記３４１又はＲＤＢ表記３４２のいずれかと一致する型表記情報を型表記データベース３４から読み出し（Ｓ５５１）、読み出した型表記情報のＲＤＢ表記３４２を属性管理情報のデータ型３２３に設定する（Ｓ５５２）。ＲＤＢスキーマ生成部１２は、「セグメントＩＤ」、「レコード特定キー」及び「要素名キー」と、すべての属性管理情報の属性名３２２とをカラムとし、テーブルの名称を「属性セグメント」としたテーブルの定義を出力し（Ｓ５５３）、「属性セグメント」テーブルの、「セグメントＩＤ」、「レコード特定キー」及び「要素名キー」についてのインデックスの定義を出力する（Ｓ５５４）。  
以上のようにして図１２に示すようなＲＤＢスキーマが出力される。本実施形態の情報処理装置１０は、データ定義の入力情報として階層キーを受け付けるため、セグメント毎のテーブルについてインデックスを定義することができる。したがって、リレーショナルデータベースのテーブル間でのリレーションを実現することができる。これにより、全体でひとつのツリー構造となるツリーデータを複数のテーブルに正規化して管理することができるようになるので、リレーショナルデータベースにおいてツリーデータを効率的に管理することができる。
【００４０】
＝＝ＸＭＬスキーマ生成部１３の処理＝＝
図１３は、ＸＭＬスキーマ生成部１３によるＸＭＬスキーマの生成処理の流れを示す図である。また、ＸＭＬスキーマ生成部１３がＸＭＬスキーマの生成処理において用いる２つのテーブルの構成例を図１４及び図１５に示す。図１４に示すように定義データ管理テーブル４２は、プロセスＮＯ４２１、セグメントＩＤ４２２、定義データ４２３の各項目を備え、また図１５に示すように、要素名変換テーブル４３は、プロセスＮＯ４３１、セグメントＩＤ４３２、変換元名４３３、変換先名４３４を備えている。
【００４１】
ＸＭＬスキーマ生成部１３は、まず出力するＸＭＬスキーマの形式がXML Schemaである場合（Ｓ５６１：ＹＥＳ）、要素及び属性のデータ型の定義文を記述した定義データを定義データ管理テーブル４２に登録する（Ｓ５６２）。ＸＭＬスキーマ生成部１３は、属性グループの定義文を生成し（Ｓ５６３）、要素の定義文を生成し（Ｓ５６４）、セグメントの定義文を生成して（Ｓ５６５）、それぞれの定義文を記述した定義データを定義データ管理テーブル４２に登録する。なお、上記各生成処理の詳細は後述する。ＸＭＬスキーマ生成部１３は、定義データを、定義データ管理テーブル４２のプロセスＮＯ４２１の降順かつセグメントＩＤ４２２の昇順にソートし（Ｓ５６６）、ソートした定義データをＸＭＬスキーマとして出力する（Ｓ５６７）。
【００４２】
＝＝要素及び属性の型の定義＝＝
図１６に要素及び属性のデータ型の定義の生成処理の流れを示す。なお、ＸＭＬスキーマ生成部１３は、要素のデータ型と、属性のデータ型とのそれぞれについて、図１６に示す処理を行う。
【００４３】
ＸＭＬスキーマ生成部１３は、要素のデータ型を定義する場合（Ｓ５８１：ＹＥＳ）、定義データに「<!--要素タイプの定義--/>」というコメントを設定し（Ｓ５８２）、属性のデータ型を定義する場合（Ｓ５８１：ＮＯ）、定義データに「<!--属性タイプの定義--/>」というコメントを設定する（Ｓ５８３）。
【００４４】
ＸＭＬスキーマ生成部１３は、要素のデータ型を定義する場合には、要素管理データベース３１から要素管理情報を読み出し、属性のデータ型を定義する場合には、属性管理データベース３２から属性管理情報を読み出し（Ｓ５８４）、読み出した各レコードについて以下の処理を行う。
【００４５】
ＸＭＬスキーマ生成部１３は、名称としてレコードの要素名又は属性名を設定し（Ｓ５８５）、定義文に設定する名称（以下、定義名という。）として、上記の名称に「_Type」を連結したものを設定する（Ｓ５８６）。ＸＭＬスキーマ生成部１３は、要素名変換テーブル４３に、プロセスＩＤ４３１を「１」、セグメントＩＤ４３２を「０」、変換元名４３３を名称、変換先名４３４を定義名に設定したレコードを登録する（Ｓ５８７）。ＸＭＬスキーマ生成部１３は、「name」属性に定義名を設定した「<xsd:simpleType>」タグを定義データに追加する（Ｓ５８８）。
【００４６】
ＸＭＬスキーマ生成部１３は、型表記データベース３４から、ＸＭＬ表記及びＲＤＢ表記の少なくともいずれかが、要素管理情報又は属性管理情報に含まれているタイプと一致し、かつ要素管理情報又は属性管理情報のレングスがレングス範囲に含まれる型表記情報を読み出し（Ｓ５８９）、タイプとして型表記情報のＸＭＬ表記を設定し（Ｓ５９０）、「<xsd:restriction>」タグの「base」属性にタイプを設定して定義データに追加する（Ｓ５９１）。要素管理情報又は属性管理情報のレングスが設定されている場合には（Ｓ５９２：ＹＥＳ）、「Value」属性にレングスを設定した「<xsd:maxLength>」タグを定義データに追加する（Ｓ５９３）。
【００４７】
ＸＭＬスキーマ生成部１３は、上記（Ｓ５８８）及び（Ｓ５９０）で生成した開始タグに対応する終了タグである「<xsd:restriction>」及び「</simpleType>」を定義データに追加する（Ｓ５９４）。
【００４８】
以上の処理をデータベースから読み出したレコードのそれぞれについて行った後、ＸＭＬスキーマ生成部１３は、定義データ管理テーブル４２に、プロセスＮＯ４２１を「１」、セグメントＩＤ４２２を「０」として、定義データを登録する（Ｓ５９５）。
【００４９】
＝＝属性グループの定義＝＝
図１７は、属性グループの定義を生成する処理の流れを示す図である。  
ＸＭＬスキーマ生成部１３は、定義データに「<!--属性グループの定義--/>」というコメントを設定し（Ｓ６０１）、ＯｌｄＫｅｙ変数をクリアし（Ｓ６０２）、要素管理データベース３１に登録されている各要素管理情報のそれぞれについて以下の処理を行う。
【００５０】
ＸＭＬスキーマ生成部１３は、要素ＮＯに対応する規定値管理情報を規定値管理データベースから読み出し（Ｓ６０３）、規定値管理情報があれば（Ｓ６０４：ＹＥＳ）、規定値管理情報の属性名とＯｌｄＫｅｙとを比較する（Ｓ６０５）。属性名とＯｌｄＫｅｙとが一致しない場合（Ｓ６０５：ＹＥＳ）、属性名に「_Attr」を連結した文字列を属性グループ名とし（Ｓ６０６）、生成するＸＭＬスキーマの形式がＤＴＤである場合には（Ｓ６０７：ＹＥＳ）、属性グループ名を定義する「<!ENTITY>」タグを定義データに追加する（Ｓ６０８）。一方、生成するＸＭＬスキーマの形式がXML Schemaである場合（Ｓ６０７：ＮＯ）、ＸＭＬスキーマ生成部１３は、「name」属性に属性グループを設定した「<xsd:attributeGroup>」タグを定義データに追加する（Ｓ６０９）。
【００５１】
ＸＭＬスキーマ生成部１３は、要素名変換テーブル４３に、プロセスＩＤ４３１を「２」、セグメントＩＤ４３２を「０」、変換元名４３３を属性名、変換先名４３４を属性グループ名にしたレコードを登録し（Ｓ６１１）、属性名をＯｌｄＫｅｙとする。
【００５２】
ＸＭＬスキーマ生成部１３は、要素名変換テーブル４３から、プロセスＩＤ４３１が「１」、セグメントＩＤ４３２が「０」、かつ変換元名４３３が規定値管理情報の属性名である変換先名４３４を読み出し（Ｓ６１２）、読み出した変換先名４３４をタイプ名とする（Ｓ６１３）。ＸＭＬスキーマ生成部１３は、生成するＸＭＬスキーマの形式がＤＴＤの場合（Ｓ６１４）、属性名と「ＣＤＡＴＡ」と規定値管理情報のデフォルト値とを空白をはさんで連結した文字列を定義データに追加し（Ｓ６１５）、生成するＸＭＬスキーマの形式がXML Schemaである場合（Ｓ６１４：ＮＯ）、「name」属性に規定値管理情報の属性名、「type」属性にタイプ名、「default」属性に規定値管理情報のデフォルト値をそれぞれ設定した「<xsd:attribute>」タグを定義データに追加する（Ｓ６１６）。
【００５３】
ＸＭＬスキーマ生成部１３は、要素名変換テーブル４３に、プロセスＩＤ４３１を「１」、セグメントＩＤ４３２を「０」、変換元名４３３をタイプ名、変換先名４３４を属性グループ名としたレコードを登録する（Ｓ６１７）。
【００５４】
以上の処理を各要素管理情報について行った後、ＸＭＬスキーマ生成部１３は、定義データ管理テーブル４２２に、プロセスＮＯ４２１を「２」、セグメントＩＤ４２２を「０」として、定義データを登録する（Ｓ６１８）。
【００５５】
＝＝要素の定義＝＝
図１８は要素の定義の生成処理の流れを示す図である。  
ＸＭＬスキーマ生成部１３は、定義データを空に初期化して（Ｓ６２１）、要素管理データベース３１からセグメントＩＤを重複なしに取得し、取得したセグメントＩＤのそれぞれを処理対象ＩＤとして、以下の処理を行う。
【００５６】
ＸＭＬスキーマ生成部１３は、要素管理データベース３１から、処理対象ＩＤに対応する要素管理情報（以下、処理対象要素管理情報という。）を読み出し（Ｓ６２２）、読み出した処理対象要素管理情報に基づいて、図１９に示すタグの生成処理を行う（Ｓ６２３）。
【００５７】
ＸＭＬスキーマ生成部１３は、「<!--構造の定義--/>」というコメントを定義データに追加し（Ｓ６４１）、「<!--要素レベル」と要素管理情報の階層ＮＯと「-->」とを連結した文字列を定義データに追加する（Ｓ６４２）。
【００５８】
生成するＸＭＬの形式がＤＴＤである場合（Ｓ６４３：ＹＥＳ）、ＸＭＬスキーマ生成部１３は、処理対象要素管理情報から階層キーが「偽」である要素管理情報を抽出し、抽出した要素管理情報の要素名を「｜」をはさんで連結した文字列をキーリストに設定する（Ｓ６４４）。ＸＭＬスキーマ生成部１３は、「<!ELEMENT セグメント名 (キーリスト)>」となるようなタグを定義データに追加する（Ｓ６４５）。
【００５９】
ＸＭＬスキーマ生成部１３は、「<!ATTLIST 」とセグメント名を連結した行と、「<!--属性キー--/>」というコメントの行と、「セグメントID CDATA セグメントＩＤ」という行と、「要素名キー CDATA #REQUIRED」という行と、「レコード特定キー CDATA #REQUIRED」という行とを定義データに追加する（Ｓ６４６）。さらにＸＭＬスキーマ生成部１３は、「<!--セグメントキー--/>」というコメントを定義データに追加する（Ｓ６４７）。
【００６０】
ＸＭＬスキーマ生成部１３は、処理対象要素管理情報から階層キーが「真」である要素管理情報を抽出し、抽出した要素管理情報のそれぞれについて、要素名にセグメントＩＤを連結し（Ｓ６４８）、セグメントＩＤを連結した要素名と、「 CDATA #REQUIRED」の文字列を連結した行を定義データに追加する（Ｓ６４９）。最後にＸＭＬスキーマ生成部１３は、タグを閉じる「>」を定義データに追加する（Ｓ６５０）。
【００６１】
一方、生成するＸＭＬの形式がXML Schemaである場合（Ｓ６４３：ＮＯ）、ＸＭＬスキーマ生成部１３は、「name」属性にセグメント名を設定した「<xsd:element>」タグと、「<xsd:complexType>」タグとを定義データに追加する（Ｓ６５１）。ＸＭＬスキーマ生成部１３は、要素管理情報のうち階層キーが「偽」である要素管理情報を抽出し、抽出した要素管理情報のそれぞれについて、要素名を「ref」属性に設定した「<xsd:element>」タグを定義データに追加する（Ｓ６５２）。
【００６２】
ＸＭＬスキーマ生成部１３は、「<!--属性キー--/>」というコメント行と、「name」属性に「セグメントＩＤ」を設定し、「type」属性に「xsd:セグメントＩＤ_Type」を設定し、「default」属性にセグメントＩＤを設定した「<xsd:attribute>」タグと、「name」属性に「要素名キー」を設定し、「type」属性に「xsd:要素名キー_Type」を設定した「<xsd:attribute>」タグと、「name」属性に「レコード特定キー」を設定し、「type」属性に「xsd:レコード特定キー_Type」を設定した「<xsd:attribute>」タグとを定義データに追加する（Ｓ６５３）。ＸＭＬスキーマ生成部１３は、「<!--セグメントキー--/>」というコメントを定義データに追加する（Ｓ６５４）。
【００６３】
ＸＭＬスキーマ生成部１３は、処理対象要素管理情報から階層キーが「真」である要素管理情報を抽出し、抽出した要素管理情報のそれぞれについて、要素名にセグメントＩＤを連結した文字列を名称とし（Ｓ６５５）、「xsd:」の文字列と、要素名と、「_Type」の文字列とを連結したものを型名称として（Ｓ６５６）、「name」属性に名称を設定し、「type」属性に型名称を設定した「<xsd:attribute>」タグを定義データに追加する（Ｓ６５７）。最後にＸＭＬスキーマ生成部１３は、上記（Ｓ６５３）で生成した開始タグに対応する終了タグである「</xsd:complexType>」及び「</xsd:element>」を定義データに追加する（Ｓ６５８）。
【００６４】
以上のようにして生成される定義データの一例を図２０に示す。図２０に示す定義データは、XML Schema形式の例である。同図に示すように、コメント行４５１や４５２などによって、ＸＭＬスキーマの定義データにおいて、どこに何が定義してあるかを特定することができる。したがって、後述するように、ＸＭＬスキーマ入力部１４は上記のようなコメント情報に基づいて、定義データを解析することができるので、スキーマ情報の読み込みを容易に行うことができる。また、リレーショナルデータベースにおいてセグメントの主キーとなる要素について、本実施形態の情報処理装置１０によれば、ＸＭＬスキーマにおいて、セグメントに対応する要素の属性としてキー要素の定義文４５３などが生成される。したがって、階層キーの情報を失うことなくＸＭＬスキーマを生成することができている。よって、ＸＭＬスキーマによる定義データの交換を行う場合にも、階層キーの情報を交換することができる。
【００６５】
＝＝ＸＭＬスキーマ入力部１４の処理＝＝
図２１はＸＭＬスキーマ入力部１４によるＸＭＬスキーマの読み込み処理の流れを示す図である。同図に示すように、ＸＭＬスキーマ入力部１４は、入力されたＸＭＬスキーマから定義データを抽出し（Ｓ６６１）、抽出した定義データからセグメントの定義文を解析して要素管理情報を登録する（Ｓ６６２）。ＸＭＬスキーマ入力部１４は、要素の定義文を解析して要素と属性グループの定義との対応付けを抽出し（Ｓ６６３）、要素及び属性のデータ型の定義文を解析して、要素管理情報のタイプ及びレングスを更新し、属性管理情報を登録する（Ｓ６６４）。ＸＭＬスキーマ入力部１４は、属性グループの定義文を解析して規定値管理情報を登録する（Ｓ６６５）。  
以下、各処理の詳細について説明する。
【００６６】
＝＝定義データの抽出＝＝
図２２は、定義データの抽出処理の流れを示す図である。この処理において用いられる作業用データであるテキスト配列４４の構成を図２３に示す。図２３に示すように、テキスト配列４４の配列要素には、定義分類ＮＯ４４１、セグメントＩＤ４４２、セグメント名４４３、階層ＮＯ４４４、ソースリスト４４５が対応付けて格納される。なお、本実施形態では、テキスト配列４４の各配列要素は１から始まる数値により特定されるものとし、以下の説明では、テキスト配列４４のＩ番目の配列要素を特定する場合にはテキスト配列４４（Ｉ）と表記する。ソースリスト４４５には、ＸＭＬスキーマから読み出した各行の文字列（以下、ソーステキストという。）が格納される。
【００６７】
ＸＭＬスキーマ入力部１４は、変数Ｉに「０」、セグメントＩＤフラグに「偽」、セグメント名フラグに「偽」をそれぞれ設定し（Ｓ６８１）、ＸＭＬスキーマから１行ずつソーステキストを読み出し、読み出したソーステキストのそれぞれについて以下の処理を行う。
【００６８】
ＸＭＬスキーマ入力部１４は、ソーステキストが「<!--構造の定義-->」、「<!--要素の定義--/>」、「<!--属性グループの定義--/>」、「<!--属性タイプの定義--/>」又は「<!--要素タイプの定義--/>」のいずれかと一致するかどうかを判断し（Ｓ６８２）、これらのいずれかに一致した場合（Ｓ６８２：ＹＥＳ）、Ｉをインクリメントし（Ｓ６８３）、テキスト配列４４（Ｉ）の配列要素を作成する（Ｓ６８４）。なお、ここでＸＭＬスキーマ入力部１４は、ソーステキストが、「<!--構造の定義-->」に一致する場合には、配列要素の定義分類ＮＯ４４１を「１」とし、「<!--要素の定義--/>」に一致する場合には、定義分類ＮＯ４４１を「２」とし、「<!--属性グループの定義--/>」と一致する場合には、定義分類ＮＯ４４１を「３」とし、「<!--属性タイプの定義--/>」と一致する場合には、定義分類ＮＯ４４１を「４」とし、「<!--要素タイプの定義--/>」と一致する場合には、定義分類ＮＯ４４１を「５」に設定する。
【００６９】
さらにソーステキストが「<!--属性キー要素--/>」と一致している場合（Ｓ６８５：ＹＥＳ）、ＸＭＬスキーマ入力部１４は、セグメント検索フラグに「真」を設定する（Ｓ６８６）。
【００７０】
一方、ソーステキストが上記のいずれのコメントとも一致しない場合（Ｓ６８２：ＮＯ）、ＸＭＬスキーマ入力部１４は、ソーステキストが「<!--要素  レベルＮ--/>」（Ｎは一文字以上の数字）の形式になっているかどうかを判断し（Ｓ６８７）、その形式であれば（Ｓ６８７：ＹＥＳ）、ソーステキストに含まれているＮをテキスト配列４４（Ｉ）の階層ＮＯ４４４に設定し（Ｓ６８８）、セグメント名フラグを「真」に設定する（Ｓ６８９）。
【００７１】
ソーステキストが上記の「<!--要素  レベルＮ--/>」の形式になっていない場合に（Ｓ６８７：ＮＯ）、セグメント名フラグが「真」であれば（Ｓ６９０：ＹＥＳ）、ＸＭＬスキーマ入力部１４は、セグメント名をソーステキストから抽出し（Ｓ６９１）、抽出したセグメント名をテキスト配列４４（Ｉ）のセグメント名４４３に設定し（Ｓ６９２）、セグメント名フラグに「偽」を設定する（Ｓ６９３）。なお、ＸＭＬスキーマ入力部１４は、ＸＭＬスキーマがXML Schema形式であれば、「<xsd:element>」タグの「name」属性からセグメント名を抽出し、ＤＴＤ形式であれば、「<!ELEMENT>」タグの「ELEMENT」に続く名称をセグメント名として抽出することができる。
【００７２】
また、セグメントＩＤフラグが「真」である場合（Ｓ６９４：ＹＥＳ）、ＸＭＬスキーマ入力部１４は、セグメントＩＤをソーステキストから抽出し（Ｓ６９５）、抽出したセグメントＩＤをテキスト配列４４（Ｉ）のセグメントＩＤ４４２に設定し（Ｓ６９６）、セグメントＩＤフラグに「偽」を設定する（Ｓ６９７）。なお、ＸＭＬスキーマ入力部１４は、ＸＭＬスキーマがXML Schema形式であれば、「name」属性が「セグメントＩＤ」である「<xsd:attribute>」タグの「default」属性からセグメントＩＤを抽出し、ＤＴＤ形式であれば、「セグメントＩＤ CDATA 」に続く値をセグメントＩＤとして抽出することができる。
【００７３】
ＸＭＬスキーマ入力部１４は、ソーステキストをテキスト配列４４（Ｉ）のソースリスト４４５に追加する（Ｓ６９３）。
【００７４】
上記のようにして、ＸＭＬスキーマは挿入されているコメントによって、セグメントの定義部分、要素の定義部分、要素毎の属性グループの定義部分、要素や属性の型の定義部分に分割されてテキスト配列４４に格納される。
【００７５】
＝＝セグメントの定義解析＝＝
図２４は、セグメントの定義の解析処理の流れを示す図である。この処理において用いられる作業用データである要素ワーク表４５の構成を図２５に示す。同図に示すように、要素ワーク表４５は、管理セグメントＩＤ４５１、要素ＮＯ４５２、セグメントＩＤ４５３、セグメント名４５４、階層ＮＯ４５５、階層キー４５６、要素名４５７の各項目を備えている。また、以下の処理では、上述した図１５に示す要素名変換テーブル４３も用いられる。
【００７６】
ＸＭＬスキーマ入力部１４は、要素行カウント変数に「０」を設定し（Ｓ７０１）、セグメントの主キーとなる要素（以下、キー要素という）の定義を抽出し（Ｓ７０２）、セグメントに含まれる要素の定義を抽出する（Ｓ７０３）。これらの処理により要素ワーク表４５にレコードが登録されると、ＸＭＬスキーマ入力部１４は、ツリーデータにおける要素の深さ優先順に要素ワーク表４５のレコードを並べ替え（Ｓ７０４）、並べ替えた要素ワーク表４５の管理セグメントＩＤ４５１以外の項目から要素管理情報を作成して、作成した要素管理情報を要素管理データベース３１に登録する（Ｓ７０５）。
【００７７】
以下、各処理の詳細について説明する。  
＝＝キー要素の抽出＝＝
図２６にキー要素の定義部分の解析処理の流れを示す。ＸＭＬスキーマ入力部１４は、定義分類ＮＯに「１」が設定されているテキスト配列４４の各配列要素について以下の処理を行う。
【００７８】
ＸＭＬスキーマ入力部１４は、ソースリストから、「<!--キー要素--/>」より後のソーステキストを抽出し（Ｓ７２１）、抽出したソーステキストのそれぞれについて以下の処理を行う。
【００７９】
ＸＭＬスキーマ入力部１４は、ＸＭＬスキーマの形式がＤＴＤである場合（Ｓ７２２）、ソーステキストから、「<!ATTLIST>」タグ内の「属性名 CDATA #REQUIRED」の属性名に該当する部分を抽出し（Ｓ７２３）、抽出した属性名をＳ及びＣとする（Ｓ７２４、Ｓ７２５）。一方ＸＭＬスキーマの形式がXML Schemaである場合には（Ｓ７２２：ＮＯ）、ソーステキストから、「<xsd:attribute>」タグの「name」属性値と「type」属性値とを抽出し（Ｓ７２６）、「name」属性値をＳとし（Ｓ７２７）、「type」属性値をＣとする（Ｓ７２８）。
【００８０】
ＸＭＬスキーマ入力部１４は、上記のようにして属性名や属性値が抽出できた場合（Ｓ７２９：ＹＥＳ）、プロセスＮＯ４３１を「１」、セグメントＩＤ４３２を配列要素のセグメントＩＤ４４２、変換元名４３３をＳ、変換先名４３４をＣとして要素名変換テーブル４３に登録する（Ｓ７３０）。次に、ＸＭＬスキーマ入力部１４は、要素ＮＯカウントをインクリメントし（Ｓ７３１）、Ｓの最後尾に連結されている配列要素のセグメントＩＤ４４２の部分を削除する（Ｓ７３２）。ＸＭＬスキーマ入力部１４は、管理セグメントＩＤ４５１に配列要素のセグメントＩＤ４４２、要素ＮＯ４５２に要素ＮＯカウント、階層ＮＯ４５５を配列要素の階層ＮＯ４４４、セグメントＩＤ４５３を配列要素のセグメントＩＤ４４２、セグメント名４５４を配列要素のセグメント名４４３、階層キー４５６を「真」、要素名４５７を上記Ｓとしたレコードを要素ワーク表４５に登録する（Ｓ７３３）。
【００８１】
＝＝要素の定義解析＝＝
図２７にツリーデータの各要素についての定義部分の解析処理の流れを示す。ＸＭＬスキーマ入力部１４は、定義分類ＮＯに「１」が設定されているテキスト配列４４の配列要素毎に、ソースリスト４４５に含まれる各ソーステキストについて以下の処理を行う。
【００８２】
ＸＭＬスキーマ入力部１４は、要素名のリストを初期化し（Ｓ７５１）、ＸＭＬスキーマの形式がＤＴＤの場合、ソーステキストに「<!ELEMENT>」タグが含まれていれば（Ｓ７５３：ＹＥＳ）、「<!ELEMENT>」タグから、要素名のリストを抽出する（Ｓ７５４）。ここで要素名のリストは、括弧の中の文字列を、「｜」で分割して抽出することができる。ＸＭＬスキーマの形式がXML Schemaである場合（Ｓ７５２：ＮＯ）、ＸＭＬスキーマ入力部１４は、ソーステキストに「<xsd:element>」タグが含まれていれば（Ｓ７５５：ＹＥＳ）、「<xsd:element>」タグの「ref」属性から要素名を抽出して、１つの要素名のリストを要素名リストとする（Ｓ７５６）。
【００８３】
ＸＭＬスキーマ入力部１４は、上記のようにして抽出した要素名リストに含まれる要素名のそれぞれについて、要素名に「_Type」を連結した文字列を型定義名とし（Ｓ７５７）、要素名変換テーブル４３に、プロセスＮＯ４３１を「１」、セグメントＩＤ４３２を配列要素のセグメントＩＤ４４２、変換元名４３３を要素名、変換先名４３４を型定義名とするレコードを追加する（Ｓ７５８）。ＸＭＬスキーマ入力部１４は、要素ＮＯカウントをインクリメントし（Ｓ７５９）、管理セグメントＩＤ４５１を配列要素のセグメントＩＤ４４２、要素ＮＯ４５２を要素ＮＯカウント、階層ＮＯ４５５を配列要素の階層ＮＯ４４４、セグメントＩＤ４５３を配列要素のセグメントＩＤ４４２、セグメント名４５４を配列要素のセグメント名４４３、階層キー４５６を「偽」としたレコードを要素ワーク表４５に登録する（Ｓ７６０）。
【００８４】
＝＝要素ワーク表４５の並べ替え＝＝
次にＸＭＬスキーマ入力部１４は、上記のようにして作成した要素ワーク表４５のレコードを、ツリーデータにおけるツリー構造の深さ優先順になるように並べ替える。本実施形態では、ツリー構造におけるリーフ（深さが最も深い要素）に相当する２つのセグメントを選択し、選択した２つのセグメントに属するレコードが連続するように並べ替えていく方式を採用している。以下、要素ワーク表４５のレコードを並べ替える処理の具体例について説明する。なお、以下の具体例では、ＸＭＬスキーマのソーステキストを格納している上述のテキスト配列４４も利用する。
【００８５】
図２８は要素ワーク表４５のレコードを要素の深さ優先順に並べ替える処理の流れを示す図である。  
ＸＭＬスキーマ入力部１４は、要素ワーク表４５の階層ＮＯ４５５の最大値を上限階層ＮＯとし、セグメントＩＤ４５３の最大値を上限セグメントＩＤとし、ＯＬＤ階層ＮＯを「０」、最大セグメントＩＤを「０」として変数を初期化する（Ｓ７８１）。次に、ＸＭＬスキーマ入力部１４は、図２９に示すセグメントの選択処理を行う（Ｓ７８２）。
【００８６】
図２９に示すセグメント選択処理では、ＸＭＬスキーマ入力部１４は、Ｉに「１」を設定し（Ｓ８０１）、Ｉがテキスト配列４４の配列要素数以下である間以下の処理を行う。
【００８７】
ＸＭＬスキーマ入力部１４は、テキスト配列４４（Ｉ）の定義分類ＮＯが「１」であり、かつセグメントＩＤに値が設定されている場合（Ｓ８０２：ＹＥＳ）、テキスト配列４４（Ｉ）の階層ＮＯをＮＥＷ階層ＮＯとする（Ｓ８０３）。ＸＭＬスキーマ入力部１４は、ＮＥＷ階層ＮＯが上限階層ＮＯ以下であり、かつＮＥＷ階層ＮＯがＯＬＤ階層ＮＯ以上の場合に（Ｓ８０４：ＹＥＳ）、ＮＥＷ階層ＮＯがＯＬＤ階層ＮＯよりも大きければ（Ｓ８０５：ＹＥＳ）、ＮＥＷ階層ＮＯをＯＬＤ階層に設定し（Ｓ８０６）、ＮＥＷ階層ＮＯがＯＬＤ階層ＮＯよりも大きくなく（Ｓ８０５：ＮＯ）、テキスト配列４４（Ｉ）のセグメントＩＤが上限セグメントＩＤ以上又はセグメントＩＤが最大セグメントＩＤ以下であれば（Ｓ８０７：ＮＯ）、（Ｓ８１１）に進み、次のテキスト配列４４の配列要素について（Ｓ８０２）からの処理を行う。  
ＸＭＬスキーマ入力部１４は、Ｉを配列位置として（Ｓ８０８）、テキスト配列４４（Ｉ）のセグメントＩＤを最大セグメントＩＤとし（Ｓ８０９）、Ｉをインクリメントする（Ｓ８１０）。
【００８８】
以上の処理の後、配列位置を結合元位置とし、ＯＬＤ階層ＮＯを結合元階層ＮＯとし、最大セグメントＩＤを結合元セグメントＩＤとする（Ｓ７８３）。テキスト配列４４（結合元位置）のセグメントＩＤが「０１」であれば（Ｓ７８４：ＹＥＳ）、処理を終了する。  
テキスト配列４４（結合元位置）のセグメントＩＤ４４１が「０１」でなければ（Ｓ７８４：ＮＯ）、ＸＭＬスキーマ入力部１４は、結合元階層ＮＯから「１」を減算したものを上限階層ＮＯ、結合元セグメントＩＤを上限セグメントＩＤ、ＯＬＤ階層ＮＯを「０」、最大セグメントＩＤを「０」として（Ｓ７８５）、上述した図２９に示すセグメント選択処理を行い（Ｓ７８６）、配列位置を結合先位置とする（Ｓ７８７）。
【００８９】
次にＸＭＬスキーマ入力部１４は、図３０に示すセグメントの結合処理と（Ｓ７８８）、図３１に示す結合後処理（Ｓ７８９）を行い、再度（Ｓ７８１）からの処理を行う。
【００９０】
図３０に示すセグメント結合処理において、まずＸＭＬスキーマ入力部１４は、要素ワーク表４５のセグメントＩＤ４５３の最大値を作業用管理セグメントＩＤとし、テキスト配列４４（結合元位置）のセグメント名４４３を結合要素名とし、テキスト配列４４（結合元位置）の階層ＮＯ４４４から「１」を減算した値を結合階層ＮＯとし、要素ＮＯを「０」として変数を初期化する（Ｓ８２１）。ＸＭＬスキーマ入力部１４は、要素ワーク表から、管理セグメントＩＤ４５１とテキスト配列４４（結合元位置）のセグメントＩＤ４４２とが一致するレコードを読み出し、読み出したレコードを結合元一覧データとする（Ｓ８２２）。ＸＭＬスキーマ入力部１４は、管理セグメントＩＤ４５１とテキスト配列４４（結合先位置）のセグメントＩＤ４４２とが一致するレコードを読み出し、読み出したレコードを結合先一覧データとする（Ｓ８２３）。次にＸＭＬスキーマ入力部１４は、結合先一覧データのそれぞれ（以下、結合先データという。）について以下の処理を行う。
【００９１】
結合先データの階層ＮＯ４５５が結合階層ＮＯと一致し、かつ結合先データの要素名４５７が結合要素名と一致している場合（Ｓ８２４：ＹＥＳ）、ＸＭＬスキーマ入力部１４は、結合元一覧データのそれぞれ（以下、結合元データという。）について、要素ＮＯをインクリメントして（Ｓ８２５）、管理セグメントＩＤ４５１を作業用管理セグメントＩＤ、要素ＮＯ４５２を要素ＩＤ、セグメントＩＤ４５３を結合元データのセグメントＩＤ４５１、セグメント名４５４を結合元データのセグメント名４５４、階層ＮＯ４５５を結合元データの階層ＮＯ４５５、階層キー４５６を結合元データの階層キー４５６、要素名４５７を結合元データの要素名４５７としたレコードを要素ワーク表４５に追加登録する（Ｓ８２６）。
【００９２】
一方、結合先データの階層ＮＯ４５５が結合階層ＮＯと一致しない、あるいは結合先データの要素名４５７が結合要素名と一致しない場合には（Ｓ８２４：ＮＯ）、要素ＮＯをインクリメントして（Ｓ８２７）、管理セグメントＩＤ４５１を作業用管理セグメントＩＤ、要素ＮＯ４５２を要素ＩＤ、セグメントＩＤ４５３を結合先データのセグメントＩＤ４５３、セグメント名４５４を結合先データのセグメント名４５４、階層ＮＯ４５５を結合先データの階層ＮＯ４５５、階層キー４５６を結合先データの階層キー４５６、要素名４５７を結合先データの要素名４５７としたレコードを要素ワーク表４５に追加登録する（Ｓ８２８）。
【００９３】
図３１に示す結合後処理では、ＸＭＬスキーマ入力部１４は、まず管理セグメントＩＤ４５１がテキスト配列４４（結合先位置）のセグメントＩＤ４４２又はテキスト配列４４（結合元位置）のセグメントＩＤ４４２のいずれかと一致するレコードを要素ワーク表４５から削除する（Ｓ８４１）。次にＸＭＬスキーマ入力部１４は、管理セグメントＩＤ４５１が作業用管理セグメントＩＤと一致するレコードを読み出し（Ｓ８４２）、読み出したレコードの管理セグメントＩＤ４５１をテキスト配列４４（結合先位置）のセグメントＩＤ４４２に更新して要素ワーク表４５に追加登録する（Ｓ８４３）。ＸＭＬスキーマ入力部１４は、要素ワーク表４５から、管理セグメントＩＤ４５１が作業用管理セグメントＩＤと一致するレコードを削除し（Ｓ８４４）、テキスト配列４４（結合元位置）のセグメントＩＤ４４２、セグメント名４４３、階層ＮＯ４４４の値をクリアする（Ｓ８４５）。
【００９４】
以上のようにして、ＸＭＬスキーマ入力部１４は、階層ＮＯ及びセグメントＩＤがそれぞれ最大であるセグメントを選択していくことにより、ツリーデータのツリー構造におけるリーフに相当する２つのセグメントを選択し、選択した２つのセグメントが連続するようにレコードを並べ替えていく。これによりＸＭＬスキーマ入力部１４は、要素ワーク表４５を要素の深さ優先順にソートすることができる。
【００９５】
＝＝要素の定義解析＝＝
図３２は、要素の定義部分を解析する処理の流れを示す図である。ＸＭＬスキーマ入力部１４は、テキスト配列４４の定義分類ＮＯ４４１が「２」である配列要素のそれぞれについて以下の処理を行う。
【００９６】
ＸＭＬスキーマ入力部１４は、ソースリストに含まれているソーステキストを連結する（Ｓ８６１）。ＸＭＬスキーマの形式がＤＴＤである場合には（Ｓ８６２：ＹＥＳ）、ＸＭＬスキーマ入力部１４は、連結した文字列から「<!ATTLIST>」タグを抽出し（Ｓ８６３）、「ATTLIST」に続くタグの名称を要素名とする（Ｓ８６４）。一方、ＸＭＬスキーマの形式がXML Schemaの場合には（Ｓ８６２：ＮＯ）、ＸＭＬスキーマ入力部１４は、連結した文字列から「<xsd:element>」タグを抽出し（Ｓ８６５）、タグの「name」属性から要素名を抽出する（Ｓ８６６）。  
ＸＭＬスキーマ入力部１４は、要素名に「_Type」を連結した文字列を型定義名とし（Ｓ８６７）、プロセスＩＤ４３１を「２」、セグメントＩＤ４３２を配列要素のセグメントＩＤ４４２、変換元名４３３を要素名、変換先名４３４を型定義名としたレコードを要素名変換テーブル４３に追加する（Ｓ８６８）。  
また、ＸＭＬスキーマ入力部１４は、要素名に「_Attr」を連結した文字列をグループ名として（Ｓ８６９）、プロセスＩＤ４３１を「４」、セグメントＩＤ４３２を「０」、変換元名４３３を要素名、変換先名４３４をグループ名としたレコードを要素名変換テーブル４３に追加する（Ｓ８７０）。
【００９７】
上記のようにして、要素名変換テーブル４３には、各要素の要素名と要素の型定義の名称との対応づけ、及び要素名と、その要素の属性グループ定義の名称との対応付けが登録される。
【００９８】
＝＝要素及び属性の型の定義解析＝＝
図３３は、要素の型の定義を解析する処理の流れを示す図である。なお、ＸＭＬスキーマの形式がＤＴＤである場合には、型の定義は含まれないので、ＸＭＬスキーマ入力部１４は要素や属性の型の定義を解析する処理は行わない。ＸＭＬスキーマ入力部１４は、定義分類ＮＯが「５」であるテキスト配列４４の各配列要素について以下の処理を行う。
【００９９】
ＸＭＬスキーマ入力部１４は、タグ開始フラグに「偽」を設定し（Ｓ８８１）、配列要素のソースリスト４４５に含まれる各ソーステキストについて以下の処理を行う。
【０１００】
ＸＭＬスキーマ入力部１４は、ソーステキストに「</xsd:simpleType>」の終了タグが含まれている場合（Ｓ８８２：ＹＥＳ）、タグ開始フラグに「偽」を設定する（Ｓ８８３）。ＸＭＬスキーマ入力部１４は、ソーステキストに「<xsd:simpleType>」の開始タグが含まれている場合（Ｓ８８４：ＹＥＳ）、タグの「name」属性を型定義名とし（Ｓ８８５）、要素名変換テーブル４３から、プロセスＮＯ４３１が「２」、変換先名４３４が型定義名である変換元名４３３及びセグメントＩＤ４３２を読み出し（Ｓ８８６）、読み出した変換元名４３３を要素名とし（Ｓ８８７）、タグ開始フラグを「真」にする（Ｓ８８８）。
【０１０１】
タグ開始フラグが「偽」であれば（Ｓ８８９：ＮＯ）、ＸＭＬスキーマ入力部１４は、次のソーステキストについて（Ｓ８８２）からの処理を行う。  
タグ開始フラグが「真」の場合（Ｓ８８９）、ＸＭＬスキーマ入力部１４は、ソーステキストに「<xsd:restriction>」タグが含まれていれば（Ｓ８９０：ＹＥＳ）、「base」属性の属性値の先頭から「xsd:」を除いたものをタイプとして（Ｓ８９１）、上記の要素名とセグメントＩＤとに対応する要素管理データベース３１のタイプを更新する（Ｓ８９２）。  
また、ＸＭＬスキーマ入力部１４は、ソーステキストに「<xsd:maxLength>」タグが含まれている場合には（Ｓ８９３）、タグの「Value」属性からレングスを抽出し（Ｓ８９４）、上記の要素名とセグメントＩＤとに対応する要素管理データベース３１のレングスを更新する（Ｓ８９５）。
【０１０２】
以上の処理をテキスト配列４４の各配列要素について行うことで、ＸＭＬスキーマ入力部１４は、ＸＭＬスキーマの定義文に基づいて、要素管理データベース３１のタイプ及びレングスを更新することができる。
【０１０３】
なお、ＸＭＬスキーマ入力部１４は、属性についても図３３に示す処理と同様の処理を行う。属性の型の定義については、定義分類ＮＯが「４」であるテキスト配列４４の各配列要素について、（Ｓ８８１）〜（Ｓ８９５）の処理を行い、（Ｓ８８７）においては、変換元名を属性名とし、（Ｓ８９２）及び（Ｓ８９５）では、属性名とセグメントＩＤとに対応する属性管理データベース３２のタイプ又はレングスを更新するようにする。
【０１０４】
＝＝属性グループの定義解析＝＝  
図３４は、属性グループの定義の定義文の解析処理の流れを示す図である。  
ＸＭＬスキーマ入力部１４は、空の文字列をＯｌｄグループ名として（Ｓ９０１）、定義分類ＮＯ４４１が「３」であるテキスト配列４４の配列要素のそれぞれについて以下の処理を行う。
【０１０５】
ＸＭＬスキーマ入力部１４は、開始フラグ及び登録フラグをそれぞれ「偽」として（Ｓ９０２）、配列要素のソースリスト４４５に含まれているソーステキストのそれぞれについて、図３５に示す属性の抽出処理を行う（Ｓ９０３）。  
図３５に示す属性の抽出処理において、ＸＭＬスキーマ入力部１４は、ＸＭＬスキーマの形式がXML Schemaである場合（Ｓ９２１：Ｓｃｈｅｍａ）、ソーステキストに「<xsd:attributeGroup>」タグが含まれていれば（Ｓ９２２：ＹＥＳ）、「name」属性からグループ名を抽出し（Ｓ９２３）、開始フラグを「真」に設定する（Ｓ９２４）。
【０１０６】
ＸＭＬスキーマ入力部１４は、ソーステキストに「<xsd:attribute>」タグが含まれていれば（Ｓ９２５：ＹＥＳ）、「name」属性から属性名を抽出し（Ｓ９２６）、「default」属性からデフォルト値を抽出し（Ｓ９２７）、登録フラグを「真」に設定する（Ｓ９２８）。  
ＸＭＬスキーマ入力部１４は、ソーステキストに「</xsd:attribute>」の終了タグが含まれている場合には（Ｓ９２９）、開始フラグに「偽」を設定する（Ｓ９３０）。
【０１０７】
一方、ＸＭＬスキーマの形式がＤＴＤである場合（Ｓ９２１：ＤＴＤ）、ＸＭＬスキーマ入力部１４は、ソーステキストに「<!ENTITY>」タグの開始部分（「<!ENTITY」）が含まれていれば（Ｓ９３１：ＹＥＳ）、「ENTITY」に続く「%」以降の名称をグループ名として抽出し（Ｓ９３２）、開始フラグを「真」に設定する（Ｓ９３３）。
【０１０８】
ＸＭＬスキーマ入力部１４は、開始フラグが「真」であれば（Ｓ９３４）、「属性名 CDATA "デフォルト値"」の形式で記述されている属性名及びデフォルト値をソーステキストから抽出する（Ｓ９３５）。ＸＭＬスキーマ入力部１４は、上記の属性名及びデフォルト値を抽出できた場合（Ｓ９３６：ＹＥＳ）、登録フラグを「真」に設定する（Ｓ９３７）。  
ＸＭＬスキーマ入力部１４は、タグの終了文字（「＞」）がソーステキストに含まれている場合（Ｓ９３８：ＹＥＳ）、開始フラグを「偽」に設定する（Ｓ９３９）。
【０１０９】
上記図３５の処理により登録フラグが「真」になっていれば（Ｓ９０４）、ＸＭＬスキーマ入力部１４は、図３６に示す規定値管理情報の登録処理を行う（Ｓ９０５）。なお、図３７は、図３６の処理において用いられるテーブル（以下、要素名ワーク表４６という。）の構成を示す図である。図３７に示すように要素名ワーク表４６には要素名４６１とセグメントＩＤ４６２とが対応付けて登録される。
【０１１０】
図３６の規定値管理情報の登録処理において、ＸＭＬスキーマ入力部１４は、グループ名とＯｌｄグループ名とが一致しない場合（Ｓ９４１：ＮＯ）、要素名変換テーブル４３から、プロセスＮＯ４３１が「４」、セグメントＩＤ４３２が「０」、かつ変換先名４３４がグループ名である変換元名４３３を読み出し（Ｓ９４２）、さらに要素名変換テーブル４３から、プロセスＮＯ４３１が「１」であり、かつ変換先名４３４が上記の読み出した変換元名４３３に一致する変換元名４３３及びセグメントＩＤ４３２を検索し（Ｓ９４３）、検索結果のそれぞれについて、セグメントＩＤ４６１を検索結果のセグメントＩＤ４３２、要素名４６２を変換元名４３３としたレコードを要素名ワーク表４６に登録し（Ｓ９４４）、Ｏｌｄグループ名にグループ名を設定する（Ｓ９４５）。
【０１１１】
次に、ＸＭＬスキーマ入力部１４は、要素名ワーク表４６の各レコードについて、要素名４６２とセグメントＩＤ４６１とをキーとして、要素管理データベース３１から要素ＮＯ３１１を取得し（Ｓ９４７）、属性名４６２に対応する属性ＩＤ３２１を属性管理データベース３２から取得し（Ｓ９４８）、要素ＮＯ３３１を上記要素ＮＯ３１１、属性ＩＤ３３２を上記属性ＩＤ３２１、デフォルト値３３３を上記デフォルト値とした規定値管理情報を作成し、作成した規定値管理情報を規定値管理データベース３３に登録する（Ｓ９４９）。
【０１１２】
以上のようにして、ＸＭＬスキーマ情報から情報処理装置１０が備えるデータベースにデータの定義を登録することができる。また、本実施形態の情報処理装置１０が生成するＸＭＬスキーマからは、ＲＤＢスキーマの生成に必要な階層キーについても抽出することができるので、ＸＭＬスキーマからＲＤＢスキーマを生成することもできるようになる。
【０１１３】
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。  
例えば、本実施形態では、スキーマ言語としてＳＱＬ、XML Schema、及びＤＴＤのみを前提としたが、その他のスキーマ言語を用いるようにすることもできる。
【図面の簡単な説明】
【０１１４】
【図１】情報処理装置１０のハードウェア構成を示す図である。
【図２】情報処理装置１０のソフトウェア構成を示す図である。
【図３】要素管理データベース３１が記憶する要素管理情報の構成を示す図である。
【図４】属性管理データベース３２が記憶する属性管理情報の構成を示す図である。
【図５】規定値管理データベース３３が記憶する規定値管理情報の構成を示す図である。
【図６】型表記データベース３４に記憶される型表記情報の構成を示す図である。
【図７】データ入力部１１がデータの定義の入力に用いる画面２００の一例を示す図である。
【図８】データ入力部１１がデータベースに各管理情報を登録する処理の流れを示すフロー図である。
【図９】要素管理情報を登録する処理の流れを示すフロー図である。
【図１０】図９の処理に用いられるデータを記録するセグメントワーク表４１の構成例を示す図である。
【図１１】ＲＤＢスキーマ生成部１２によるＲＤＢスキーマの生成処理の流れを示す図である。
【図１２】ＲＤＢスキーマ生成部１２が生成するＲＤＢスキーマの一例を示す図である。
【図１３】ＸＭＬスキーマ生成部１３によるＸＭＬスキーマの生成処理の流れを示す図である。
【図１４】ＸＭＬスキーマの生成処理において用いられる定義データ管理テーブル４２の構成を示す図である。
【図１５】ＸＭＬスキーマの生成処理において用いられる要素名変換テーブル４３の構成を示す図である。
【図１６】要素及び属性のデータ型の定義の生成処理の流れを示す図である。
【図１７】属性グループの定義を生成する処理の流れを示す図である。
【図１８】要素の定義の生成処理の流れを示す図である。
【図１９】タグの生成処理の流れを示す図である。
【図２０】ＸＭＬスキーマ生成部１３により生成される定義データの一例を示す図である。
【図２１】ＸＭＬスキーマ入力部１４によるＸＭＬスキーマの読み込み処理の流れを示す図である。
【図２２】定義データの抽出処理の流れを示す図である。
【図２３】定義データの抽出処理において用いられるテキスト配列４４の構成を示す図である。
【図２４】セグメントの定義の解析処理の流れを示す図である。
【図２５】セグメントの定義の解析処理において用いられる要素ワーク表４５の構成を示す図である。
【図２６】キー要素の定義部分の解析処理の流れを示す図である。
【図２７】ツリーデータの各要素についての定義部分の解析処理の流れを示す図である。
【図２８】要素ワーク表４５のレコードを要素の深さ優先順に並べ替える処理の流れを示す図である。
【図２９】セグメントの選択処理の流れを示す図である。
【図３０】セグメントの結合処理の流れを示す図である。
【図３１】結合後処理の流れを示す図である。
【図３２】要素の定義部分を解析する処理の流れを示す図である。
【図３３】要素の型の定義を解析する処理の流れを示す図である。
【図３４】属性グループの定義の定義文の解析処理の流れを示す図である。
【図３５】属性の抽出処理の流れを示す図である。
【図３６】規定値管理情報の登録処理の流れを示す図である。
【図３７】図３６の処理において用いられるワーク表の構成を示す図である。
【符号の説明】
【０１１５】
１０    情報処理装置                  １０１  ＣＰＵ
１０２  メモリ                        １０３  記憶装置
１０４  入力装置                      １０５  出力装置
１１    データ入力部                  １２    ＲＤＢスキーマ生成部
１３    ＸＭＬスキーマ生成部          １４    ＸＭＬスキーマ入力部
３１    要素管理データベース          ３２    属性管理データベース
３３    規定値管理データベース        ３４    型表記データベース
２００  画面                          ２０１  入力欄
２０２、２０３、２０４  ボタン        ２１０  要素のリスト入力欄
２１１  要素ＮＯの入力欄              ２１２  階層ＮＯの入力欄
２１３  階層キーのチェック欄          ２１４  要素名の入力欄
２１５  要素のデータ型の入力欄        ２１６  要素のデータ長の入力欄
２１７  属性名の入力欄                ２１８  属性のデータ型の入力欄
２１９  属性のデータ長の入力欄        ２２０  デフォルト値の入力欄
【図１】
2006350924.tif 000003
【図２】
2006350924.tif 000004
【図３】
2006350924.tif 000005
【図４】
2006350924.tif 000006
【図５】
2006350924.tif 000007
【図６】
2006350924.tif 000008
【図７】
2006350924.tif 000009
【図８】
2006350924.tif 000010
【図９】
2006350924.tif 000011
【図１０】
2006350924.tif 000012
【図１１】
2006350924.tif 000013
【図１２】
2006350924.tif 000014
【図１３】
2006350924.tif 000015
【図１４】
2006350924.tif 000016
【図１５】
2006350924.tif 000017
【図１６】
2006350924.tif 000018
【図１７】
2006350924.tif 000019
【図１８】
2006350924.tif 000020
【図１９】
2006350924.tif 000021
【図２０】
2006350924.tif 000022
【図２１】
2006350924.tif 000023
【図２２】
2006350924.tif 000024
【図２３】
2006350924.tif 000025
【図２４】
2006350924.tif 000026
【図２５】
2006350924.tif 000027
【図２６】
2006350924.tif 000028
【図２７】
2006350924.tif 000029
【図２８】
2006350924.tif 000030
【図２９】
2006350924.tif 000031
【図３０】
2006350924.tif 000032
【図３１】
2006350924.tif 000033
【図３２】
2006350924.tif 000034
【図３３】
2006350924.tif 000035
【図３４】
2006350924.tif 000036
【図３５】
2006350924.tif 000037
【図３６】
2006350924.tif 000038
【図３７】
2006350924.tif 000039