以下、レイアウト装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態におけるレイアウト装置のブロック図である。
レイアウト装置1は、格納部101、受付部102、枠構成部103、データ配置部104、出力部105、および枠構成指定受付部106を具備する。
格納部101は、階層構造を有するデータである階層構造データが格納され得る。階層構造データとは、例えば木構造に階層化されているデータや、ネスト化されたデータである。例えば、階層構造を有するデータとは、例えば、マークアップされたデータであり、具体的には、タグが付けられたデータである。この場合、各データの階層関係は、タグ同士の包含関係等を用いることより指定可能である。具体例を挙げると、階層構造データは、HTMLデータ、SGMLデータやXMLデータ等である。汎用性が高いことから、階層構造データは、XML(extensible markup language)を用いて記述されることが好ましい。ただし、階層構造を有していれば、階層構造データは、例えば、出力対象となるデータと、当該出力対象となるデータ等の構造を示すデータ、具体的には階層構造を示すデータと、により構成される。構造を示すデータとは、例えば、タグである。また、出力対象となるデータとは、例えば、タグが付けられたデータであり、いわゆる要素である。すなわち、階層構造データは、例えば、タグと、タグ付けられた要素とにより構成される。ただし、要素を有さないタグを含んでも良い。なお、ここでは、タグ内の文字列や数値等を属性名や要素名と呼ぶ。また、タグにより構造が指定されるデータを要素と呼ぶ。出力対象となるデータは、文字列データであっても良いし、画像データであっても良く、ページ上に出力可能なデータであればどのような情報であっても良い。また、画像データ等の場合、実際の画像データの格納場所やファイル名等を示す情報、いわゆるリンク情報等が、出力対象となるデータとして、階層構造データ内に格納されていても良い。格納部101は、不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
受付部102は、階層構造データの任意の階層のデータを指定する指示と、レイアウト対象となるページに配置する指示と、を受け付ける。具体的には、受付部102は、階層構造データの任意の階層のデータに対する指定を利用した、当該指定されたデータの階層より下位の階層にあるデータをレイアウト対象となるページに配置する指示を受け付ける。すなわち、ここでの配置する指示は、指定した任意の階層のデータを配置する指示でなくて良い。任意の階層のデータを指定する指示は、任意の階層に対応した階層構造を示すデータ、例えばタグを指定する指示である。もしくは、この階層構造を示すデータにより階層が指定されるデータ、例えば要素を指定する指示である。受付部102が指定を受け付ける手段等は問わない。例えば、階層構造を示すデータや、要素に対応したオブジェクト、例えばボタンやアイコン等を、図示しないディスプレイ等に表示させ、このオブジェクトを、マウス等でクリックすることで指定を受け付けても良いし、ダイアログ等に、指定の対象となる階層構造を示すデータや、要素を指定する情報、例えばタグの属性名や要素を入力することで、指定を受け付けても良い。また、レイアウト対象となるページに配置する指示をどのように受け付けるかについては問わない。例えば、ディスプレイ等に表示される、任意の階層のデータに対応付けられた、入力受付のためのオブジェクトを、マウス等の入力デバイスを用いて、レイアウト対象となるページに、いわゆるドラッグアンドドロップすることで、指定されたデータの階層より下位の階層にあるデータをレイアウト対象となるページに配置する指示を受け付けても良い。また、上述したように、任意の階層のデータを指定後、メニュー等からページに配置するコマンド等を選択することで、指定されたデータの階層より下位の階層にあるデータをレイアウト対象となるページに配置する指示を受け付けても良い。ここで述べる受付とは、例えば、入力手段からの受付や、他の機器等から送信される入力信号の受信や、記録媒体等からの情報の読み出し等である。階層構造データの任意の階層のデータを指定する指示と、レイアウト対象となるページに配置する指示の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部102は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
枠構成部103は、受付部102が受け付けた指示に対応するデータ、例えばタグや要素の、下位の所定の階層にある1以上のデータにそれぞれ対応する1以上の枠をページ上に設定する情報である枠情報を構成する。枠情報を構成するとは、具体的には、枠の位置やサイズや枠内に配置されるデータ属性等の情報を取得して、格納部や枠を管理するテーブル等に格納することである。1以上の枠とは、具体的には、文字列や画像を配置するための枠であり、通常、テキストフィールドや画像フィールド、テキストボックスや画像ボックス等と呼ばれる。なお、この枠は、レイアウト時に、必要に応じて表示されれば良く、実際にレイアウトしたページを最終的に表示したり印刷する際には、表示される必要はない。枠構成部103は、受付部102が受け付けた指示に対応するデータの、直下に位置する所定の階層のデータに対応する枠情報を構成する。また、枠同士は重ねて配置されるよう設定されても良い。枠構成部103は、受付部102が受け付けた指示に対応する階層の、下位の所定の階層にある1以上のデータに対応したデータ属性を有するデータを配置可能な枠をページ上に設定する。データ属性とは、画像データ、文字列データ等のデータの属性である。すなわち、枠内に配置される要素のデータ属性に応じた枠を設定する。例えば文字列のデータが配置される枠として、文字列を配置する枠、例えばテキストフレームを設定し、画像のデータが配置される枠として、画像を配置する枠、例えば画像フレームを設定する。さらに、配置されるデータのより詳細な属性に応じたフレームを設定しても良く、例えば、配置される文字列が数字である場合、数字のみを配置可能なテキストフレームを設定しても良い。また、配置される画像が、EPS形式の画像である場合、EPS形式の画像のみを配置可能な画像フレームを設定しても良い。
枠情報は、具体的には、枠のサイズや位置を指定するための情報である。例えば、枠情報は、枠の幅や高さの情報と、枠内の一点、例えば枠の左上隅の、レイアウト先であるページ上の座標情報とにより構成されてもよい。また、枠情報は、例えば、枠の形状が矩形であれば、左上隅と、右下隅の座標情報とであっても良い。また、枠情報は、枠の四隅の座標情報であっても良い。枠情報は、枠の出力されるページ等を指定する情報を有していても良い。また、枠情報は、例えば、枠の幅や高さの情報と、枠と他の枠との縦方向や横方向の余白の距離、ページ等における枠が配置可能な領域に対する枠の縦方向や横方向の余白の距離を示す情報等の情報であってもよい。枠の位置を指定するための情報は、ページ等における枠を配置可能な領域に対する座標等の、絶対的な位置を示す情報であっても良いし、枠を配置可能な領域の辺や、他の枠に対する相対的な位置を示す情報であっても良い。枠を設定する際の、枠の配置ルール等は、予め枠内に配置されるデータに応じて、例えば配置されるデータに付けられたタグの属性値に応じて指定されているようにすることが好ましく、各枠は、枠内に配置されるデータに対応したルールに従って、配置やサイズ等が設定されるようにすることが好ましい。通常は、配置されるデータが収まるようなサイズの枠が設定されることが好ましい。枠情報と、枠情報により設定される枠に配置される出力対象となるデータとの対応関係はどのように管理されていてもよく、例えば、枠情報と出力対象となるデータとを対にもつレコードを有するテーブル等を用いて管理されてもよい。また、各出力対象となるデータと、これらに対応する枠情報とに、共通する識別情報を設定することで、枠情報と、枠に配置されるデータとの対応関係を管理してもよい。
枠構成部103は、例えば、予め指定された下位の所定の階層のデータについて枠情報を構成する。この下位の所定の階層の指定は、受付部102が受け付けた指示に対応するデータを基準とした相対的な階層の指定、例えば2階層だけ下の階層等の指定であっても良いし、階層構造データの最も上位の階層を基準とした絶対的な階層の指定であっても良い。この所定の階層の指定は、例えば、後述する枠構成指定受付部106により受け付けるようにしても良いし、予め、デフォルトで設定されていても良い。下位の所定の階層は、1つの階層であっても複数の階層、例えば2階層目と4階層目等であっても良い。また、枠構成部103は、下位の所定の階層を構成するデータの全てについて、枠情報を構成しても良いし、下位の所定の階層のデータのうちの、予め指定された所定のデータのみについて、枠情報を構成しても良い。具体的には、枠構成部103は、下位の所定の階層のデータのうちの、予め指定された所定のタグや要素のデータについて、枠情報を構成しても良い。この所定のタグや要素の指定は、例えば、後述する枠構成指定受付部106により受け付けるようにしても良いし、予め、デフォルトで設定されていても良い。
枠構成部103は、通常、受付部102が受け付けた指示に対応するデータの、下位の所定の階層にある1以上のデータのそれぞれに対して、1対1で対応する枠を設定するための枠情報を構成する。ただし、下位の所定の階層にある1以上のデータのそれぞれに対して、1対他で対応する枠を設定してもよい。例えば、下位の所定の階層にあるデータが文字列のデータである場合、この文字列のデータの一部を第一の枠に配置し、文字列の残りを第二の枠に配置しても良い。また、枠構成部103は、枠情報を構成する対象となるデータのなかに、同じ属性名を有する複数のデータが存在する場合、枠情報を構成する対象となるデータのうちの、同じ属性名を有する複数のデータに対応したデータを配置するための一の枠を示す枠情報を構成するようにし、当該枠内に、この複数のデータの表示対象となるデータを、同じ属性名を有する複数のデータのそれぞれから、所定の条件に合致するデータ、例えば数値や、単位やサイズ等を示す値等の特定の文字列を取得し、当該取得したデータを所定のパターンの情報、例えばテンプレートとなる文字列等に当てはめて、あるいは所定のルールに従って配置して、構成したデータを、一の枠に配置するようにしてもよい。また、予め、所定の属性名を指定しておいて、同じ属性名を有する複数のデータのうちの、この指定された属性名を有するデータについてのみ、一の枠を示す枠情報を構成し、当該枠内に、この複数のデータの表示対象となるデータのそれぞれから、所定の条件に合致するデータを取得し、当該取得したデータを所定のパターンの情報に当てはめて構成したデータを、一の枠に配置するようにしてもよい。同じ属性名を有する複数のデータに対応したデータとは、同じ属性名を有するデータ自身でも良いし、同じ属性名を有するデータ内に含まれるデータであっても良く、例えば、タグ付けされたデータのうちの要素であっても良い。例えば、受付部102が受け付けた指示に対応するデータの、直下の下位の所定の階層に、同じ属性名を有する所定のタグが付けられた複数の要素(データ)がある場合、この複数のデータを配置するための枠として、一の枠を設定する。同じ属性名を有する所定のタグは、予め指定されていても良いし、図示しない受付部を介してユーザから受け付けても良い。また、この同じ属性名を有する所定のタグが付けられた複数の要素を配置するための一の枠内に配置される出力対象となる複数の情報、例えば複数の要素については、予め設定されたルールや配置のパターンに従って、データ内容を変更したり、出力形態等を変更したりしても良い。例えば、複数の文字列を、コンマ等で区切って並べて配置しても良いし、複数のデータ内の複数の数値を取得し、これらを、値の範囲を示す記号、例えば「〜」記号等でつないで表示しても良い。また、複数の画像を、縮小して並べて配置しても良い。
また、枠構成部103は、受付部102が受け付けた指示に対応するデータの、下位の所定の階層にある全てのデータのそれぞれに対して、枠情報を構成する必要はない。例えば、予め、格納部101に、階層構造データを構成する各データに対して、枠情報の構成についての可否を指定する情報が格納されているようにし、枠構成部103は、この枠情報の構成についての可否を指定する情報に応じて、受付部102が受け付けた指示に対応する階層の、下位の所定の階層にある1以上のデータにそれぞれ対応する1以上の枠をページ上に設定する情報である枠情報を構成する、あるいは構成しないようにしてもよい。なお、格納部101が、物理的に2の記録媒体等で構成されており、階層構造データを構成する各データと、枠情報の構成についての可否を指定する情報とが、異なる記録媒体等に格納されていても良い。また、後述する枠構成指定受付部106が、階層構造データを構成する各データ、例えばタグについて、枠情報の構成についての可否、すなわち枠情報を構成するか否かを指定する情報を受け付けるようにし、枠構成指定受付部106が受け付けた、各データについての枠情報の構成の可否を指定する情報に応じて、格納部101に格納されている枠情報の構成についての可否を指定する情報を更新、例えば、書き換えたりできるようにしてもよい。具体的には、デフォルトでは、全てのデータに対して、枠情報を構成することを指定する情報が指定されており、後述する枠構成指定受付部106が、階層構造データを構成する各データ、例えばタグのうちの、枠情報の構成を行わないデータを指定する情報を受け付けるようにし、この枠情報の構成を行わない情報については、枠情報を行わないことを示す情報、例えばフラグ情報を付与するようにし、枠構成部103は、受付部102が受け付けた指示に対応するデータの、下位の所定の階層にあるデータのうちの、枠情報の構成を行わないことを示す情報が付与されていないデータを配置するための枠情報の構成を行うようにしてもよい。
また、例えば、予め、格納部101に、階層構造データを構成する各階層に対して、枠情報の構成についての可否を指定する情報が格納されているようにし、枠構成部103は、この枠情報の構成についての可否を指定する情報に応じて、受付部102が受け付けた指示に対応する階層の、下位の所定の階層にある1以上のデータにそれぞれ対応する1以上の枠をページ上に設定する情報である枠情報を構成する、あるいは構成しないようにしてもよい。なお、格納部101が、物理的に2の記録媒体等で構成されており、階層構造データを構成する各データと、枠情報の構成についての可否を指定する情報とが、異なる記録媒体等に格納されていても良い。また、後述する枠構成指定受付部106が、階層構造データを構成する各階層に対して、枠情報の構成についての可否、すなわち枠情報を構成するか否かを指定する情報を受け付けるようにし、枠構成指定受付部106が受け付けた、各階層についての枠情報の構成の可否を指定する情報に応じて、格納部101に格納されている枠情報の構成についての可否を指定する情報を更新、例えば、書き換えたりできるようにしてもよい。具体的には、デフォルトでは、全ての階層に対して、枠情報を構成することを指定する情報が指定されており、後述する枠構成指定受付部106が、階層構造データを構成する各データ、例えばタグのうちの、枠情報の構成を行わない階層を指定する情報を受け付けるようにし、この枠情報の構成を行わない階層については、枠情報を行わないことを示す情報、例えばフラグ情報を付与するようにし、枠構成部103は、受付部102が受け付けた指示に対応する階層の、下位の所定の階層にあるデータのうちの、枠情報の構成を行わないことを示す情報が付与されていない階層のデータを配置するための枠情報の構成を行うようにしてもよい。例えば、枠情報の構成を行わない階層を指定する情報として、受付部102が受け付けた指示に対応する階層に対する下位の階層数を指定する情報、例えば「2階層」を指定する情報を枠構成指定受付部106が受け付けるようにし、枠構成部103は、受付部102が受け付けた指示に対応する階層に対して、枠構成指定受付部106が受け付けた階層数を指定する情報が示す階層数、例えば2階層以内の下位の階層にある1以上のデータにそれぞれ対応する1以上の枠を設定する枠情報を構成するようにし、それ以降の下位、例えば3階層下位のデータについては枠情報を構成しないようにしてもよい。
枠構成部103は、枠情報を構成する対象となるデータのうちの、出力対象となるデータを有するデータのみに対応する枠情報を構成するようにしてもよい。具体例としては、枠構成部103は、枠情報を構成する対象となるタグが付けられたデータのうちの、要素を有するデータのみに対応する枠情報を構成するようにしてもよい。
また、枠構成部103は、枠情報を構成する対象となる各データのうちの、上位の階層にあるデータが、異なるデータについての枠を、異なるページに設定するための枠情報を構成するようにしてもよい。すなわち。枠情報を構成する対象となる各データが結果的に複数であった場合であって、当該二以上のデータのそれぞれについての、上位の階層にあるデータが、異なるデータである場合、上位の階層が異なるデータについての枠が、異なるページに設定されるように枠情報を構成するようにしてもよい。ここで述べる上位の階層は、最上位であることが好ましいが、所定数の階層だけ上位の階層であっても良い。通常、階層構造データにおいては、異なるカテゴリーや分類にあるデータが異なる枝に属するようにデータを階層化するため、このようにすることで、データのカテゴリーや分類毎に、異なるページに、自動的にデータをレイアウトすることが可能となる。
枠構成部103が、枠をページ内のどの位置に配置するかは問わない。例えば、受付部102が枠を構成する基準となる位置の指定を受け付けるようにして、この基準となる位置から順番に、所定の方向に向かって枠が配置されるように、枠情報が構成されても良い。また、受付部102が、任意の階層のデータに対応付けられた、入力受付のためのオブジェクトを、マウス等の入力デバイスを用いて、レイアウト対象となるページに、いわゆるドラッグアンドドロップする場合、このドロップされた位置を配置の基準として、枠情報が構成されても良い。
枠構成部103は、通常、MPUやメモリ等から実現され得る。枠構成部103の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
データ配置部104は、枠構成部103が構成した枠情報が示す枠内に、当該枠に対応したデータのうちの出力対象となるデータを配置する。具体的には、データ配置部104は、対応する枠が設定されたデータのうちの、階層構造等の構造を指定するデータを除いた出力対象となるデータ、例えばタグ付けられたデータにおける要素のデータを、ページに設定された枠内に配置する。すなわち、データを枠内に流しこむ。また、流しこむデータがない場合は、枠をデータが流しこまれていない状態で報知しておいても良いし、データがないことを示す画像や警告等を枠内等に表示するようにしても良い。なお、出力対象となるデータを枠内に流しこむ処理については、DTP装置等においては公知であるので、詳細な説明は省略する。なお、対応する枠が用意されているデータの直下の階層のデータであって、対応するフレームが構成されていないデータについては、上位の階層のフレーム内に配置されてるようにしても良いし、データが配置されないようにしてもよい。データ配置部104は、通常、MPUやメモリ等から実現され得る。データ配置部104の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部105は、データ配置部104がデータを配置したページのデータを出力する。ページのデータとは、例えば、レイアウトされたページやレイアウト中のページの情報を示すデータや、印刷に利用されるページ記述言語等で記述されたデータや、PDFデータ等である。ここで述べる出力とは、ディスプレイへの表示、プリンタによる紙等への印刷、ハードディスク等の記録媒体への蓄積や、外部の装置への送信等を含む概念である。出力部105は、ディスプレイやプリンタ等の出力デバイスを含むと考えても含まないと考えても良い。出力部105は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
枠構成指定受付部106は、階層構造データを構成する各データに対して、枠情報の構成についての可否を指定する情報を受け付ける。枠情報の構成についての可否とは、枠情報を構成するか否かの指定である。例えば、枠構成指定受付部106は、階層構造データを構成する各データ、例えばタグについて、枠情報を構成するか否かを指定する情報を受け付ける。この可否を示す情報は、例えば、枠情報を構成しないデータに付随するチェックボックス等にチェックを入れることで入力が受け付けられても良い。受け付けた可否を示す情報は、例えば、各データと対応付けて図示しないメモリ等に蓄積する。また、枠構成指定受付部106は、階層構造データを構成する各データに対して枠情報の構成についての可否の指定を受け付ける代わりに、階層構造データを構成する各階層に対して、枠情報の構成についての可否を指定する情報を受け付けるようにしてもよい。この各階層の指定は、階層構造データ全体に対する絶対的な階層数でも、受付部102が指定を受け付けた階層構造データの任意の階層のデータに対する相対的な階層数でも良い。ここで述べる受付とは、例えば、入力手段からの受付や、他の機器等から送信される入力信号の受信や、記録媒体等からの情報の読み出し等である。枠情報の構成についての可否を指定する情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。枠構成指定受付部106は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
次に、レイアウト装置の動作について図2のフローチャートを用いて説明する。
(ステップS201)枠構成指定受付部106は、階層構造データを構成する各データに対して、枠情報を構成するか否かを指定する情報を受け付けたか否かを判断する。受け付けた場合、ステップS201に進み、受け付けていない場合、ステップS203に進む。なお、階層構造データを構成する各階層に対して、枠情報を構成するか否かを指定する情報を受け付けたか否かを判断するようにしてもよい。
(ステップS202)枠構成指定受付部106は、ステップS201において受け付けた枠情報を構成するか否かを指定する情報を、図示しないメモリ等に蓄積する。
(ステップS203)受付部102は、格納部101に格納されている階層構造データの、任意の階層のデータについての指定を受け付けたか否かを判断する。受け付けた場合、ステップS204に進み、受け付けていない場合、ステップS201に戻る。
(ステップS204)受付部102は、ステップS203において指定されたデータの、下位の所定の階層のデータをページに配置する指示を受け付けたか否かを判断する。受け付けた場合、ステップS205に進み、受け付けていない場合、ステップS204に戻る。
(ステップS205)枠構成部103は、カウンターnに1を代入する。
(ステップS206)枠構成部103は、格納部101に格納されている階層構造データのうちの、ステップS203において指定されたデータの、下位の所定の階層のn番目のデータを読み出す。
(ステップS207)枠構成部103は、ステップS202で蓄積された情報を用いて、n番目のデータが、枠情報の構成が可能なデータであるか否かを判断する。構成可能な情報である場合、ステップS208に進み、構成可能な情報でない場合、ステップS212に進む。
(ステップS208)枠構成部103は、n番目のデータと同じ属性値を持つデータが既にあったか否かを判断する。既にあった場合、ステップS216に進み、ない場合、ステップS209に進む。
(ステップS209)枠構成部103は、n番目のデータに対応した枠を設定するための枠情報を構成する。この枠のサイズや位置は、n番目のデータの属性値等に応じて、予め指定されているルールを、図示しないメモリ等から読み出し、このルールに従って設定される。構成した枠情報は、図示しないメモリ等に蓄積する。
(ステップS210)データ配置部104は、n番目のデータ内に、配置対象となるデータ、例えば要素があるか否かを判断する。ある場合、ステップS211に進み、ない場合、ステップS212に進む。
(ステップS211)データ配置部104は、ステップS209により構成された枠情報が示す枠内に、n番目のデータ内の配置対象となるデータを配置する。
(ステップS212)枠構成部103は、カウンターnに1インクリメントする。
(ステップS213)枠構成部103は、格納部101に格納されている階層構造データに、ステップS203において指定されたデータの、下位の所定の階層のn番目のデータがあるか否かを判断する。ある場合、ステップS206に戻り、ない場合、ステップS214に進む。
(ステップS214)出力部105は、枠が設定され、出力対象となる情報が配置されたページの情報を出力する。そして、ステップS201に戻る。
(ステップS215)データ配置部104は、n番目のデータに配置対象となるデータがあるか否かを判断する。ある場合、ステップS216に進み、ない場合、ステップS212に進む。
(ステップS216)データ配置部104は、n番目のデータと同じ属性値を有するデータについての枠を検索する。
(ステップS217)データ配置部104は、n番目のデータの配置対象となるデータと、n番目のデータと同じ属性値を有するデータの、既にステップS216で検索された枠内に配置されているデータとを、予め設定されているルールに従って組み合わせる。具体的には、n番目のデータの配置対象となるデータと、n番目のデータと同じ属性値を有するデータの、既にステップS216で検索された枠内に配置されているデータとのそれぞれから、所定の条件に合致するデータを取得し、当該取得したデータを所定のパターンの情報に当てはめた情報を構成する。
(ステップS218)枠構成部103は、ステップS217において組み合わせたデータが配置可能となるように、ステップS216において検索した枠のサイズや位置等を調整する。
(ステップS219)データ配置部104は、ステップS217において組み合わせたデータを、ステップS218において、調整した枠内に配置する。そして、ステップS212に進む。
なお、上記の処理が繰り返される結果、枠を構成する対象となるデータが複数となった場合、ステップS209において、当該二以上のデータのそれぞれについての、上位の階層にあるデータが、異なるデータであるか否かを判断し、異なるデータであると判断された場合、それぞれについて構成する枠が、異なるページに設定されるように枠情報を構成するようにしてもよい。このような場合、例えば、後から枠を構成する対象となったデータについては、枠構成部103が、このデータについての枠が新規のページの先頭から配置されるように枠情報を構成してもよい。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態におけるレイアウト装置の具体的な動作について説明する。
図3は、格納部101に、格納されているレイアウトの対象となるデータを含む階層構造データの例を示す図である。ここでは、階層構造データがXMLデータである場合を例に挙げて説明する。このXMLデータのうち、「<a>」(ただし、aは1文字以上の数値を含む文字列)と記載されたデータをここではタグと呼び、タグ内の「a」を属性名と呼ぶ。また、タグ内の文字列に、「/」を含むものをここでは終了タグ、含まないものを開始タグと呼ぶ。属性名が同じ開始タグと終了タグとで囲まれたデータを要素と呼ぶ。一の属性名が同じ開始タグと終了タグとの間に、他の開始タグと終了タグで囲まれたデータを配置して、データ構造を、ネスト化、すなわち入れ子構造とすることで、データが階層化されている。なお、ここでは説明のためにデータの階層関係が分かるように、各データがどの階層に位置するかを示しているが、通常は、このような階層数は階層構造データ内には含まれない。この階層構造データは、ここでは、例えば、ユーザ等により予め蓄積されているものとする。
図4は、図示しないディスプレイ等に表示されるレイアウト装置の操作画面を示す図である。ディスプレイには、データがレイアウトされるページを表示するウインドウ(以下、ページウインドウ40と称す)と、図3に示した階層構造データを表示するウインドウ(以下、データウインドウ30と称す)が表示される。データウインドウ30には、図3に示した階層構造データの開始タグが、アイコン等の画像オブジェクトとして表示されている。そして、終了タグや、要素は表示が省略されているものとする。また、表示されている開始タグは、階層毎にインデントされて表示されており、左側に位置するものほど、上位の階層のデータであることを示している。
図5は、階層構造データの各データに応じて設定される枠の配置ルール、および枠内に配置されるデータのデータ属性を指定する情報を管理する枠ルール管理表である。枠ルール管理表は、「ID」、「タグ」、「配置ルール」、および「データ属性」という属性を有している。「ID」は、レコードを管理するための識別情報である。「タグ」は、データの開始タグの属性名である。「配置ルール」は、設定される枠の配置ルールであり、他の枠に対するマージン等を指定する情報が格納されている。例えば「上マージン:10mm」とは作成される枠の上に位置する枠に対する上方向のマージンが10mmであることを示す。「データ属性」は、枠内に配置可能なデータ属性を示しており、文字列データであるか、画像データであるかを示している。なお、枠内に配置される文字のフォントやサイズ等の属性を指定する情報も管理するようにしても良い。
まず、ユーザが、マウス等を操作してポインタを動かして、図4に示すように、データウインドウ30内の、「<商品>」というタグのアイコンをクリックしたまま、ページウインドウ40内にアイコンをドラッグし、データを配置したい位置でマウスのクリックを終えて、アイコンをドロップしたとする。このようないわゆるドラッグアンドドロップの処理が行われることにより、受付部102は、階層構造データの第一階層の「<商品>」というデータを指定する指示と、このタグに関連したデータを、レイアウト対象となるページに配置する指示とを受け付ける。ここでは、さらにページのデータを配置する基準となる位置の情報を、アイコンがドロップされた位置の情報から取得し、受け付ける。
次に、枠構成部103は、図5に示した枠ルール管理表に従って、受付部102が受け付けた第一階層「<商品>」というタグの、下位の所定の階層にある1以上のデータにそれぞれ対応する1以上の枠をページ上に設定する情報である枠情報を構成する。ここでは、予め、メモリ等に、「受付部102が受け付けたタグの直下の、1階層だけ下位のデータに対応する枠を設定する枠情報を構成する」というルールが格納されているものとし、枠構成部103は、このルールを読み出して、このルールに従って、受付部102が受け付けた第一階層の「<商品>」というタグの、一つ下の階層である第二階層のタグ、ここではまず、「<商品名>」というタグを読み出す。そして、このタグの属性値である「商品名」という文字列を検索キーとして、図5に示した枠ルール管理表内の「タグ」属性が一致するレコードを検索する。そして、検索により検出されたレコードの「配置ルール」に従った枠を設定する枠情報を構成する。また、この枠に配置されるデータのデータ属性として、検出されたレコードの「データ属性」属性、ここでは、「文字列データ」を取得する。
次に、データ配置部104は、枠構成部103が構成した枠内に配置するデータを、図3に示した階層構造データから読み出す。具体的には、「<商品名>」というタグの要素、および、このタグの下位の階層のデータを読み出す。ここでは、「<商品名>」というタグの要素は「DVD−X」であり、このタグの下位の階層のデータはないため、この「DVD−X」という情報を読み出す。そして、この読み出したデータを、「<商品名>」というタグに応じて設定された枠内に配置する。なお、ここでは、枠構成部103は、この読み出した「DVD−X]という文字列のデータのサイズを計算し、この文字列のデータが全て表示されるように、枠の大きさを調整するものとする。
また、枠構成部103は、同様にして、受付部102が受け付けた第一階層の「<商品>」というタグの、一つ下の階層である第二階層のタグである「<商品詳細>」というタグを読み出す。そして、このタグの属性値である「商品詳細」という文字列を検索キーとして、図5に示した枠ルール管理表内の「タグ」属性が一致するレコードを検索する。そして、検索により検出されたレコードの「配置ルール」に従った枠を設定する枠情報を構成する。また、この枠に配置されるデータのデータ属性として、検出されたレコードの「データ属性」属性、ここでは、「文字列データ」を取得する。
次に、データ配置部104は、枠構成部103が構成した枠内に配置するデータを、図3に示した階層構造データから読み出す。具体的には、「<商品詳細>」というタグの要素、および、このタグの下位の階層のデータを読み出す。ここでは、「<商品名>」というタグの要素がないため、このタグの下位の階層のデータである「<商品キャッチ1>」および「<商品キャッチ2>」というタグが付けられたデータを読み出す。そして、この読み出したデータの要素である「高画質」という文字列データと、「高速ダビング」という文字列データとを、「商品詳細」というタグに応じて設定された枠内に配置する。なお、これらの配置される文字列データの書式等の属性は、ここでは、配置される文字列データに付与されたタグに対応付けられた属性等に応じて設定されるものとする。また、枠構成部103は、配置される文字列のデータが全て表示されるように、枠の大きさを調整するものとする。
図6は、ページに設定された枠の情報である枠情報および枠内に配置されたデータを管理するレイアウト管理表である。レイアウト管理表は、「枠ID」と、「ページ」、「位置」、「サイズ」、「データ属性」、「データ」という属性を有している。「枠ID」は、ページ上に設定された枠を識別するための識別情報である。「ページ」は、枠が配置されているページ番号である。「位置」は、ページ内での枠の配置されている座標であり、ここでは、ページの左上を(0,0)としている。「サイズ」は、枠の幅および高さである。「データ属性」は、枠内に配置されるデータの構造である。「データ」は、枠内に配置されているデータを示す。なお、この「データ」は、実際に配置されているデータであっても良いし、配置されるデータに対するリンク先を示す情報であっても良い。ここでは、「枠ID」、「ページ」、「位置」、「サイズ」、および「データ属性」が枠情報である。
出力部105は、枠構成部103が設定した枠と、データ配置部104が、枠内に配置したデータとを出力、ここでは表示する。
図7は、出力部105による表示例を示す図である。なお、第二階層のタグの属性値を、ここでは、対応する枠内に表示するようにしているが、表示しなくても良い。
なお、出力部105は、このような枠情報や枠内に配置されたデータを含むページのデータを保存したり、外部に出力しても良い。
その後、同様にデータウインドウ30から、タグのアイコン等を、ページ上にドラッグアンドドロップすることで、同様にレイアウトされたページが作成される。
なお、この具体例においては、受付部102が受け付けたタグよりも、2階層以上、下位の階層のデータ、具体的には下位の階層のデータ内の要素については、受付部102が受け付けたタグよりも1階層だけ下位の階層のデータについて設定された枠内に配置するようにしたが、ユーザの指定等に応じて、受付部102が受け付けたタグよりも、2階層以上、下位の階層のデータについては表示しないようにしてもよい。
なお、この具体例において、予め、メモリ等に、「受付部102が受け付けたタグの直下の、要素の入ったタグの全てについて、対応する枠を設定する枠情報を構成する」等のルールを格納しておくようにし、枠構成部103は、このルールを読み出して、このルールに従って、要素の入ったタグ別に、個別の枠を設定するようにしても良い。
例えば、上記の具体例において、枠構成部103が、受付部102が受け付けた第一階層の「<商品>」というタグの、一つ下の階層である第二階層のタグである「<商品詳細>」というタグを読み出した際に、このタグに対応した要素があるか否かを判断する。そして要素がなければ、枠を構成しないようにする。
さらに、この「<商品詳細>」というタグの下位の階層に、他のタグがあるか否かを判断する。ここでは、「<商品キャッチ1>」および「<商品キャッチ2>」というタグがあるため、それぞれについて、対応する要素が含まれるか否かを判断し、要素が含まれる場合には、枠を設定するための枠情報を、個別に作成する。ここでは、「<商品キャッチ1>」および「<商品キャッチ2>」というタグのいずれにも要素が含まれるため、図5に示した枠ルール管理表にしたがって、それぞれに対応した枠情報を構成し、この枠内に、「<商品キャッチ1>」および「<商品キャッチ2>」というタグに対応した要素である「高画質」および「高速ダビング」という要素の文字列データを配置する。また、これらのタグの下位の階層がある場合、同様に、要素が含まれるか否かの判断と、枠を作成する処理を繰り返す。このようにしてレイアウトされたページの出力部105による表示例を図8に示す。
また、上記具体例において、予め格納部100に、階層構造データを構成する各データに対して、枠情報の構成についての可否を指定する情報が格納されているようにして、この情報に応じて、図9に示すように、データウインドウ30の各タグのアイコン等の横に、チェックボックス等を表示させるようにしてもよい。ここではデフォルトでは、全てのチェックボックスにチェックが入っていない状態であるとし、チェックが入っていないチェックボックスに対応したタグは、枠情報が構成可能であることを指定する情報と対応付けられたタグであるであり、チェックが入っているチェックボックスに対応したタグは、枠情報の構成が不可であることを指定する情報と対応付けられたタグであるでありとする。そして、枠情報を構成してレイアウトする必要のないデータについては、このチェックボックスにマウス等を用いてチェックを入れると、枠構成指定受付部106が、このチェックされたチェックボックスに対応したタグについては、枠を設定しないことを指定する指示を受け付け、格納部100に格納されている枠情報の構成についての可否を指定する情報を更新する。
これにより、枠構成部103が枠情報を構成する際には、この枠を設定しないことを指定する指示に対応付けられたタグについては、枠情報を構成しないようにしても良い。このようにすることで、階層構造データ内のタグや要素等を削除しなくても、枠を作成するか否か等を制御することが可能となる。なお、このような枠を作成しないデータの指定を、階層単位で指定できるようにしても良く、この場合、枠を指定しない階層が何階層であるかを指定する情報等を、メニュー等から入力できるようにすればよい。
また、上記具体例において、枠を構成する対象となるデータが複数となった場合、当該二以上のデータのそれぞれについての、上位の階層にあるデータが、異なるデータであるか否かを判断し、異なるデータであると判断された場合、それぞれについて構成する枠が、異なるページに設定されるように枠情報を構成するようにしてもよい。
例えば、階層構造データが、図10に示すようなデータである場合において、複数の「<商品>」タグを上から順番に指定して、ページ上にドラッグドロップしていった場合を考えると、上から二つめまでの「<商品>」タグについては、いずれも、一階層だけ上位の階層のタグが属性値が「分類 id=1」であり同じであるため、これらの情報に対応した枠は、強制的に異なるページに設定されることはない。これに対し上から三つめの「<商品>」タグについては、その一階層だけ上位の階層のタグの属性値が「分類 id=2」であり、上から二つめまでの「<商品>」タグの、上位一階層のタグの属性値とは異なると枠構成部103により判断される。このため、枠構成部103は、この三つめの「<商品>」タグに関して設定される枠を、他の二つの「<商品>」タグについて設定される枠が配置されるページとは、強制的に異なるページに設定する。
このようにして構成されたレイアウトされたページの出力部105による表示例を図11に示す。このようにすることで、異なる分類となるデータを、異なるページに自動でレイアウトすることができ、例えば商品等のカタログを、分類毎に、異なるページに表示させることが可能となる。
なお、ここでは、タグの属性値が一致するか否かを判断しているが、要素が一致するか否か等を判断するようにしても良い。
ここで、上記具体例において、枠構成部103は、枠情報を構成する対象となるタグのなかに、同じ属性名を有する所定の複数のタグが存在する場合、枠情報を構成する対象となるタグのうちの、同じ属性名を有する所定の複数のタグが付けられた要素を配置するための一の枠を示す枠情報を構成するようにしてもよい。
図12は、同じ属性名を有するタグが、複数存在する場合に、一の枠だけを設定する対象となるタグを指定する結合タグ管理表である。
結合タグ管理表は、「結合枠ID」、「結合タグ」と、「結合ルール」という属性を有している。「結合枠ID」は、レコードを管理するための識別情報である。「結合タグ」は、一つの枠だけを設定する対象となるタグの属性名である。「結合ルール」は、同じ属性名を有する複数のタグにそれぞれ含まれる、表示対象となるデータである要素の少なくとも一部を、一つの枠内に配置する際の、要素同士を結合する際のルールである。このルールは、例えば、複数のデータのそれぞれからデータを取得するための条件と、当該取得したデータを当てはめる、言い換えれば配置するパターンの情報との組み合わせを指定する情報等で指定される。このルールによって、複数の要素が、部分的に変更が加えられて結合されて配置されたり、並びを変更して配置されたりする。複数のデータのそれぞれからデータを取得するための条件は、例えば、複数のデータから所定の属性の文字列を取得する条件である。所定の属性の文字列とは、例えば、数値、英字、半角文字、全角文字、任意の属性がタグ等を用いて指定された文字列、予め指定された単語群の中の単語等である。取得したデータを当てはめるパターンの情報とは、例えば、取得したデータを、範囲を示す文字列、例えば「〜」や、データ同士の区切りを示す文字列、例えば「,」、「、」、「・」等をはさんで並べるパターンや、並べる順番のパターンを指定する情報である。具体的には、各要素が、数値と単位とを組み合わせたデータである場合においては、複数の要素等から、所定の条件に合致する情報、ここでは「数値の最も小さい値」と、「数値の最も大きい値」とに対応する数値や、「値の単位」を取得し、取得した「数値の最も小さい値」と、「数値の最も大きい値」とを、範囲を示す記号や文字列、例えば「〜」という文字をはさんで並べて配置するパターンに当てはめるルールや、取得した「数値の最も小さい値」と、「数値の最も大きい値」とを、範囲を示す記号や文字列、例えば「〜」という文字をはさんで並べ、さらに「数値の単位」を示す文字列を付加して並べるようにしたパターンに当てはめるルールを設定しておく。このルールに応じて、複数の要素のそれぞれの少なくとも一部同士を組み合わせたデータが構成される。また、複数の要素等の情報から、それぞれ数値を取得して、値等が並列であることを示す記号や文字列、例えば「,」という文字をはさんで並べて配置するパターンに当てはめるルールや、あるいはこれらに「数値の単位」を付加したパターンに当てはめるルール等を設定しておいてもよい。また、各要素である文字列のデータを、文字列が異なるデータであることを区切るための記号や文字列、例えば「,」という文字をはさんで並べて配置しても良い。データ配置部104は、このルールに沿った数値や文字列のデータを、複数の要素等から、検索置換等により取得して配置していくことで、一の枠内に配置するデータを取得する。
例えば、階層構造データが、図13に示すような階層構造データであった場合において、「<商品>」というタグを、ページウインドウ40にドラッグドロップしたとすると、「<商品名>」タグ、「<産地>」タグ、「<キャッチ>」タグについては、一度しか出現しないタグであるため、上記具体例と同様の処理により枠が設定され、その枠内にタグに対応する要素データが配置される。
これに対して、「<価格>」タグ、および「<単位>」タグについては、ドラッグアンドドロップされた「<商品>」というタグの下位のタグとして複数回出現していると判断される。このため、まず、枠構成部103は、「<価格>」というタグの属性名である「価格」と一致する「結合タグ」の属性値を有するレコードを、図12の結合タグ管理表で検索する。ここでは、「結合枠ID」が「001」であるレコードの「結合タグ」の属性値が「価格」であるため、このタグについての枠は、結合の対象である、すなわち一の枠のみを形成するタグであると判断する。この結果に従って、枠構成部103は、「<価格>」というタグが二つあるにもかかわらず、「<価格>」というタグに対応した一つの枠のみを構成する。そして、データ配置部104は、上記の検索結果のレコードの「結合ルール」に従って、配置の対象となる2つの「<価格>」というタグに対応した要素、「398円」と「298円」とを結合したデータを構成し、枠構成部103が構成した一つの枠内に配置する。ここでは、「298〜398円」というデータが構成され、配置されるものとする。
同様に、「<単位>」というタグの属性名である「単位」と一致する「結合タグ」の属性値を有するレコードを、図12の結合タグ管理表で検索する。ここでは、「結合枠ID」が「002」であるレコードの「結合タグ」の属性値が「単位」であるため、このタグについての枠は、結合の対象である、すなわち一の枠のみを形成するタグであると判断する。この結果に従って、枠構成部103は、「<タグ>」というタグが二つあるにもかかわらず、「<タグ>」というタグに対応した一つの枠のみを構成する。そして、データ配置部104は、上記の検索結果のレコードの「結合ルール」に従って、配置の対象となる2つの「<単位>」というタグに対応した要素、「Mサイズ4玉」と「Sサイズ5玉」とを結合したデータを構成し、枠構成部103が構成した一つの枠内に配置する。ここでは、「S,Mサイズ4,5玉」というデータが構成され、配置されるものとする。この結合ルールは、複数の要素のそれぞれから、所定のデータである英字を取得し、英字をS,M,Lの順に並べてカンマでつなぐ、というパターンと、各データの英字の直後の単語を取得し、直前のパターンの後に配置するというパターンと、複数の要素のそれぞれから、所定のデータである数字を取得し、取得した数字を小さい順に並べてカンマでつなぐというパターンと、各数字の直後の単語を取得し、直前のパターンの後に配置するパターンとの組み合わせで構成されている。
このようにして構成されたレイアウトされたページの出力部105による表示例を図14に示す。このようにすることで、同じ属性名の複数のデータを、一つの枠内にまとめて自動でレイアウトすることができる。さらに、複数のデータを、予め設定されたルールに従って、一つのルールにまとめて枠内に配置できる。この結果、同じ属性名のデータをまとめて表示することができ、上位の階層のデータに対する、データの対応関係がわかりやすくなるように、レイアウトすることが可能となる。例えば1つの商品についての、複数の価格を、一つにまとめて表示することができ、商品と価格との対応関係を明確化できる。
なお、上記のように、同じ属性名の複数のデータを、一つの枠内に表示するかしないかを、ユーザの指示に応じて適宜切り替えられるようにしても良い。例えば、図14に示したレイアウトを切り替えて、同じ属性名の複数のデータについてそれぞれ個別に枠を設定するようレイアウトしなおした場合の表示例を図15に示す。このようにレイアウトの仕方を切り替えられるようにすることで、配置する階層構造データ等に応じた適切なレイアウトを、適宜比較して決定することができる。
また、上記の具体例を、以下のように変形しても良い。すなわち、図16に示すように、階層構造データ内に、同じタグ、例えば「<商品>」タグが付けられた2以上のデータが存在する場合において、まず、データウインドウ30を利用して、データ161の「<商品>」タグをドラッグアンドドロップして、ページ上に、データ161の「<商品>」タグの下位の階層のデータを枠を生成さて配置されていたとする。そして、図17に示すように、このデータ161の「<商品>」タグの下位の階層のデータが配置されている領域上に、さらにデータ162の「<商品>」タグをドラッグアンドドロップした場合、二つのデータ161および162の、タグが同じ、すなわち同じ属性名を有するデータの、要素同士、すなわち表示対象となるデータ同士を比較して、同じ内容であった場合には新たなデータ配置を行わず、異なるデータ同士であった場合には、予め設定されたルールに従って、例えば、データ161のデータに対する差分のみを連結した要素を構成して、図18に示すように、データ161をドラッグアンドドロップした際に設定された枠内に配置するようにしても良い。また、同じタグがない場合には、新たに枠を追加設定して、追加設定した枠内にそのタグに対応した要素を配置しても良い。
例えば、図16の階層構造データにおいては、データ161とデータ162とは、同じタグである「<商品名>」タグと「<産地>」タグと「<キャッチ>」タグと、「<写真>」タグとを有しており、これらは要素が同じであるので、それぞれのタグに対応した枠を一つずつ設け、それぞれに共通する要素を配置する。また、データ161とデータ162とは、同じタグである「<価格>」タグと、「<単位>」タグとを有しているが、これらの要素は異なるデータであるため、例えば、データ161の「<価格>」タグと「<単位>」タグとのそれぞれの要素に対する、データ162の「<価格>」タグと「<単位>」タグとのそれぞれの要素の差分を求め、この差分を、データ161の要素に、予め決められたルール、例えば差分が得られた位置に、その差分のデータを配置するというルール等に従って付加して得られたデータを、「<価格>」タグと、「<単位>」タグとに対応してそれぞれ設定した枠に配置する。これにより、図18に示すように、「<価格>」タグに対応した枠には、「298〜398円」という文字列データが、また、「<単位>」タグに対応した枠には、「S,Mサイズ4,5玉」という文字列データが、それぞれ配置されることとなる。
このように、階層構造データの任意の階層の複数のデータを指定して、レイアウト対象となるページの同じ位置に配置する指示を受付部102が受け付けた場合に、枠構成部103が、同じ属性名を有するデータについては、一の枠を構成し、データ配置部104が、当該枠内に、当該枠に対応した複数のデータを配置するようにしたことで、配置するデータ同士の結合を、上位階層のデータの配置によって指定して実行させることが可能となり、操作性が向上する。また、一の枠内に、複数のデータを配置する際に、予め設定されたルールに従ってデータを結合して配置、例えば、両者の差分を取ってデータの重複が生じないようにデータを結合して配置するようにしたことにより、データ結合の際に、データの内容を自動的に調整することができる。
なお、データ162が一つめのデータ161と同じ位置にドラッグドロップされたか否かは、例えば、「<商品>」タグに対して、予め、下位のタグが配置される領域全てを覆う領域をページ上に設定するようにし、次のデータ162がドラッグアンドドロップされた際の、カーソル等の座標が、この領域内の座標上であるか否かで判断するようにすればよい。
以上、本実施の形態によれば、枠構成部103が、受付部102が受け付けた任意の階層のデータの、下位の所定の階層にある1以上のデータにそれぞれ対応する1以上の枠をページ上に設定する枠情報を構成し、データ配置部104が、この枠情報が示す枠内に、当該枠に対応したデータのうちの出力対象となるデータを配置するようにしたことにより、階層構造を有するデータを、階層構造に応じた枠を自動的に設定してレイアウトすることができる。
なお、本実施の形態によれば、階層構造データに新たに、所定の階層のデータを追加できるようにし、追加した場合に、この追加したデータの、上位の所定の階層のデータに対する指定が、既に受付部102により受け付けられていた場合、枠構成部103が、この追加したデータについての枠を設定するようにしても良い。また、ユーザから、枠を追加する指示を受け付けた場合にのみ、この追加したデータについての枠を設定するようにしてもよい。
また、枠内に配置されているデータを、ページウインドウ40上において変更した場合に、この変更した内容を、枠に対応する階層構造データ内のデータに反映させるようにしても良い。
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
なお、上記各実施の形態におけるレイアウト装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納部に格納されている階層構造を有するデータである階層構造データの任意の階層のデータを指定する指示と、レイアウト対象となるページに配置する指示と、を受け付ける受付ステップと、前記受付ステップで受け付けた指示に対応するデータの、下位の所定の階層にある1以上のデータにそれぞれ対応する1以上の枠をページ上に設定する情報である枠情報を構成する枠構成ステップと、前記枠構成ステップで構成した枠情報が示す枠内に、当該枠に対応したデータのうちの出力対象となるデータを配置するデータ配置ステップと、前記データ配置部がデータを配置したページのデータを出力する出力ステップとを実行させるためのプログラムである。
なお、上記プログラムにおいて、情報を出力する出力ステップなどでは、ハードウェアによって行われる処理、例えば、出力ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図19は、上記プログラムを実行して、上記実施の形態によるデータ表示装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現される。
図19において、コンピュータシステム1100は、CD−ROM(Compact Disk Read Only Memory)ドライブ1105、FD(Flexible Disk)ドライブ1106を含むコンピュータ1101と、キーボード1102と、マウス1103と、モニタ1104とを備える。
図20は、コンピュータシステムを示す図である。図20において、コンピュータ1101は、CD−ROMドライブ1105、FDドライブ1106に加えて、CPU(Central Processing Unit)1111と、ブートアッププログラム等のプログラムを記憶するためのROM(Read Only Memory)1112と、CPU1111に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)1113と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク1114と、CPU1111、ROM1112等を相互に接続するバス1115とを備える。なお、コンピュータ1101は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム1100に、上記実施の形態によるデータ表示装置の機能を実行させるプログラムは、CD−ROM1121、またはFD1122に記憶されて、CD−ROMドライブ1105、またはFDドライブ1106に挿入され、ハードディスク1114に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ1101に送信され、ハードディスク1114に記憶されてもよい。プログラムは実行の際にRAM1113にロードされる。なお、プログラムは、CD−ROM1121やFD1122、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ1101に、上記実施の形態によるデータ表示装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム1100がどのように動作するのかについては周知であり、詳細な説明は省略する。
また、上記各実施の形態では、レイアウト装置がスタンドアロンである場合について説明したが、レイアウト装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。