(57)【要約】【課題】３階層以上のエレメントを含むＸＭＬ文書を作成する。【解決手段】本発明にかかる文書化装置は、コンピュータにより、３以上の階層に分けられうる複数の要素を有するデータに基づくＤＴＤを、ＸＭＬ文書に変換する文書化装置であって、ＤＴＤを解析する手段と、生成された解析情報に含まれる階層の深さを表す値に基づいて、要素間の関係を、ツリー形式で表示するための第１の表示手段と、ツリーを構成する要素のいずれかを指定するための第１の操作入力手段と、指定された要素に関する情報を表示するための第２の表示手段と、表示された要素に関する情報を追加するための第２の操作入力手段と、生成された解析情報と追加された情報を、ＸＭＬ文書に変換する変換手段とを提供する。【選択図】図１１
2008027146.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより、３以上の階層に分けられうる複数の要素を有するデータに基づく、少なくとも、前記要素の直近上位の親要素および前記要素の直近下位の子要素を定義する定義情報を、文書、データの意味および構造を記述するための記述言語により記述された文書に変換する文書化装置であって、
前記定義情報を解析して、前記要素それぞれと、前記要素それぞれの前記親要素および前記子要素から導出した階層の深さを表す値を対応付ける解析情報を生成する手段と、
前記生成された解析情報に含まれる階層の深さを表す値に基づいて、互いに異なる階層に分けられる前記要素間の関係を、ツリー形式で表示するための第１の表示手段と、
前記ツリー形式の表示において、ツリーを構成する要素のいずれかを指定するための第１の操作入力手段と、
前記指定された要素に関する情報を表示するための第２の表示手段と、
前記表示された要素に関する情報を追加するための第２の操作入力手段と、
前記生成された解析情報と前記追加された情報を、前記記述言語により記述された文書に変換する変換手段と
を提供する文書化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＸＭＬ文書の作成に関する。
【背景技術】
【０００２】
たとえば、特許文献１は、階層関係を有するエレメントを持つＸＭＬ文書の作成を容易にするシステムを開示している。
しかしながら、特許文献１では、３階層以上のエレメントを含むＸＭＬ文書を作成することが考慮されていない。
【特許文献１】特開２００５−３５２８８０
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述した背景からなされたものであり、３階層以上のエレメントを含むＸＭＬ文書であっても、ＸＭＬ文書を容易に作成することができるように改良されたＸＭＬ文書作成文書化装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記目的を達成するために、本発明にかかる文書化装置は、コンピュータにより、３以上の階層に分けられうる複数の要素を有するデータに基づく、少なくとも、前記要素の直近上位の親要素および前記要素の直近下位の子要素を定義する定義情報を、文書、データの意味および構造を記述するための記述言語により記述された文書に変換する文書化装置であって、前記定義情報を解析して、前記要素それぞれと、前記要素それぞれの前記親要素および前記子要素から導出した階層の深さを表す値を対応付ける解析情報を生成する手段と、前記生成された解析情報に含まれる階層の深さを表す値に基づいて、互いに異なる階層に分けられる前記要素間の関係を、ツリー形式で表示するための第１の表示手段と、前記ツリー形式の表示において、ツリーを構成する要素のいずれかを指定するための第１の操作入力手段と、前記指定された要素に関する情報を表示するための第２の表示手段と、前記表示された要素に関する情報を追加するための第２の操作入力手段と、前記生成された解析情報と前記追加された情報を、前記記述言語により記述された文書に変換する変換手段とを提供する。
【発明の効果】
【０００５】
本発明にかかる文書化装置によれば、３階層以上のエレメントを含むＸＭＬ文書を容易に作成することができる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施形態を説明する。
[本発明の背景]
本発明の理解を助けるため、まず、本発明がなされるに至った背景を説明する。
図１は、階層データモデル化した出張旅費明細データを例示する図である。
図１には、出張旅費明細データが、日付、勘定科目、金額および備考というデータ項目によって構成される場合が例示されている。
【０００７】
出張旅費明細データの階層データモデルは、出張旅費明細エレメントから始まる階層構造の木を形成する。
すなわち、出張旅費明細エレメントというルートエレメントは、日付エレメント、勘定科目エレメント、金額エレメントおよび備考エレメントという子エレメントを構成する。
図１に示すように、出張旅費明細データの階層データモデルは、レベル１およびレベル２という２つの階層によって成り立っている。
【０００８】
図１の出張旅費明細データをＸＭＬ文書化する方法の一つに、ＸＭＬ文書形式をサポートする表計算ソフトウエアを利用する方法がある。
図２は、ユーザが、表計算ソフトウエアを使用して、図１の階層データモデルに沿って作成した図表の一例である。
図３は、ユーザが、表計算ソフトウエアのＸＭＬ文書化機能を利用して、図２の図表に基づいて作成したＸＭＬ文書である。
【０００９】
図４は、階層データモデル化したソフトウエアパッケージデータを例示する図である。
図４に示すように、ソフトウエアパッケージエレメントは、ＩＤエレメント、ネームエレメント、バージョンエレメント、タイトルエレメント、オーサーエレメント、ディスクリプションエレメント、インプリメンテーションエレメントおよびデバイスエレメントを構成する。
さらに、オーサーエレメントは、ネームエレメント、カンパニーエレメントおよびウェブページエレメントを構成し、インプリメンテーションエレメントはディスクリプションエレメント、コードエレメント、コンパイラエレメントおよびプログラミングランゲージエレメントを構成する。
また、デバイスエレメントは、プロパティレフエレメントおよびタイプＩＤエレメントを形成し、コードエレメントは、ローカルファイルエレメント、エントリポイントエレメント、スタックサイズエレメントおよびプライオリティエレメントを構成する。
図４に示すように、ソフトウエアパッケージデータの階層データモデルは、レベル１〜４という４つの階層によって成り立っている。
【００１０】
図５Ａ〜Ｅは、ユーザが、表計算ソフトウエアを使用して、図４の階層データモデルに沿って作成した図表の一例である。
図１の出張旅費明細データと異なり、図４のソフトウエアパッケージデータでは、複数回現れるエレメントが存在しうる。
ユーザは、複数回の指定をされたエレメントごとに表を作成して、作成した表とその親エレメントの表とを関連付ける必要がある。
【００１１】
ここでは、ユーザは、オーサーエレメント、インプリメンテーションエレメント、デバイスエレメントおよびプロパティレフエレメントそれぞれが複数回現れるよう、各エレメントに複数回の指定を行うものとする。
このような複数回の指定を行うためには、ユーザは、図５Ａ〜Ｅに示すように、オーサー表１〜４、インプリメンテーション表１〜４、デバイス表およびプロパティ表１〜３をそれぞれ作成して、これらの表とソフトウエアパッケージ表とを適切に関連付ける必要がある。
しかしながら、このような作業は、ユーザにとって非常に煩雑である。
【００１２】
[ネットワークシステム１]
図６は、本発明にかかるプログラムが実施されるネットワークシステム１を例示する図である。
図６に示すように、ネットワークシステム１は、ＬＡＮやＷＡＮなどのネットワーク１０と、サーバ１２と、クライアントコンピュータ（ＰＣ）１４−１、１４−２、・・・、１４−ｎとから構成される。
サービスを提供するサーバ１２と、サービスの提供を受けるＰＣ１４−１、１４−２、・・・・、１４−ｎとが、ＬＡＮ、ＷＡＮなどのネットワーク１０を介して接続されて構成される。
【００１３】
なお、ｎは、１以上の整数を示すが、常に同じ数とは限らない。
以下、ＰＣ１４−１、１４−２、・・・・、１４−ｎなど、複数あり得る構成部分のいずれかが、特定せずに示されるときは、単にＰＣ１４と略記されることがあるものとする。
また、以下、同じ構成要素には、同じ符号を付するものとする。
【００１４】
[ハードウエア]
図７は、図６に示したネットワークシステム１を構成するＰＣ１４のハードウエア構成を例示する図である。
図７に示すように、ネットワークシステム１に含まれるＰＣ１４は、ＣＰＵ１４０およびメモリ１４２などを含む本体、表示装置およびキーボード等を含む入出力装置１４４、ネットワークとの間の通信に使用されるネットワークインターフェイス１４６、ＨＤＤ、ＣＤ、不揮発性メモリ等の記憶装置１４８およびフロッピー(登録商標）ディスク（登録商標）などの外部記憶媒体１５０から構成される。
【００１５】
[ソフトウエア]
本発明にかかるプログラム２は、たとえば、記憶媒体１５０を介してメモリ１４２にロードされ、ＰＣ１４にインストールされたＯＳ（図示せず）上で、ＰＣ１４のハードウエア資源を具体的に利用して実行される。
また、本発明にかかるプログラム２は、ネットワーク１０を介してサーバ１２からロードされ、ＰＣ１４のハードウエア資源を具体的に利用して実行されてもかまわない。
【００１６】
[本発明にかかるプログラム２]
図８は、ＰＣ１４（図６）上で動作する本発明にかかるプログラム２の構成を示す図である。
図８に示すように、本発明にかかるプログラム２は、ユーザインタフェース（ＵＩ）２０、ＤＴＤファイル変換プログラム３、エレメントツリー作成・表示プログラム４、テーブルファイル作成プログラム５、テーブルファイル表示プログラム６およびＸＭＬ文書作成・表示プログラム７から構成される。
本発明にかかるプログラム２は、ＵＩ２０を介して入出力装置１４４から書込み操作を受け取った後、適切な処理を行い、ＵＩ２０を介して入出力装置１４４（図７）に処理結果を返す。
【００１７】
図９は、本発明にかかるプログラム２の実行によって、入出力装置１４４（図７）が表示する表示画面８の一例である。
図９に示すように、表示画面８は、エレメントツリー表示エリア８０、ディレクトリ／ファイル表示エリア８２、ボタン表示エリア８４、テーブル表示エリア８６およびＸＭＬ文書表示エリア８８を構成する。
【００１８】
ユーザの操作性向上のため、プログラム２は、表示画面８に、上記以外の表示エリアを表示してもかまわないし、上記各エリアで生じたエラーの詳細を表示させるエラーメッセージ表示ボックスを表示してもかまわない。
以下、プログラム２を実施するための前提作業を記述した後、表示画面８の全体動作と、表示画面８の各エリアの動作を説明するとともに、プログラム２を構成するプログラム３〜７を説明する。
【００１９】
また、以下、テーブルやファイル等を構成するデータ項目であることを明示するため、「」を使用する。
当文書では、読みやすさを考慮して、図表中の文字のほとんどを全角文字で表記しているが、ユーザが本願プログラムを実行する際には、半角文字で表記しなければならない箇所がある。
【００２０】
[前提作業]
ＸＭＬで文書を記述しようとするユーザは、ＸＭＬ文書で使用されるタグや属性、および、使用されるタグ間の構造を、あらかじめ定義しなければならない。
このような定義は、ＤＴＤと呼ばれる。
本発明にかかるプログラム２を実行する際、ユーザは、ＤＴＤを記述したＤＴＤファイルを作成する必要がある。
図１０は、ソフトウエアパッケージデータのＤＴＤファイルの一例である。
【００２１】
[全体動作]
図１１は、本発明にかかるプログラム２が、ＤＴＤファイルからＸＭＬ文書を作成するフローである。
本発明にかかるプログラム２が起動すると、プログラム２は、ステップ２００に遷移する。
【００２２】
ステップ２００（Ｓ２００）では、プログラム２は、ＤＴＤファイルが格納されているディレクトリまたはＤＴＤファイルの指定を受け付ける。
なお、ＤＴＤファイルが適切に作成済みであることを前提としているが、そうでない場合は、プログラム２は、ポップアップウインドウでエラーメッセージを表示するなどしてもかまわない。
【００２３】
ディレクトリまたはＤＴＤファイルが指定された後、プログラム２は、記憶装置１４８（図７）からＤＴＤファイルを読み出す。
さらに、プログラム２は、ＤＴＤファイルを読み出した後、プログラム３および４を実行する。
【００２４】
プログラム３および４の実行によって、エレメントツリーが作成され、作成されたエレメントツリーは画面表示される（詳細は、図１６および図１８を参照して後述）。
さらに、プログラム２は、画面表示されたエレメントツリーを構成する各エレメントの選択を受け付ける。
画面表示されたエレメントツリーにおいて、エレメントが選択された後、プログラム２は、プログラム３および４を終了させ、ステップ２０２（Ｓ２０２）に遷移する。
【００２５】
ステップ２０２（Ｓ２０２）では、プログラム２は、プログラム５を実行する。
プログラム５の実行によってテーブルファイルが作成された後、プログラム２は、ステップ２０４（Ｓ２０４）に遷移する。
【００２６】
ステップ２０４（Ｓ２０４）では、プログラム２は、プログラム６を実行する。
プログラム６は、ステップ２０２（Ｓ２０２）で作成されたテーブルファイルのうち、ステップ２００（Ｓ２００）で選択されたエレメントに関するデータを画面表示する。
プログラム２は、画面表示を行った後、ステップ２０６（Ｓ２０６）に遷移する。
【００２７】
ステップ２０６（Ｓ２０６）では、プログラム２は、ステップ２０４（Ｓ２０４）で表示されたテーブルファイルにおいて、エレメントの追加を受け付ける。
さらに、プログラム２は、追加されたエレメントの記述を、テーブルファイルに書き込む。
プログラム２は、テーブルファイルへの書込みを行った後、ステップ２０８（Ｓ２０８）に遷移する。
【００２８】
ステップ２０８（Ｓ２０８）では、プログラム２は、エレメント（子エレメントふくむ）に対して、属性および文字データの書込み、および、ステップ２０６（Ｓ２０６）で追加されたエレメント（子エレメントふくむ）に対して、属性および文字データの書込みを受け付ける。
さらに、プログラム２は、書き込まれた属性および文字データの記述を、テーブルファイルに書き込む。
【００２９】
プログラム２は、データファイルへの書込みを行った後、ステップ２１０（Ｓ２１０）に遷移して、書込み終了ボタン８５２（図２５を参照して後述）への押下を受け付ける。
書込み終了ボタン８５２が押下された後、プログラム２は、ステップ２１２（Ｓ２１２）に遷移する。
【００３０】
ステップ２１２（Ｓ２１２）では、プログラム２は、必要な書込みがすべてされたか否かを判断する。
必要な書込みがすべてされたと判断した場合、プログラム２は、ステップ２１４（Ｓ２１４）に遷移する。
【００３１】
一方、必要な書込みがすべてされておらず、書き込まれていないデータ項目があると判断した場合、プログラム２は、ポップアップウインドウで警告メッセージを表示するなどして、ユーザに書き込まれていないデータ項目への書込みを促す処理を行う。
この場合、プログラム２は、ステップ２０６（Ｓ２０６）に遷移し、書き込まれていないデータ項目がなくなるまで、ステップ２０６（Ｓ２０６）〜ステップ２１０（Ｓ２１０）の処理を繰り返す。
【００３２】
ステップ２１４（Ｓ２１４）では、プログラム２は、ＸＭＬ文書作成ボタン８５４（図２４を参照して後述）の押下を受け付ける。
ＸＭＬ文書作成ボタン８５４が押下された後、プログラム２は、ステップ２１６（Ｓ２１６）に遷移する。
【００３３】
ステップ２１６（Ｓ２１６）では、プログラム２は、プログラム７を実行する。
プログラム７は、ステップ２００（Ｓ２００）〜ステップ２１２（Ｓ２１２）で作成された各ファイルから、ＸＭＬ文書を作成して、作成したＸＭＬ文書を画面表示する（詳細は、図２６を参照して後述）。
【００３４】
プログラム７がＸＭＬ文書を作成・表示した後、プログラム２は、プログラム７を終了させ、ＸＭＬ文書化処理を終了する。
以下、表示画面８の各エリアの動作を説明する。
【００３５】
[ディレクトリ／ファイル表示エリア８２の動作]
図１２は、ディレクトリ／ファイル表示エリア８２のレイアウト例である。
プログラム２は、ディレクトリ／ファイル表示エリア８２にディレクトリ／ファイル表示ツリー（ＤＴＤファイル）８２０、選択ＤＴＤファイル名表示ボックス８２２、ディレクトリ／ファイル表示ツリー（備考ファイル）８２４、選択備考ファイル名表示ボックス８２６およびＸＭＬ文書名表示ボックス８２８を表示する。
【００３６】
ディレクトリ／ファイル表示ツリー（ＤＴＤファイル）８２０において、ＤＴＤファイルが存在するディレクトリまたはファイルが指定された後、プログラム２は、選択ＤＴＤファイル名表示ボックス８２２に、指定されたＤＴＤファイル名を表示する。
次に、備考ファイルが作成されている場合、ディレクトリ／ファイル表示ツリー（ＤＴＤファイル）８２４において、備考ファイルが存在するディレクトリまたはファイルが指定された後、プログラム２は、選択備考ファイル名表示ボックス８２６に、指定された備考ファイル名を表示する。
なお、備考ファイルが作成されていない場合、備考ファイル名は表示されない。
【００３７】
さらに、プログラム２は、指定されたＤＴＤファイルに基づいて作成されたＸＭＬ文書がすでに存在するとき、そのＸＭＬ文書名をＸＭＬ文書名表示ボックス８２８に表示する。
なお、プログラム２が、ファイル名やファイル名の一部の書込みを受け付け、ファイルが存在するディレクトリを検索するという処理を加えてもかまわない。
また、ＸＭＬ文書がすでに存在する場合、すでに存在するＸＭＬ文書は、新しく作成されるＸＭＬ文書に上書きされる。
【００３８】
[エレメントツリー表示エリア８０、テーブル表示エリア８６およびＸＭＬ表示エリア８８の動作]
本発明にかかるプログラム２は、ＤＴＤファイル（および備考ファイル）を読み込み、下記（１）〜（５）の処理を行う。
（１）プログラム３を実行して、ＤＴＤファイルから、エレメントテーブルおよび属性／文字データテーブルを作成する。
（２）プログラム４を実行して、（１）で作成したエレメントテーブルから、エレメントツリーを作成する。作成したエレメントツリーを、エレメントツリー表示エリア８０に表示する。
（３）プログラム５を実行して、（１）で作成したエレメントテーブルおよび属性／文字データテーブルと、ユーザが作成した備考ファイルとから、テーブルファイルを作成する。
（４）プログラム６を実行して、（３）で作成したテーブルファイルを読み込み、テーブル表示エリア８６に、エレメントツリー表示エリア８０で選択されたエレメントに関するデータを表示する。
（５）プログラム７を実行して、（１）で作成したエレメントテーブルおよび（３）で作成したテーブルファイルから、ＸＭＬ文書を作成する。作成したＸＭＬ文書を、ＸＭＬ文書表示エリア８８に表示する。
【００３９】
このように、本発明にかかるプログラム２は、プログラム３〜６の実行によって、ユーザが作成したＤＴＤファイル（および備考ファイル）から、エレメントテーブル、エレメントツリー、属性／文字データテーブルおよびテーブルファイルを作成する。
さらに、本発明にかかるプログラム２は、プログラム７を実行することで、プログラム３〜５が作成したエレメントテーブル及びテーブルファイルから、ＸＭＬ文書を作成・表示する。
【００４０】
図１３は、各プログラムの実行にともなう成果物の関連を示した図である。
上記プログラム３〜６の詳細は、図１６〜図２７を参照して後述する。
【００４１】
[プログラム３]
図１４は、プログラム３が作成するエレメントテーブルをテーブル表示した例である。  
図１４に示すように、エレメントテーブルは、「階層番号」、「エレメント名」、「複数指定」、「親エレメント階層番号」および「子エレメント階層番号」というデータ項目から構成される。
「階層番号」は、エレメントの階層番号を示し、「エレメント名」はエレメントの名前示し、「複数指定」は、複数指定可能なエレメントであるか否かを示し、「親エレメント階層番号」は、親エレメントの階層番号を示し、「子エレメント階層番号」は、子エレメントの階層番号を示す。
【００４２】
図１５は、属性／文字データテーブルをテーブル表示した例である。
図１５に示すように、属性／文字データテーブルは、「階層番号」、「属性／文字データ」、「データ型」、「デフォルト値」および「エレメントの階層番号」というデータ項目から構成される。
「属性／文字データ」は、属性データ／文字データの名前を示し、「データ型」は属性データ／文字データのデータ型を示し、「デフォルト値」は属性データ／文字データのデフォルト値を示し、「エレメントの階層番号」は、属性データ／文字データが属するエレメントの階層番号を示す。
【００４３】
図１６は、プログラム３が、ＤＴＤファイルから、エレメントテーブルおよび属性／文字データテーブルを作成するフローである。
本発明にかかるプログラム２がプログラム３を開始した後、ステップ３００（Ｓ３００）では、プログラム３は、ＤＴＤファイルを読み込む。
【００４４】
なお、ステップ３００（Ｓ３００）以降のステップでは、プログラム３は、エレメントテーブルおよび属性／文字データテーブルに書込みを行う。
エレメントテーブルおよび属性／文字データテーブルが存在しなければ、プログラム３は、エレメントテーブルおよび属性／文字データテーブルを新しく作成する。
プログラム３は、ＤＴＤファイルを読み込んだ後、ステップ３０２（Ｓ３０２）に遷移する。
【００４５】
ステップ３０２（Ｓ３０２）では、プログラム３は、読み込んだＤＴＤファイルに含まれるＤＴＤ文の種類をそれぞれ判断する。
プログラム３は、ＤＴＤ文が＜！ＥＬＥＭＥＮＴで始まるエレメント定義文であると判断する場合、ステップ３０４に遷移する。
【００４６】
ステップ３０４（Ｓ３０４）では、プログラム３は、読み込んだエレメント定義文において、子エレメント、ＰＣＤＡＴＡおよびＥＭＰＴＹのいずれが定義されているかを調べる。
プログラム３は、子エレメントが定義されていると判断する場合、ステップ３０６（Ｓ３０６）に遷移する。
プログラム３は、ＰＣＤＡＴＡが定義されていると判断する場合、ステップ３１６（Ｓ３１６）に遷移する。
プログラム３は、ＥＭＰＴＹが定義されていると判断する場合、ステップ３２６（Ｓ３２６）に遷移する。
以下、各ステップ、および、各ステップから分岐するステップを説明する。
【００４７】
[子エレメントが定義されている場合]
ステップ３０６（Ｓ３０６）では、プログラム３は、読み込んだエレメント定義文に含まれるエレメント名が、エレメントテーブルに存在するか否かを調べる。
プログラム３が、存在しないと判断した場合、ステップ３０８（Ｓ３０８）に遷移する。
【００４８】
ステップ３０８（Ｓ３０８）では、プログラム３は、読み込んだエレメント定義文に含まれるエレメント名および子エレメント名を、エレメントテーブルの最後に書き込む。
さらに、プログラム３は、エレメント名に昇順の階層番号を割り振って書き込む。
【００４９】
一方、プログラム３が、存在すると判断した場合、ステップ３１０（Ｓ３１０）に遷移する。
ステップ３１０（Ｓ３１０）では、プログラム３は、階層番号が書き込まれていない未処理のエレメントが、エレメントテーブルに存在するか否かを調べる。
具体的には、プログラム３は、エレメント定義文を読み込む以前にエレメントテーブルに書き込まれたエレメントで、階層番号が書き込まれていないエレメントの存在を調べ、存在すると判断されたエレメントより以前に、エレメントテーブルに書き込まれた階層番号が書き込まれていないエレメントが存在するか否かを調べる。
【００５０】
階層番号が書き込まれていないエレメントが存在する場合、プログラム３は、ステップ３１２（Ｓ３１２）に遷移する。
ステップ３１２（Ｓ３１２）では、プログラム３は、階層番号が書き込まれていないエレメントのエレメント定義文および属性定義文を、ＤＴＤファイルから検索する。
【００５１】
さらに、プログラム３は、検索されたエレメント定義文および属性定義文に対し、ステップ３０２〜ステップ３３８の処理を行い、階層番号が書き込まれていないエレメントに昇順の階層番号を割り振って書き込む。
プログラム３は、階層番号を書き込んだ後、ステップ３１４（Ｓ３１４）に遷移する。
【００５２】
一方、階層番号が書き込まれていないエレメントが存在しない場合、プログラム３は、ステップ３１４（Ｓ３１４）に遷移する。
ステップ３１４（Ｓ３１４）では、プログラム３は、読み込んだエレメント定義文に含まれるエレメント名に、昇順の階層番号を割り振って、エレメントテーブルの該当箇所（読み込んだエレメント定義文に含まれるエレメント名の「階層番号」）に書き込む。
【００５３】
さらに、プログラム３は、エレメントテーブルにおいて、読み込んだエレメント定義文に含まれるエレメント名の「親エレメントの階層番号」から、親エレメントを検索する。
さらに、プログラム３は、割り振った昇順の階層番号を、エレメントテーブルの該当箇所（検索した親エレメントの「子エレメントの階層番号」）に書き込む。
【００５４】
さらに、プログラム３は、読み込んだエレメント定義文が定義する子エレメント名を、読み込んだエレメント定義文に含まれるエレメント名に続けて、エレメントテーブルに書き込む。
プログラム３は、上記書込みを行った後、ステップ３３８（Ｓ３３８）に遷移する。
【００５５】
[ＰＣＤＡＴＡが定義されている場合]
ステップ３１６（Ｓ３１６）では、プログラム３は、読み込んだエレメント定義文に含まれるエレメント名が、エレメントテーブルに存在するか否かを調べる。
プログラム３が、存在しないと判断した場合、ステップ３１８（Ｓ３１８）に遷移する。
【００５６】
ステップ３１８（Ｓ３１８）では、プログラム３は、読み込んだエレメント定義文に含まれるエレメント名および子エレメント名を、エレメントテーブルの最後に書き込む。
さらに、プログラム３は、エレメント名に昇順の階層番号を割り振って書き込む。
【００５７】
一方、プログラム３が、存在すると判断した場合、ステップ３２０（Ｓ３２０）に遷移する。
ステップ３２０（Ｓ３２０）では、ステップ３１０（Ｓ３１０）と同様の処理を行う。
【００５８】
また、ステップ３２０（Ｓ３２０）から分岐するステップ３２２（Ｓ３２２）においても、ステップ３１２（Ｓ３１２）と同様の処理を行う。
ステップ３２２（Ｓ３２２）において、プログラム３は、階層番号を書き込んだ後、ステップ３２４（Ｓ３２４）に遷移する。
【００５９】
一方、階層番号が書き込まれていないエレメントが存在しない場合、プログラム３は、ステップ３２４（Ｓ３２４）に遷移する。
ステップ３２４（Ｓ３２４）では、プログラム３は、読み込んだエレメント定義文に含まれるエレメント名に、昇順の階層番号を割り振って、エレメントテーブルの該当箇所（読み込んだエレメント定義文に含まれるエレメント名の「階層番号」）に書き込む。
【００６０】
さらに、プログラム３は、エレメントテーブルにおいて、読み込んだエレメント定義文に含まれるエレメント名の「親エレメントの階層番号」から親エレメントを検索する。
さらに、プログラム３は、割り振られた昇順の階層番号を、エレメントテーブルの該当箇所（検索した親エレメントの「子エレメントの階層番号」）に書き込む。
【００６１】
さらに、プログラム３は、読み込んだエレメント定義文に含まれる文字データを、属性／文字データテーブルの最後に書き込む。
なお、このとき、「属性／文字データ」には‘文字データ’という記載が、「型」には‘ＰＣＤＡＴＡ’という記載が、「デフォルト値」にはスペースが、「エレメントの階層番号」には割り振られた昇順の階層番号が、それぞれ書き込まれる。
【００６２】
さらに、プログラム３は、読み込んだエレメント定義文に含まれる文字データに昇順の階層番号を割り振って、属性／文字データテーブルの該当箇所（読み込んだ文字データの「階層番号」）に書き込む。
プログラム３は、上記の書込みを行った後、ステップ３３８（Ｓ３３８）に遷移する。
【００６３】
[ＥＭＰＴＹが定義されている場合]
ステップ３２６（Ｓ３２６）では、プログラム３は、読み込んだエレメント定義文に含まれるエレメント名が、エレメントテーブルに存在するか否かを調べる。
プログラム３が、存在しないと判断した場合、ステップ３２８（Ｓ３２８）に遷移する。
ステップ３２８（Ｓ３２８）では、プログラム３は、読み込んだエレメント定義文に含まれるエレメント名を、エレメントテーブルの最後に書き込む。
さらに、プログラム３は、エレメント名に昇順の階層番号を割り振って書き込む。
【００６４】
一方、プログラム３が、存在すると判断した場合、ステップ３３０（Ｓ３３０）に遷移する。
ステップ３３０（Ｓ３３０）では、ステップ３１０（Ｓ１０）と同様の処理を行う。
【００６５】
また、ステップ３３０（Ｓ３３０）から分岐するステップ３３２（Ｓ３３２）においても、ステップ３１２（Ｓ３１２）と同様の処理を行う。
ステップ３３２（Ｓ３３２）において、プログラム３が、階層番号を書き込んだ後、ステップ３３４（Ｓ３３４）に遷移する。
【００６６】
一方、階層番号が書き込まれていないエレメントが存在しない場合、プログラム３は、ステップ３３４（Ｓ３３４）に遷移する。
ステップ３３４（Ｓ３３４）では、プログラム３は、読み込んだエレメント定義文に含まれるエレメント名に、昇順の階層番号を割り振る。
さらに、プログラム３は、割り振った昇順の階層番号を、エレメントテーブルの該当箇所（読み込んだエレメント定義文に含まれるエレメント名の「階層番号」）に書き込む。
【００６７】
さらに、プログラム３は、読み込んだエレメント定義文に含まれるエレメント名の親エレメントの階層番号から親エレメントを検索して、割り振った昇順の階層番号を、エレメントテーブルの該当箇所（検索した親エレメントの「子エレメントの階層番号」）に書き込む。
プログラム３は、上記書込みを行った後、ステップ３３８（Ｓ３３８）に遷移する。
【００６８】
一方、プログラム３は、ＤＴＤが＜！ＡＴＴＬＩＳＴで始まる属性定義文であると判断すると、ステップ３３６（Ｓ３３６）に遷移する。
ステップ３３６（Ｓ３３６）では、プログラム３は、属性／文字データテーブルに、読み込んだ属性定義文に含まれる属性データを、属性／文字データテーブルの最後に書き込む。
【００６９】
さらに、プログラム３は、読み込んだ属性定義文に含まれる属性データに昇順の階層番号を割り振って、属性／文字データテーブルの該当箇所（読み込んだ属性データの「階層番号」）に書き込む。
プログラム３は、上記書込みを行った後、ステップ３３８（Ｓ３３８）に遷移する。
【００７０】
ステップ３３８（Ｓ３３８）では、プログラム３は、ＤＴＤファイルをすべて読み込んだか否かを確認する。
ＤＴＤファイルに含まれるＤＴＤ文をすべて処理していない場合、プログラム３は、ステップ３０２（Ｓ３０２）に遷移して、ＤＴＤ文をすべて処理するまで、ステップ３０２（Ｓ３０２）〜ステップ３３８（Ｓ３３８）の処理を繰り返す。
ＤＴＤ文をすべて処理した場合、プログラム３は、作成したエレメントテーブルおよび属性／文字データテーブルを記憶装置１４８（図７）に保存して、ＤＴＤファイル変換処理を終了する。
【００７１】
図１７は、ユーザがソフトウエアパッケージデータについて作成する備考ファイルの一例である。
ユーザは、プログラム３を実行して得られるエレメントテーブルおよび属性／文字データテーブル（図１４および図１５を参照して先述）を参照して、備考ファイルを作成することができる。
図１７に示すように、備考ファイルは、「階層番号」および「備考」という２つのデータ項目により構成される。
【００７２】
ユーザは、表計算ソフトウエアやエディタ等を使用することで、タブで区切られ、レコード末尾に改行コードを付された図１７の備考ファイルを作成することができる。
以下、ユーザは、図１７に示す備考ファイルを作成した後、作成した備考ファイルを記憶装置１４８（図７）に保存するものとする。
【００７３】
[プログラム４]
図１８は、プログラム４が、エレメントテーブルからエレメントツリーを作成するフローである。
本発明にかかるプログラム２がプログラム４を開始した後、ステップ４００では、プログラム４は、記憶装置１４８（図７）に保存されたエレメントテーブルを読み込む。
エレメントテーブルを読み込んだ後、プログラム４は、ステップ４０２に遷移する。
【００７４】
ステップ４０２では、プログラム４は、子エレメントを持つエレメントを検索する。
具体的には、プログラム４は、エレメントテーブルにおいて、「子エレメントの階層番号」が設定されている「階層番号」およびその「子エレメントの階層番号」を検索する。
プログラム４は、エレメントテーブルで検索を行った後、ステップ４０４に遷移する。
なお、必要に応じて、上記以外のデータ項目（「複数指定」など）を検索してもかまわない。
【００７５】
ステップ４０４では、プログラム４は、ステップ４０２で検索された子エレメントが、さらに子エレメントを持つか否かを調べる。
具体的には、プログラム４は、エレメントテーブルにおいて、検索された「子エレメントの階層番号」が、他エレメントの「階層番号」として設定されているかを調べる。
【００７６】
さらに、プログラム４は、他エレメントおよび他エレメントから派生するエレメントについても、同様に調べる。
このように、プログラム４は、エレメントテーブルの「階層番号」および「子エレメントの階層番号」を使用して、エレメント間の親子関係を調べた後、ステップ４０６に遷移する。
【００７７】
ステップ４０６では、プログラム４は、エレメントテーブルに含まれるすべてのエレメントを処理したか否かを確認する。
すべてのエレメントが処理されるまで、プログラム４は、ステップ４０２〜ステップ４０４の処理を繰り返す。
【００７８】
プログラム４は、エレメントテーブルに含まれるすべてのエレメント間の親子関係を調べた後、ステップ４０８に遷移する。
ステップ４０８では、プログラム４は、調べた親子関係をエレメントツリーとして記憶装置１４８（図７）に保存し、保存したエレメントツリーをエレメントツリー表示エリア８０（図９）にグラフィカル表示する。
プログラム４は、エレメントツリーを作成・表示した後、エレメントツリー作成・表示処理を終了する。
【００７９】
図１９は、プログラム４を実行して得られるエレメントツリー（図１８を参照して先述）を、エレメントツリー表示エリア８０（図９）に表示した例である。
[プログラム５]
図２０は、プログラム５が作成するテーブルファイルのフォーマット例である。
【００８０】
図２１は、プログラム５が、エレメントテーブル、属性／文字データテーブルおよび備考ファイルから、テーブルファイルを作成するフローである。
本発明にかかるプログラム２がプログラム５を開始した後、ステップ５００では、プログラム５は、エレメントテーブル、属性／文字データテーブルおよび備考ファイルの読み込みを開始する。
ステップ５００（Ｓ５００）以降のステップでは、プログラム５は、テーブルファイルに書込みを行う。
【００８１】
テーブルファイルが存在しなければ、プログラム５は、テーブルファイルを新しく作成する。
プログラム５は、エレメントテーブル、属性／文字データテーブルおよび備考ファイルを読み込んだ後、ステップ５０２（Ｓ５０２）に遷移する。
なお、ステップ５０２（Ｓ５０２）以降のステップでは、読み込んだエレメントテーブルおよび属性／文字データテーブルの「階層番号」の昇順に処理を行う。
【００８２】
ステップ５０２（Ｓ５０２）では、プログラム５は、処理の対象となる「階層番号」が、エレメントテーブルおよび属性／文字データテーブルのいずれに含まれるかを判断する。
処理の対象となる「階層番号」がエレメントテーブルに含まれると判断された場合、プログラム５は、ステップ５０４（Ｓ５０４）に遷移する。
【００８３】
一方、処理の対象となる「階層番号」が属性／文字データテーブルに含まれると判断された場合、プログラム５は、ステップ５１６（Ｓ５１６）に遷移する。
以下、各ステップ、および、各ステップから分岐するステップを、それぞれ説明する。
【００８４】
[エレメントテーブルが「階層番号」を含む場合]
ステップ５０４（Ｓ５０４）では、プログラム５は、テーブルファイルに、「階層番号」を書き込む。
プログラム５は、「階層番号」を書き込んだ後、ステップ５０６（Ｓ５０６）に遷移する。
以下、データ項目の後に他のデータ項目を続けて書き込むときは、データ項目の後にタブ区切り文字（‘￥ｔ’）を書き込んだ後、他のデータ項目を書き込むものとする。
【００８５】
ステップ５０６（Ｓ５０６）では、プログラム５は、ステップ５０４（Ｓ５０４）で「階層番号」が書き込まれた後のテーブルファイルに、続けて、「要素識別」‘１’を書き込む。
プログラム５は、「要素識別」を書き込んだ後、ステップ５０８（Ｓ５０８）に遷移する。
【００８６】
ステップ５０８（Ｓ５０８）では、プログラム５は、ステップ５０６（Ｓ５０６）で「要素識別」が書き込まれた後のテーブルファイルに、続けて、「エレメント名」を書き込む。
プログラム５は、「エレメント名」を書き込んだ後、ステップ５１０（Ｓ５１０）に遷移する。
【００８７】
ステップ５１０（Ｓ５１０）では、プログラム５は、ステップ５０４（Ｓ５０４）〜ステップ５０８（Ｓ５０８）で書き込んだ一連のデータが、ステップ５００（Ｓ５００）で読み込んだ備考ファイルに存在するか否かを調べる。
「階層番号」が備考ファイルに存在すると判断された場合、プログラム５は、ステップ５１２（Ｓ５１２）に遷移する。
【００８８】
ステップ５１２（Ｓ５１２）では、プログラム５は、４つのタブ区切り文字（‘￥ｔ’）および備考ファイルの  「階層番号」に対応する「備考」を、ステップ５０８で「エレメント名」が書き込まれた後のテーブルファイルに続けて書き込む。
プログラム５は、タブ区切り文字（‘￥ｔ’）および「備考」を書き込んだ後、ステップ５１４（Ｓ５１４）に遷移する。
【００８９】
一方、「階層番号」が備考ファイルに存在しないと判断された場合、プログラム５は、４つのタブ区切り文字（‘￥ｔ’）を書き込み、ステップ５１４（Ｓ５１４）に遷移する。
ステップ５１４（Ｓ５１４）では、プログラム５は、ステップ５０８（Ｓ５０８）で「エレメント名」が書き込まれた後のテーブルファイル、またはステップ５１２（Ｓ５１２）で「備考」が書き込まれた後のテーブルファイルに、続けて、１つの改行文字コード（‘￥ｎ’）を書き込む。
プログラム５は、改行文字コード（‘￥ｎ’）を書き込んだ後、ステップ５３６（Ｓ５３６）に遷移する。
【００９０】
[属性／文字データテーブルが「階層番号」を含む場合]
ステップ５１６（Ｓ５１６）では、プログラム５は、テーブルファイルに、「階層番号」を書き込む。
プログラム５は、「階層番号」を書き込んだ後、ステップ５１８（Ｓ５１８）に遷移する。
【００９１】
ステップ５１８（Ｓ５１８）では、プログラム５は、「階層番号」が書き込まれた後のテーブルファイルに、続けて、「要素識別」‘０’を書き込む。
プログラム５は、「要素識別」を書き込んだ後、ステップ５２０（Ｓ５２０）に遷移する。
【００９２】
ステップ５２０（Ｓ５２０）では、プログラム５は、ステップ５１８（Ｓ５１８）で「要素識別」が書き込まれた後のテーブルファイルに、続けて、「属性／文字データ」を書き込む。
プログラム５は、「属性／文字データ」を書き込んだ後、ステップ５２２（Ｓ５２２）に遷移する。
【００９３】
ステップ５２２（Ｓ５２２）では、プログラム５は、ステップ５２０（Ｓ５２０）で「属性／文字データ」が書き込まれた後のテーブルファイルに、続けて、「データ型」を書き込む。
プログラム５は、「データ型」を書き込んだ後、ステップ５２４（Ｓ５２４）に遷移する。
【００９４】
ステップ５２４（Ｓ５２４）では、プログラム５は、「デフォルト値」が設定されているか否かを調べる。
プログラム５は、「デフォルト値」が設定されていると判断する場合、ステップ５２６（Ｓ５２６）に遷移する。
一方、プログラム５は、「デフォルト値」が設定されていないと判断する場合、ステップ５２８（Ｓ５２８）に遷移する。
【００９５】
ステップ５２６（Ｓ５２６）において、プログラム５は、ステップ５２２（Ｓ５２２）で「データ型」が書き込まれた後のテーブルファイルに、続けて、「デフォルト値」を書き込んだ後、ステップ５３０（Ｓ５３０）に遷移する。
ステップ５２８（Ｓ５２８）において、プログラム５は、ステップ５２２（Ｓ５２２）で「データ型」が書き込まれた後のテーブルファイルに、続けて、１つのタブ区切り文字（‘￥ｔ’）を書き込んだ後、ステップ５３０（Ｓ５３０）に遷移する。
【００９６】
ステップ５３０（Ｓ５３０）では、プログラム５は、ステップ５１６（Ｓ５１６）〜ステップ５２８（Ｓ５２８）で書き込んだ一連のデータが、ステップ５００（Ｓ５００）で読み込んだ備考ファイルに存在するか否かを調べる。
「階層番号」が備考ファイルに存在すると判断された場合、プログラム５は、ステップ５３２（Ｓ５３２）に遷移する。
【００９７】
ステップ５３２（Ｓ５３２）では、プログラム５は、２つのタブ区切り文字（‘￥ｔ’）および備考ファイルの「階層番号」に対応する「備考」を、テーブルファイルに続けて書き込む。
プログラム５は、タブ区切り文字（‘￥ｔ’）および「備考」を書き込んだ後、ステップ５３４（Ｓ５３４）に遷移する。
【００９８】
一方、「階層番号」が備考ファイルに存在しないと判断された場合、プログラム５は、２つのタブ区切り文字（‘￥ｔ’）を書き込み、ステップ５３４（Ｓ５３４）に遷移する。
ステップ５３４（Ｓ５３４）では、プログラム５は、ステップ５２６（Ｓ５２６）で「デフォルト値」が書き込まれた後のテーブルファイル、またはステップ５２８（Ｓ５２８）でタブ区切り文字（‘￥ｔ’）が書き込まれた後のテーブルファイルに、続けて、１つの改行文字コード（‘￥ｎ’）を書き込む。
プログラム５は、改行文字コード（‘￥ｎ’）を書き込んだ後、ステップ５３６（Ｓ５３６）に遷移する。
【００９９】
ステップ５３６（Ｓ５３６）では、エレメントテーブル、属性／文字データテーブルおよび備考ファイルの内容を、すべてテーブルファイルに書き込んだか否かを確認する。
エレメントテーブル、属性／文字データテーブルおよび備考ファイルの内容が、すべてテーブルファイルに書き込まれるまで、プログラム５は、ステップ５０２（Ｓ５０２）〜ステップ５３６（Ｓ５３６）の処理を繰り返す。
エレメントテーブル、属性／文字データテーブルおよび備考ファイルの内容を、すべてテーブルファイルに書込み、書込みがされたテーブルファイルを記憶装置１４８（図７）に保存した後、プログラム５は終了する。
【０１００】
図２２は、プログラム６が、プログラム５を実行して得られたテーブルファイル（図２１を参照して先述）を、テーブル表示エリア８６（図９）に表示するフローである。
本発明にかかるプログラム２がプログラム６を開始した後、ステップ６００（Ｓ６００）では、プログラム６は、記憶装置１４８（図７）から、プログラム３を実行して得られたエレメントテーブル（図１４を参照して先述）およびプログラム５を実行して得られたテーブルファイル（図２１を参照して先述）を読み込む。
プログラム６は、エレメントテーブルおよびテーブルファイルを読み込んだ後、ステップ６０２（Ｓ６０２）に遷移する。
【０１０１】
ステップ６０２（Ｓ６０２）では、プログラム６は、エレメントツリー表示エリア（図９）上で選択されたエレメントが、エレメントテーブルに存在することを確認する。
さらに、プログラム６は、上記確認を行った後、選択されたエレメントの「階層番号」、「親エレメントの階層番号」および「子エレメントの階層番号」を、エレメントテーブルから検索する。
プログラム６は、上記検索を行った後、ステップ６０４（Ｓ６０４）に遷移する。
【０１０２】
ステップ６０４（Ｓ６０４）では、ステップ６０２（Ｓ６０２）で検索された「親エレメントの階層番号」、選択されたエレメントの「階層番号」、および「子エレメントの階層番号」を、この順番で、あらかじめ定義した配列に入れる。
プログラム６は、上記の各階層番号を配列に入れた後、ステップ６０６（Ｓ６０６）に遷移する。
【０１０３】
ステップ６０６（Ｓ６０６）では、プログラム６は、選択されたエレメントの子エレメントが、さらに子エレメントを持つか否かを調べる。
具体的には、プログラム６は、エレメントテーブルにおいて、ステップ６０２（Ｓ６０２）で検索された「子エレメントの階層番号」が、他のエレメントの「階層番号」として設定されているか否かを調べる。
子エレメントがさらに子エレメントを持つと判断された場合、プログラム６は、ステップ６０８（Ｓ６０８）に遷移する。
【０１０４】
ステップ６０８（Ｓ６０８）では、プログラム６は、エレメントテーブルにおいて、さらなる子エレメントの「階層番号」を検索して、検索された「階層番号」を、ステップ６０４（Ｓ６０４）と同一の配列に入れる。
このとき、検索された「階層番号」は、「子エレメントの階層番号」の次に入る。
【０１０５】
なお、この処理は、子エレメントを持たないエレメントが出現するまで続けられる。
したがって、ステップ６０８（Ｓ６０８）における処理後の配列は、選択されたエレメントから派生するエレメントの集合になっている。
プログラム６は、上記配列処理を行った後、ステップ６１０（Ｓ６１０）に遷移する。
【０１０６】
ステップ６１０（Ｓ６１０）では、プログラム６は、テーブルファイルから、配列に入っている「階層番号」を検索する。
さらに、プログラム６は、検索された「階層番号」に対応するテーブルファイルのデータを、テーブル表示エリア８６（図９）に表示する。
【０１０７】
なお、テーブル表示エリア８６（図９）に表示される順序は、親エレメントまたは選択されたエレメント、その子エレメントの順である。
また、テーブルファイルにおいて、親エレメントまたは選択されたエレメントの「階層番号」が２回以上検索された場合、プログラム６は、検索処理を中断して、２回目以降の検索位置をそれぞれポインタとして保持する。
【０１０８】
図２３は、テーブル表示エリア８６のレイアウト例である。
テーブル表示エリアに表示されるテーブルは、「レコード番号」、「階層図番号」、「エレメント名」または「属性／文字データ」、「データ型」、「デフォルト値」、「データ」および「備考」というデータ項目より構成される。
【０１０９】
図２４は、テーブル表示エリア８６における表示パターンをまとめた表である。
本発明にかかるプログラム２は、「データ」に入力すること、および、選択されたエレメントが複数回現れるよう、選択されたエレメントを追加することを受け付ける（図１１を参照して先述）。
ただし、図２４に示すように、選択されたエレメントが複数指定できない場合、選択されたエレメントを追加することはできない。
さらに、図２４に示すように、選択されたエレメントの親エレメントが複数指定できる場合、選択されたエレメントを追加するときには、親エレメントを指定しなければならない。
【０１１０】
[ボタン表示エリアの動作（詳細）]
プログラム２は、選択されたエレメントに対応するテーブルファイルのデータを表示し、表示されたデータに関する変更を受け付ける（図１１を参照して先述）。
図２５は、ボタン表示エリア８４のレイアウト例である。
図２５に示すように、ボタン表示エリアは、↓サーチボタン８４０、↑サーチボタン８４２、追加ボタン８４４、削除ボタン８４６、前頁ボタン８４８、後頁ボタン８５０、書込み終了ボタン８５２およびＸＭＬ文書作成ボタン８５４を表示する。
なお、ユーザの操作性を向上させるため、上記以外のボタンを追加してもかまわない。
【０１１１】
以下、各ボタンの操作を説明する。
↓サーチボタン８４０および↑サーチボタン８４２は、カーソル位置にあるエレメントが複数回現れるよう指定できる場合、ユーザが、複数指定されたエレメント間でカーソルを移動させるためのボタンである。
なお、↓サーチボタン８４０は、レコード番号の昇順でカーソルを移動させるボタンであり、↑サーチボタン８４２は、レコード番号の降順でカーソルを移動させるボタンである。
【０１１２】
追加ボタン８４４は、ユーザが、エレメントに、エレメントおよび属性／文字データを追加するためのボタンである。
削除ボタン８４６は、ユーザが、エレメントおよび属性／文字データを削除するためのボタンである。
【０１１３】
前頁ボタン８４８および後頁ボタン８５０は、カーソル位置にあるエレメントの親エレメントが複数回現れるよう指定できる場合、ユーザが、複数指定された親エレメント間でカーソルを移動させるためのボタンである。
なお、前頁ボタン８４８は、レコード番号の降順でカーソルを移動させるボタンであり、後頁ボタン８５０は、レコード番号の昇順でカーソルを移動させるボタンである。
【０１１４】
書込み終了ボタン８５２は、ユーザが、テーブル表示エリア８６（図９）における書込みを終了するためのボタンである。
ＸＭＬ文書作成ボタン８５４は、テーブルファイルから、ＸＭＬ文書を作成するためのボタンである。
上記ボタンを使用することで、ユーザは、ＤＴＤファイルおよび備考ファイルから作成されたエレメントに関する情報を操作し、その情報からＸＭＬ文書を作成することができる。
【０１１５】
[プログラム７]
本発明にかかるプログラム２は、ＸＭＬ文書作成ボタン８５４（図２５）が押下された後、プログラム７を開始する。
【０１１６】
図２６は、プログラム７が、エレメントテーブルおよびテーブルファイルからＸＭＬ文書を作成するフローである。
図２７は、ＸＭＬ文書の記述パターン（Ａ）〜（Ｅ）をまとめた表である。
【０１１７】
本発明にかかるプログラム２がプログラム７を開始した後、プログラム７は、ステップ７００（Ｓ７００）において、記憶装置１４８（図７）から、エレメントテーブルおよびテーブルファイルを読み込む。
プログラム７は、エレメントテーブルおよびテーブルファイルを読み込んだ後、ステップ７０２（Ｓ７０２）に遷移する。
【０１１８】
ステップ７０２（Ｓ７０２）以降のステップにおいて、プログラム７は、ＸＭＬ文書に書込みを行う。
なお、プログラム７は、テーブルファイルにおいて、「要素識別」が‘０’のデータと、このデータの後に記述される「要素識別」が‘１’のデータ（複数可）とを一つのまとまりとして、ステップ７０２（Ｓ７０２）以降の処理を行う。
【０１１９】
なお、プログラム７は、ＸＭＬ文書が存在しなければ、ＸＭＬ文書を新しく作成する。
プログラム７は、エレメントテーブルおよびテーブルファイルを読み込んだ後、ステップ７０２（Ｓ７０２）に遷移する。
【０１２０】
ステップ７０２（Ｓ７０２）では、プログラム７は、以下の（１）または（２）に該当するデータを削除する。
（１）「要素識別」が‘０’で、かつ、「属性／文字データ」を持たない
（２）「要素識別」が‘１’で、その後に「要素識別」が‘０’の「属性／文字データ」を持たず、かつ、「子エレメントの階層番号」も持たない
【０１２１】
なお、「要素識別」および「属性／文字データ」は、テーブルファイルから読み込むことができるデータ項目である。
また、「子エレメントの階層番号」は、エレメントテーブルから読み込むことができるデータ項目である。
プログラム７は、上記（１）または（２）に該当するデータを削除した後、ステップ７０４（Ｓ７０４）に遷移する。
【０１２２】
ステップ７０４（Ｓ７０４）では、プログラム７は、要素識別が‘１’のデータの処理を開始する。
プログラム７は、要素識別が‘１’のデータの階層番号および開始タグの一部を書き込む。
たとえば、ステップ７０４（Ｓ７０４）の処理後、ＸＭＬ文書には、図２７に示すパターン（Ａ）が書き込まれている。
【０１２３】
さらに、プログラム７は、要素識別が‘１’のデータの後に、要素識別‘０’の属性データが存在する場合、要素識別が‘１’のデータの階層番号、および、属性データを含む開始タグを書き込む。
たとえば、ステップ７０４（Ｓ７０４）の処理後、ＸＭＬ文書には、図２７に示すパターン（Ｂ）が書き込まれている。
プログラム７は、上記書込みを行った後、ステップ７０６（Ｓ７０６）に遷移する。
【０１２４】
ステップ７０６（Ｓ７０６）では、プログラム７は、エレメントテーブルを用いて、要素識別が‘１’のデータが、子エレメントを持つか否かを調べる。
子エレメントを持つと判断した場合、プログラム７は、ステップ７０８（Ｓ７０８）に遷移する。
一方、子エレメントを持たないと判断した場合、プログラム７は、ステップ７１０（Ｓ７１０）に遷移する。
【０１２５】
ステップ７０８（Ｓ７０８）では、プログラム７は、ステップ７０４（Ｓ７０４）で書き込んだ開始タグの終了カッコ（＞）を書き込む。
たとえば、ステップ７０８（Ｓ７０８）の処理後、ＸＭＬ文書には、図２７に示すパターン（Ｃ）が書き込まれている。
プログラム７は、開始タグの終了カッコを書き込んだ後、ステップ７１６（Ｓ７１６）に遷移する。
【０１２６】
ステップ７１０（Ｓ７１０）では、プログラム７は、テーブルファイルにおいて、要素識別が‘１’のデータの後に、要素識別‘０’の文字データが存在するか否かを調べる。
文字データが存在する場合、プログラム７は、ステップ７１２（Ｓ７１２）に遷移する。
一方、文字データが存在しない場合、プログラム７は、ステップ７１４（Ｓ７１４）に遷移する。
【０１２７】
ステップ７１２（Ｓ７１２）では、プログラム７は、ステップ７０４（Ｓ７０４）で書き込んだ開始タグの終了カッコ（＞）、ステップ７１０（Ｓ７１０）で調べた文字データおよび終了タグを書き込む。
たとえば、ステップ７１２（Ｓ７１２）の処理後、ＸＭＬ文書には、図２７に示すパターン（Ｄ）が書き込まれている。
プログラム７は、上記書込みを行った後、ステップ７１６（Ｓ７１６）に遷移する。
【０１２８】
ステップ７１４（Ｓ７１４）では、プログラム７は、ステップ７０４（Ｓ７０４）で書き込んだ開始タグに対応する終了タグ（／＞）を書き込む。
たとえば、ステップ７１４（Ｓ７１４）の処理後、ＸＭＬ文書には、図２７に示すパターン（Ｅ）が書き込まれている。
プログラム７は、終了タグを書き込んだ後、ステップ７１６（Ｓ７１６）に遷移する。
【０１２９】
ステップ７１６（Ｓ７１６）では、プログラム７は、エレメントテーブルおよびテーブルファイルがすべてＸＭＬ文書に書き込まれたか否かを確認する（ステップ７０２（Ｓ７０２）で削除したレコードは除く）。
エレメントテーブルおよびテーブルファイルがすべて書き込まれるまで、プログラム７は、ステップ７０４（Ｓ７０４）〜ステップ７１４（Ｓ７１４）の処理を繰り返す。
エレメントテーブルおよびテーブルファイルをすべてＸＭＬ文書に書き込んだ後、プログラム７はステップ７１８（Ｓ７１８）に遷移する。
【０１３０】
ステップ７１８（Ｓ７１８）では、プログラム７は、ステップ７００（Ｓ７００）〜ステップ７１６（Ｓ７１６）の処理によって作成されたＸＭＬ文書において、開始タグに対応する終了タグが記載されていないエレメントを検索する。
さらに、プログラム７は、エレメントテーブルにおいて、検索したエレメントの子エレメントが、さらに子エレメントを持つか否かを調べる。
【０１３１】
プログラム７は、検索したエレメントすべてについて、子エレメントを持たないエレメントが出現するまで上記検索を行い、子エレメントを持たないエレメントの階層番号（複数可）を記憶する。
さらに、プログラム７は、ＸＭＬ文書において、記憶した階層番号のうち最も大きい階層番号が付されたエレメントの後に、検索したエレメントの終了タグを書き込む。
【０１３２】
さらに、プログラム７は、検索したエレメントの開始タグおよび終了タグの間に記載されるすべての開始タグの前に、空白文字（スペース）を入れる。
このように空白文字を入れることで、ＸＭＬ文書におけるエレメント間の階層構造を把握しやすくなる。
さらに、プログラム７は、ＸＭＬ文書に書き込まれた階層番号をすべて削除する。
プログラム７は、上記処理が行われたＸＭＬ文書を記憶装置（図７）に保存した後、ステップ７２０（Ｓ７２０）に遷移する。
【０１３３】
ステップ７２０（Ｓ７２０）では、プログラム７は、保存されたＸＭＬ文書を、ＸＭＬ文書表示エリア８８（図９）に表示する。
プログラム７は、ＸＭＬ文書を表示した後、ＸＭＬ文書作成・表示処理を終了する。
【０１３４】
図２８は、プログラム７が作成・表示するＸＭＬ文書の一例である。
プログラム７がＸＭＬ文書を作成・表示した後、本発明にかかるプログラム２は、ＸＭＬ文書化処理を終了する。
以上、述べたように、本発明にかかるプログラムを実行することで、ユーザは、３階層以上のエレメントを含むＸＭＬ文書を容易に作成することができる。
【図面の簡単な説明】
【０１３５】
【図１】階層データモデル化した出張旅費明細データを例示する図である。
【図２】ユーザが、表計算ソフトウエアを使用して、図１の階層データモデルに沿って作成した図表の一例である。
【図３】ユーザが、表計算ソフトウエアのＸＭＬ文書化機能を利用して、図２の図表に基づいて作成したＸＭＬ文書である。
【図４】階層データモデル化したソフトウエアパッケージデータを例示する図である。
【図５Ａ】ユーザが、表計算ソフトウエアを使用して、図４の階層データモデルに沿って作成した図表の一例である。
【図５Ｂ】ユーザが、表計算ソフトウエアを使用して、図４の階層データモデルに沿って作成した図表の一例である。
【図５Ｃ】ユーザが、表計算ソフトウエアを使用して、図４の階層データモデルに沿って作成した図表の一例である。
【図５Ｄ】ユーザが、表計算ソフトウエアを使用して、図４の階層データモデルに沿って作成した図表の一例である。
【図５Ｅ】ユーザが、表計算ソフトウエアを使用して、図４の階層データモデルに沿って作成した図表の一例である。
【図６】本発明にかかるプログラム２が実施されるネットワークシステムを例示する図である。
【図７】ネットワークシステム１を構成するＰＣのハードウエア構成を例示する図である。
【図８】ＰＣ上で動作する本発明にかかるプログラムの構成を示す図である。
【図９】本発明にかかるプログラムの実行によって、入出力装置が表示する表示画面８の一例である。
【図１０】ソフトウエアパッケージデータのＤＴＤファイルの一例である。
【図１１】本発明にかかるプログラムが、ＤＴＤファイルからＸＭＬ文書を作成するフローである。
【図１２】ディレクトリ／ファイル表示エリアのレイアウト例である。
【図１３】各プログラムの実行にともなう成果物の関連を示した図である。
【図１４】プログラムが作成するエレメントテーブルをテーブル表示した例である。
【図１５】プログラムが作成する属性／文字データテーブルをテーブル表示した例である。
【図１６】プログラムが、ＤＴＤファイルから、エレメントテーブルおよび属性／文字データテーブルを作成するフローである。
【図１７】ユーザがソフトウエアパッケージデータについて作成する備考ファイルの一例である。
【図１８】プログラムが、エレメントテーブルからエレメントツリーを作成するフローである。
【図１９】プログラムを実行して得られるエレメントツリーを、エレメントツリー表示エリアに表示した一例である。
【図２０】プログラムが作成するテーブルファイルのフォーマット例である。
【図２１】プログラムが、エレメントテーブル、属性／文字データテーブルおよび備考ファイルから、テーブルファイルを作成するフローである。
【図２２】プログラムが、プログラムを実行して得られたテーブルファイルを、テーブル表示エリアに表示するフローである。
【図２３】テーブル表示エリアのレイアウト例である。
【図２４】テーブル表示エリアにおける表示パターンをまとめた表である。
【図２５】ボタン表示エリアのレイアウト例である。
【図２６】プログラムが、エレメントテーブルおよびテーブルファイルからＸＭＬ文書を作成するフローである。
【図２７】ＸＭＬ文書の記述パターン（Ａ）〜（Ｅ）をまとめた表である。
【図２８】プログラムが作成・表示するＸＭＬ文書の一例である。
【符号の説明】
【０１３６】
１・・・ネットワークシステム１
１０・・・ネットワーク
１２・・・サーバ
１４・・・ＰＣ
１４０・・・ＣＰＵ
１４２・・・メモリ
１４４・・・入出力装置
１４６・・・ネットワークインターフェイス
１４８・・・記憶装置
１５０・・・外部記憶媒体
２・・・ＸＭＬ文書化プログラム
３・・・ＤＴＤファイル変換プログラム
４・・・エレメントツリー作成・表示プログラム
５・・・テーブルファイル作成プログラム
６・・・テーブルファイル表示プログラム
７・・・ＸＭＬ文書作成・表示プログラム
８・・・表示画面
８０・・・エレメントツリー表示エリア
８２・・・ディレクトリ／ファイル表示エリア
８２０・・・ディレクトリ／ファイル表示ツリー（ＤＴＤファイル）
８２２・・・選択ＤＴＤファイル表示ボックス
８２４・・・ディレクトリ／ファイル表示ツリー（備考ファイル）
８２６・・・選択備考ファイル表示ボックス
８２８・・・ＸＭＬ文書表示ボックス
８４・・・ボタン表示エリア
８４０・・・↓サーチボタン
８４２・・・↑サーチボタン
８４４・・・追加ボタン
８４６・・・削除ボタン
８４８・・・前頁ボタン
８５０・・・後頁ボタン
８５２・・・書込み終了ボタン
８５４・・・ＸＭＬ文書作成ボタン
８６・・・テーブル表示エリア
８８・・・ＸＭＬ文書表示エリア
【図１】
2008027146.tif 000003
【図２】
2008027146.tif 000004
【図３】
2008027146.tif 000005
【図４】
2008027146.tif 000006
【図５Ａ】
2008027146.tif 000007
【図５Ｂ】
2008027146.tif 000008
【図５Ｃ】
2008027146.tif 000009
【図５Ｄ】
2008027146.tif 000010
【図５Ｅ】
2008027146.tif 000011
【図６】
2008027146.tif 000012
【図７】
2008027146.tif 000013
【図８】
2008027146.tif 000014
【図９】
2008027146.tif 000015
【図１０】
2008027146.tif 000016
【図１１】
2008027146.tif 000017
【図１２】
2008027146.tif 000018
【図１３】
2008027146.tif 000019
【図１４】
2008027146.tif 000020
【図１５】
2008027146.tif 000021
【図１６】
2008027146.tif 000022
【図１７】
2008027146.tif 000023
【図１８】
2008027146.tif 000024
【図１９】
2008027146.tif 000025
【図２０】
2008027146.tif 000026
【図２１】
2008027146.tif 000027
【図２２】
2008027146.tif 000028
【図２３】
2008027146.tif 000029
【図２４】
2008027146.tif 000030
【図２５】
2008027146.tif 000031
【図２６】
2008027146.tif 000032
【図２７】
2008027146.tif 000033
【図２８】
2008027146.tif 000034