(57)【特許請求の範囲】
【請求項１】
ツリー構造の構造化文書を描画するシステムであって、
前記構造化文書に含まれる第１の要素にスタイルが設定されていない場合には、前記第１の要素の祖先である第２の要素に設定されているスタイルに従って前記第１の要素を描画し、前記第１の要素にスタイルが設定されている場合には、前記第１の要素に設定されているスタイルに従って前記第１の要素を描画する描画処理部と、
前記第２の要素の属性に設定されている、１つ以上の前記スタイルのグループを示すスタイルセット名を取得し、前記取得したスタイルセット名が示す前記グループに属するスタイルのリストを生成し、前記第１の要素の属性にスタイルセット名が設定されている場合には、前記第１の要素の属性に設定されている前記スタイルセット名が示すグループに属するスタイルを前記リストの先頭に追加するスタイルリスト生成部と、を備え、
前記描画処理部は、前記第１の要素の描画に必要なスタイルを前記リストの先頭から検索し、最初に見つかった前記スタイルに従って前記第１の要素を描画すること、
を特徴とする構造化文書描画システム。
【請求項２】
請求項１に記載の構造化文書描画システムであって、
前記描画処理部は、前記第１の要素にスタイルが設定されておらず、かつ、複数の前記第２の要素にスタイルが設定されている場合、前記スタイルが設定されている第２の要素のうち、前記第１の要素から最も近い階層に所属するものを特定し、特定した前記第２の要素に設定されている前記スタイルに従って前記第１の要素を描画すること、
を特徴とする構造化文書描画システム。
【請求項３】
請求項１に記載の構造化文書描画システムであって、
第１の構造化文書を記憶する構造化文書記憶部と、
前記第１の構造化文書に含まれる前記第１の要素の属性に第２の構造化文書が指定されている場合に、前記第２の構造化文書を取得する文書取得部と、
前記第２の構造化文書のルートの要素が前記第１の要素の子の要素になるように、前記第２の構造化文書を前記第１の構造化文書に連結して、描画対象となる前記構造化文書を生成する文書連結部と、
を備えることを特徴とする構造化文書描画システム。
【請求項４】
ツリー構造の構造化文書を描画する方法であって、
コンピュータが、
前記構造化文書に含まれる第１の要素にスタイルが設定されていない場合には、前記第１の要素の祖先である第２の要素に設定されているスタイルに従って前記第１の要素を描画し、
前記構造化文書に含まれる第１の要素にスタイルが設定されている場合には、前記第１の要素に設定されているスタイルに従って前記第１の要素を描画し、
前記第２の要素の属性に設定されている、１つ以上の前記スタイルのグループを示すスタイルセット名を取得し、前記取得したスタイルセット名が示す前記グループに属するスタイルのリストを生成し、前記第１の要素の属性にスタイルセット名が設定されている場合には、前記第１の要素の属性に設定されている前記スタイルセット名が示すグループに属するスタイルを前記リストの先頭に追加し、前記第１の要素の描画に必要なスタイルを前記リストの先頭から検索し、最初に見つかった前記スタイルに従って前記第１の要素を描画すること、
を特徴とする構造化文書描画方法。
【請求項５】
ツリー構造の構造化文書を描画するためのプログラムであって、
コンピュータに、
前記構造化文書に含まれる第１の要素にスタイルが設定されていない場合には、前記第１の要素の祖先である第２の要素に設定されているスタイルに従って前記第１の要素を描画するステップと、
前記構造化文書に含まれる第１の要素にスタイルが設定されている場合には、前記第１の要素に設定されているスタイルに従って前記第１の要素を描画するステップと、
前記第２の要素の属性に設定されている、１つ以上の前記スタイルのグループを示すスタイルセット名を取得し、前記取得したスタイルセット名が示す前記グループに属するスタイルのリストを生成し、前記第１の要素の属性にスタイルセット名が設定されている場合には、前記第１の要素の属性に設定されている前記スタイルセット名が示すグループに属するスタイルを前記リストの先頭に追加し、前記第１の要素の描画に必要なスタイルを前記リストの先頭から検索し、最初に見つかった前記スタイルに従って前記第１の要素を描画するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書描画システムに関する。
【背景技術】
【０００２】
画面の記述言語としてＨＴＭＬ（HyperText Markup Language）が知られている。ＨＴＭＬでは、タグにより文章の構造や文字列の装飾などを定義している。ＨＴＭＬにより記述されたウェブページは、ウェブブラウザにより解釈されて画面に描画される。
【０００３】
ＨＴＭＬでは文字列や画像、ボタン、テキストボックスなど各種の要素をどのように描画するかを示すスタイルを、スタイルシートとして記述することができる。スタイルシートでは、要素名やクラスなどを指定する記述（セレクタと呼ばれる。）に対応付けて、セレクタにより指定されたタグのスタイルが記述される。スタイルシートをＷｅｂページとは独立して用意することで、Ｗｅｂページの内容を更新することなく、Ｗｅｂページの見た目を制御することができる。例えば特許文献１では、複数のコンポーネントを結合したＷｅｂページを生成する際に、コンポーネントのレイアウトをスタイルシートで指定している。
【特許文献１】特開２００４−１９８５５５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、セレクタとして要素名が記述された場合、その要素名の要素全てにスタイルシートのスタイルが適用されるので、一部の要素のみにスタイルを適用することができない。一方、セレクタとしてクラスが記述された場合には、そのクラスが属性として指定されている一部の要素にのみスタイルシートのスタイルを適用することができるが、スタイルを適用する全ての要素の属性にクラスを記述しなくてはならない。
【０００５】
本発明は、このような背景を鑑みてなされたものであり、構造化文書の一部の要素にのみ適用されるスタイルを容易に設定することのできる構造化文書描画システム、構造化文書描画方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための本発明のうち請求項１に記載の発明は、ツリー構造の構造化文書を描画するシステムであって、前記構造化文書に含まれる第１の要素にスタイルが設定されていない場合には、前記第１の要素の祖先である第２の要素に設定されているスタイルに従って前記第１の要素を描画し、前記第１の要素にスタイルが設定されている場合には、前記第１の要素に設定されているスタイルに従って前記第１の要素を描画する描画処理部と、前記第２の要素の属性に設定されている、１つ以上の前記スタイルのグループを示すスタイルセット名を取得し、前記取得したスタイルセット名が示す前記グループに属するスタイルのリストを生成し、前記第１の要素の属性にスタイルセット名が設定されている場合には、前記第１の要素の属性に設定されている前記スタイルセット名が示すグループに属するスタイルを前記リストの先頭に追加するスタイルリスト生成部と、を備え、前記描画処理部は、前記第１の要素の描画に必要なスタイルを前記リストの先頭から検索し、最初に見つかった前記スタイルに従って前記第１の要素を描画することとする。
【０００７】
本発明の構造化文書描画システムによれば、第１の要素にスタイルが設定されていない場合には、第１の要素の祖先である第２の要素に設定されているスタイルに従って、第１の要素を描画することができる。つまり、祖先の要素に指定されているスタイルは、祖先の要素の子孫に継承される。したがって、子孫の要素を統一的なスタイルで描画することができる。これにより、デザイナは、子孫の要素のそれぞれに同じスタイルを設定する必要はなく、祖先の要素にスタイルを設定するだけで、子孫の要素に統一的なスタイルを設定することができるので、描画結果のデザインを容易に行うことができる。
【０００８】
また、スタイルは構造化文書の構造に応じて承継されるので、デザイナはどの範囲の要素にスタイルが適用されるのかを容易に理解することが可能となり、作業の効率化を図ることができる。
【０００９】
さらに、第１の要素にスタイルが設定されている場合には、設定されているスタイルに従って第１の要素が描画されるので、特定の要素以下の要素についてスタイルを変更したい場合にはその特定の要素にのみスタイルを設定すればよい。したがって、デザイナは、柔軟なスタイルの設定を行うことができる。
【００１０】
また、本発明のうち請求項２に記載の発明は、請求項１に記載の構造化文書描画システムであって、前記描画処理部は、前記第１の要素にスタイルが設定されておらず、かつ、複数の前記第２の要素にスタイルが設定されている場合、前記スタイルが設定されている第２の要素のうち、前記第１の要素から最も近い階層に所属するものを特定し、特定した前記第２の要素に設定されている前記スタイルに従って前記第１の要素を描画することとする。
【００１１】
この場合、リーフに近い要素のスタイルが優先的に適用されるので、ツリー構造の上位階層に一般的なスタイルを設定し、下位の階層にはその部分に特有のスタイルを設定すればよいので、画面のデザインを効率的に行うことができる。
【００１３】
また、本発明のうち請求項３に記載の発明は、請求項１に記載の構造化文書描画システムであって、第１の構造化文書を記憶する構造化文書記憶部と、前記第１の構造化文書に含まれる前記第１の要素の属性に第２の構造化文書が指定されている場合に、前記第２の構造化文書を取得する文書取得部と、前記第２の構造化文書のルートの要素が前記第１の要素の子の要素になるように、前記第２の構造化文書を前記第１の構造化文書に連結して、描画対象となる前記構造化文書を生成する文書連結部と、を備えることとする。
【００１４】
この場合、第２の構造化文書のルートが、第１の構造化文書に含まれる要素の子として連結されるので、ルートが連結された第１の構造化文書の要素またはその祖先の要素にスタイルを設定しておくことで、第２の構造化文書に含まれる要素にそのスタイルを適用することができる。すなわち、第２の構造化文書に適用されるスタイルを、第１の構造化文書に設定しておくことができる。したがって、第２の構造化文書を呼び出す第１の構造化文書を複数用意し、各第１の構造化文書に異なるスタイルを設定することにより、第２の構造化文書がどのように描画されるのかも異なることになる。よって、第２の構造化文書については、スタイルと、文書の構造とを分離することが可能となり、第２の構造化文書のモジュール性を向上することができる。
【００１５】
その他本願が開示する課題やその解決方法については、発明の実施形態の欄及び図面により明らかにされる。
【発明の効果】
【００１６】
本発明によれば、構造化文書の一部の要素にのみ適用されるスタイルを容易に設定することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の一実施形態に係る構造化文書の描画システムについて説明する。本実施形態の描画システムは、画面に描画すべき要素をツリー構造に記述した構造化文書の描画を行うものである。本実施形態において、ツリー構造を構成するノードをキーという。また、ひとまとまりの複数のキーをキーセットという。各キーセットが記述される構造化文書をキーセットファイルという。また、本実施形態では、説明を簡単にするために、要素は矩形または楕円形の形状の内部に文字列が描画されるものとするが、もちろん、要素として、描画は一般的な画像や図形などを描画するようにしてもよい。
【００１８】
図１は、キーセットファイルの一例を示す図である。図１に示すように、キーセットファイル１において、キーセットは、ツリー構造のルートとなるキーを示すラベルに続いて、同階層のキーをブレース（中括弧）でまとめ、深さ優先順に各キーを記述したデータ（以下、キーストリングという。）により表現される。
【００１９】
図１に示すように、キーのラベル（要素名）には「Ｋ」「Ｓｅ」「Ｕ」「Ｒ」「Ｒｂ」「Ｃ」「Ｃｂ」などがある。後述するように、ラベルに応じてキーの描画領域が決定される。ＲやＲｂ、Ｃ、Ｃｂのラベルが付されたキーには、親の描画領域を分割した領域が割り当てられ、Ｓｅのラベルが付されたキーには、描画領域が割り当てられず、その他のキーには親の描画領域がそのまま割り当てられる。
【００２０】
「Ｋ」のラベルは、キーセットのルートになるキーを示す。Ｋのラベルが付されたキー（以下、Ｋキーという。）には、キーセットの名前（以下、キーセット名という。）が属性として設定される。キーの属性は、ラベルに続く括弧内に記述される。キーセットファイル１の例では、Ｋキー１１は、「Ｋ（“＿Ｃａｌｃ”）」と記述されている。これは「＿Ｃａｌｃ」というキーセット名がＫキー１１の属性として設定されていることを示す。  
「Ｓｅ」のラベルは、キーがどのように描画されるかを設定する描画属性（スタイルと呼ばれる。）を設定するためのキーを示す。
【００２１】
本実施形態では、スタイルは、文字列を描画するフォントサイズ、要素の描画位置、描画領域の境界線（ボーダー）の太さ、描画領域の形状の４種類であるものとするが、余白や前景色、背景色など各種のスタイルを設定するようにしてもよい。
【００２２】
Ｓｅのラベルが付されたキー（以下、スタイルキーという。）に引き続くブレース内には、スタイルの設定が記述される。スタイルの設定は、１つ以上のスタイルのまとまり（以下、スタイルセットという。）の名称（以下、スタイルセット名という。）に対応付けて、設定項目となるスタイルの名称（以下、スタイル名という。）とその値（以下、スタイル値という。）とが「＝」で対応付けられた形（例えば、「〜ａｌｉｇｎ＝”ｌｅｆｔ”」のように記述される。以下、スタイル記述文という。）が記述される。また、スタイル記述文の最後尾にはセミコロン（；）が記述される。
【００２３】
フォントサイズのスタイル名は「〜ｆｏｎｔｓｉｚｅ」であり、描画位置のスタイル名は「〜ａｌｉｇｎ」である。ボーダーの太さのスタイル名は「〜ｂｏｒｄｅｒ」であり、描画領域の形状のスタイル名は「〜ｓｈａｐｅ」である。「〜ｆｏｎｔｓｉｚｅ」および「〜ｂｏｒｄｅｒ」には０以上の実数が指定される。「〜ａｌｉｇｎ」には、「ｌｅｆｔ」「ｒｉｇｈｔ」または「ｃｅｎｔｅｒ」のいずれかが設定され、それぞれ左寄せ、右寄せ、中央揃えの描画位置を示す。「〜ｓｈａｐｅ」には「ｏｖａｌ」または「ｒｅｃｔ」のいずれかが設定され、それぞれ楕円形または矩形を示す。
【００２４】
図１に示すキーセットファイル１の例では、Ｓｅキー１２には、４つスタイルセット１３〜１６がＳｅキー１２の子の要素として記述されている。「＠ｌｅｆｔｔｅｘｔ」というスタイルセット名が付されたスタイルセット１３では、描画位置（〜ａｌｉｇｎ）の値に「ｌｅｆｔ」が設定されており、フォントサイズ（〜ｆｏｎｔｓｉｚｅ）の値に「２４」が設定されている。
【００２５】
キーセットファイル１の例において、スタイルセット１３では、描画領域の形状（〜ｓｈａｐｅ）やボーダーの太さ（〜ｂｏｒｄｅｒ）は指定されていないが、このようにスタイルの設定を省略することもできる。
【００２６】
また、スタイル名を「〜ｋｅｙ」としてと記述されたスタイル記述文は、スタイルを適用するキーを限定するものである。この場合、スタイル値として、スタイルの適用先となる１つ以上のキーが「＋」を区切り文字として設定され、適用するスタイルを示すスタイル記述文は後続するブレース内に記述される。図１のキーセットファイル１の例では、スタイルセット１５において、「〜ｋｅｙ＝“Ｒｂ＋Ｃｂ”」が記述されている。この場合、「＠ｂｔｎ」が指定されたキーおよびその子孫のキーのうち、Ｒｂのラベルが付されたキーおよびＣｂのラベルが付されたキーにのみ、後続するスタイルが適用される。なお、スタイルの適用先として「ａｌｌ」が指定された場合は、全ての種類のキーを示すものとする。
【００２７】
また、「〜ｋｅｙ」が指定された場合、そのスタイルセットが属性として設定されたキーおよびその子孫（のうち「〜ｋｅｙ」の値が示すキー）にスタイルが継承されるが、「〜ｋｅｙ」の値に「ｍｅ」が指定された場合には、そのスタイルセットが指定されたキーのみにスタイルが適用され、その子孫にはスタイルが継承されない。なお、「〜ｋｅｙ」の指定が省略されている場合には、〜ｋｅｙとして、「ｍｅ」が設定されているとみなされる。例えば、図１のキーセットファイル１では、スタイルセット１３および１４には、「〜ｋｅｙ」が記述されていないので、これらには「ｍｅ」が設定されたものとして、処理が行われる。
【００２８】
なお、スタイルに従ったキーの描画処理の詳細については後述する。
【００２９】
「Ｕ」のラベルは、キーセットに割り当てられた描画領域全体に対応するキーを示す。Ｕのラベルが付されたキー（以下、Ｕキーという。）の子孫となるキーには、Ｕキーに対応する描画領域の少なくとも一部が割り当てられる。キーセットファイルには、原則として１つのＵキーのみが含まれる。図１のキーセットファイル１においても、Ｕキー２１が１つのみ含まれている。
【００３０】
Ｕキーの子孫となるキーには、「Ｒ」「Ｒｂ」「Ｃ」「Ｃｂ」または「Ｉ」のラベルが付される。なお、その他のラベルを付したキーをＵキーの子孫とすることも可能であるが、本実施形態では簡単のために、Ｕキーの子孫のキーには「Ｒ」「Ｒｂ」「Ｃ」「Ｃｂ」または「Ｉ」のいずれかのラベルが付されるものとする。
【００３１】
ＲまたはＲｂのラベルが付されたキー（以下、Ｒキーという。）およびＣまたはＣｂのラベルが付されたキー（以下、Ｃキーという。）を、レイアウトキーと呼ぶ。レイアウトキーは、親のキーに割り当てられている描画領域を分割することを示す。Ｒキーは、親のキーに割り当てられた描画領域を行（Ｒｏｗ）に分割することを示し、Ｃキーは、列（Ｃｏｌｕｍｎ）に分割することを示す。
【００３２】
レイアウトキーには、属性として文字列およびスタイルセット名を設定することができる。キーセットファイル１の例では、例えば、Ｕキーの子となる３つのＲキーのうち、最初のＲキー２２には、文字列「数字を入力してください」と、スタイルセット名「＠ｌｅｆｔｔｅｘｔ」とが属性として設定されている。
【００３３】
レイアウトキーは、兄弟のキーの数に応じて、兄弟のキーと等分に親の描画領域を分割することを示す。例えば、キーストリングが「Ｕ｛ＲＲ｝」である場合には、Ｕキーが示す描画領域は上下に２分割され、キーストリングが「Ｕ｛ＣＣＣ｝」である場合には、Ｕキーが示す描画領域は左右に３分割される。
【００３４】
「Ｒ」「Ｒｂ」「Ｃ」または「Ｃｂ」の後には数値を記述することができる。この場合、ラベルの後の数値（以下、指定数という。）は、描画領域の分割比を示す。キーセットファイル１の例のように、キーストリングが「Ｕ｛ＲＲＲ４｝」である場合、Ｕキーが示す描画領域は、上から６分の１、６分の１、および６分の４の３つの領域に分割される。なお、指定数の記述が省略されている場合には、指定数として「１」が記述されたものとする。すなわち、上記キーストリング「Ｕ｛ＲＲＲ４｝」は、「Ｕ｛Ｒ１Ｒ１Ｒ４｝」と同じ意味となる。
【００３５】
なお、本実施形態では、同一階層にＲキーおよびＣキーは混在しないものとする。
【００３６】
各レイアウトキーには、スタイルが割り当てられる。各レイアウトキーは、その親のキーに割り当てられているスタイルが継承されるともに、レイアウトキーの属性としてスタイルセット名が指定されている場合には、そのスタイルセット名に指定されているスタイルも割り当てられる。これにより、明示的にスタイルセット名が指定されない限り、親の要素とその子孫のすべての要素のスタイルは統一されるので、一部の要素のスタイルを、その構造に応じて統一することが可能となる。
【００３７】
レイアウトキーに割り当てられているスタイルのうちボーダー（〜ｂｏｒｄｅｒ）が正の値である場合、形状（〜ｓｈａｐｅ）に応じて、ボーダーに指定された太さで、描画領域一杯に楕円形または矩形が描画される。
【００３８】
レイアウトキーの属性として文字列が指定されている場合には、指定された文字列が分割された描画領域に描画される。レイアウトキーの属性にスタイルセット名が指定されている場合には、そのスタイルセット名に対応するスタイルの設定に従って文字列が描画される。
【００３９】
なお、キーの描画処理の詳細については後述する。
【００４０】
「Ｉ」のラベルは、他のキーセットを連結するためのキーを示す。Ｉのラベルが付されたキー（以下、Ｉキーという。）がキーストリングに含まれている場合には、Ｉキーの属性に設定されているキーセット名（本実施形態において、キーセットファイルのファイル名は、キーセット名に一致するものとする。）またはＵＲＬ（Uniform Resource Locator）が示すキーセットファイルが読み出され、読み出されたキーセットファイル中の含まれるキーがＩキーの子として連結される。
【００４１】
例えば、「Ｋ（“Ａ”）｛Ｕ｛ＲＲ｛Ｉ（“Ｂ”）｝｝｝」というキーストリングにより記述されるキーセットＡと、「Ｋ（“Ｂ”）｛Ｕ｛ＣＣ｝｝」というキーストリングにより記述されるキーセットＢとが存在する場合、キーセットＢがキーセットＡに連結されて、キーストリングは「Ｋ｛Ｕ｛ＲＲ｛Ｉ｛Ｋ｛Ｕ｛ＣＣ｝｝｝｝｝｝」となる。
【００４２】
また、キーセットファイル１の例では、Ｉキー２５にはＵＲＬ「http://server/kbd.ks」が属性として設定されている。このＵＲＬが示すキーセットファイルが取得され、取得されたキーセットファイルに含まれるキーストリングが、Ｉキー２５の子として連結される。
【００４３】
このように、Ｉキーの属性として指定されたキーセットファイルに含まれるキーストリングは、Ｉキーの子として連結されるので、Ｉキーに対応するスタイルが、Ｉキーの子孫の各キーにも継承される。したがって、Ｉキー以下に連結された各キーは、特にスタイルセット名が指定されていない限り、Ｉキーと同じスタイルで描画される。よって、他のキーセットファイルをＩキーにより連結した場合でも、Ｉキー以下の部分のスタイルを統一することができる。
【００４４】
以下、本実施形態の描画システムの詳細について説明する。
【００４５】
＝＝システム構成＝＝
図２は、本実施形態の描画システムの全体構成を示す図である。  
本実施形態の描画システムは、ユーザ端末１０およびキーセット提供サーバ２０を含んで構成されている。ユーザ端末１０およびキーセット提供サーバ２０は、通信ネットワーク３０を介して互いに通信可能に接続される。通信ネットワーク３０は、例えば、インターネットやＬＡＮ（Local Area Network）であり、イーサネット（登録商標）、フレームリレー網、公衆電話回線網、無線通信網などにより構築される。
【００４６】
ユーザ端末１０は、ユーザが操作する、例えば、パーソナルコンピュータやワークステーション、ＰＤＡ（Personal Digital Assistance）、携帯電話、ＰＯＳ（Point Of Sales）端末などのコンピュータである。ユーザ端末１０には、キーセットファイルが記憶され、キーセットファイルに含まれる各キーが描画される。
【００４７】
キーセット提供サーバ２０は、キーセットファイルを提供する、例えば、パーソナルコンピュータやワークステーションなどのコンピュータである。キーセット提供サーバ２０は、ユーザ端末１０からのリクエストに応じてキーセットファイルをユーザ端末１０に送信する。本実施形態では、キーセット提供サーバ２０は、Ｗｅｂサーバの機能を有し、ＨＴＴＰ（HyperText Transfer Protocol）に従ってキーセットファイルを送信するものとする。
【００４８】
ユーザはユーザ端末１０を操作し、キーセット提供サーバ２０にアクセスしてキーセットファイルを取得し、ユーザ端末１０がキーセット提供サーバ２０から取得したキーセットファイルに含まれる各キーを描画することもできる。
【００４９】
また、キーストリングにＩキーが含まれており、Ｉキーに、キーセット提供サーバ２０に記憶されているキーセットファイルへのＵＲＬが指定されている場合には、ユーザ端末１０は、ＵＲＬを指定したリクエストをキーセット提供サーバ２０に送信し、キーセット提供サーバ２０から応答されるキーセットファイルを受信し、受信したキーセットファイルに含まれるキーストリングをＩキーの子として連結することもできる。
【００５０】
＝＝ハードウェア＝＝
図３は、ユーザ端末１０およびキーセット提供サーバ２０のハードウェア構成を示す図である。同図に示すように、ユーザ端末１０およびキーセット提供サーバ２０はそれぞれ、ＣＰＵ１０１、メモリ１０２、記憶装置１０３、通信インタフェース１０４、入力装置１０５、出力装置１０６を備えている。
【００５１】
記憶装置１０３は、各種のプログラムやデータを記憶する、例えば、ハードディスクドライブやＣＤ−ＲＯＭドライブ、フラッシュメモリなどである。ＣＰＵ１０１は、記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより各種の機能を実現する。通信インタフェース１０４は、通信ネットワーク３０に接続するためのインタフェースである。通信インタフェース１０４は、例えば、イーサネット（登録商標）に接続するためのアダプタや、電話回線網に接続するためのモデム、無線通信器などである。
【００５２】
入力装置１０５は、データの入力を受け付ける、例えば、キーボードやマウス、タッチパネルなどである。出力装置１０６は、データを出力する、例えば、ディスプレイやプリンタなどである。
【００５３】
＝＝キーセット提供サーバ２０＝＝
図４は、キーセット提供サーバ２０の機能ブロック図である。  
上述したように、キーセット提供サーバ２０は、一般的なウェブサーバとしての機能を提供するウェブ処理部２１１およびキーセットファイル記憶部２１２を備えている。  
キーセットファイル記憶部２１２には、キーセットファイルが記憶される。本実施形態では、キーセットファイル記憶部２１２には、「ｋｂｄ．ｋｓ」というファイル名のキーセットファイル２が記憶されている。図４に示すように、キーセットファイル２は、Ｋ（“ｋｄｂ．ｋｓ”）というキーをルートとしたツリー構造になっている。本実施形態では、キーセットファイル２のＵＲＬは「http://server/kbd.ks」であるものとする。
【００５４】
なお、ウェブ処理部２１１は、キーセット提供サーバ２０が備えるＣＰＵ１０１が記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより実現される。また、キーセットファイル記憶部２１２は、メモリ１０２や記憶装置１０３が提供する記憶領域として実現される。キーセットファイル記憶部２１２は、例えば、キーセット提供サーバ２０で動作するオペレーティングシステムが提供するファイルシステムのディレクトリとして実現することができる。
【００５５】
＝＝ユーザ端末１０＝＝
図５は、ユーザ端末１０の機能ブロック図である。  
ユーザ端末１０は、キーセット描画処理部１１１、キーストリングパーサ１１２、入出力インタフェース１１３、マネージャコントローラ１１４、ファイルマネージャ１１５、ウェブマネージャ１１６、キーセット記憶部１５１、キーセットファイル記憶部１５２、スタイル記憶部１５３を備えている。
【００５６】
なお、キーセット描画処理部１１１、キーストリングパーサ１１２、入出力インタフェース１１３、マネージャコントローラ１１４、ファイルマネージャ１１５、およびウェブマネージャ１１６は、ユーザ端末１０が備えるＣＰＵ１０１が記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより実現される。また、キーセット記憶部１５１、キーセットファイル記憶部１５２およびスタイル記憶部１５３は、メモリ１０２や記憶装置１０３が提供する記憶領域として実現される。
【００５７】
キーセットファイル記憶部１５２は、キーセットファイルを記憶する。本実施形態では、キーセットファイル記憶部１５２には、図１に示すキーセットファイル１が記憶されているものとするが、もちろんその他のキーセットファイルが記憶されてもよい。キーセットファイル記憶部１５２は、例えば、ファイルシステムのディレクトリとして実現することができる。
【００５８】
ファイルマネージャ１１５は、ファイル名の指定を受け付けて、指定されたファイル名が示すキーセットファイルをキーセットファイル記憶部１５２から読み出す。
【００５９】
ウェブマネージャ１１６は、ＵＲＬを受け付けて、ＵＲＬが示すキーセットファイルをキーセット提供サーバ２０から取得する。ウェブマネージャ１１６は、受け付けたＵＲＬを設定したＨＴＴＰリクエストをキーセット提供サーバ２０に送信し、キーセット提供サーバ２０からＨＴＴＰリクエストに対するレスポンスとして送信されるキーセットファイルを受信する。
【００６０】
マネージャコントローラ１１４（本発明の文書取得部に該当する。）は、ファイルマネージャ１１５やウェブマネージャ１１６を制御する。マネージャコントローラ１１４は、キーセット名を受け付け、受け付けたキーセット名に応じて、ファイルマネージャ１１５またはウェブマネージャ１１６にキーセット名を与えて呼び出し、キーセットファイルを取得する。マネージャコントローラ１１４は、例えば、キーセット名が「ｈｔｔｐ：／／」で始まっていれば、ウェブマネージャ１１６を呼び出し、それ以外であればファイルマネージャ１１５を呼び出すようにすることができる。
【００６１】
なお、本実施形態では、ファイルマネージャ１１５がファイルシステムからのファイルの読み出しを行い、キーセット提供サーバ２０からＨＴＴＰによるキーセットファイルの受信をウェブマネージャ１１６が行うものとしたが、例えば、ＦＴＰ（File Transfer Protocol）サーバからキーセットファイルを取得するＦＴＰマネージャや、電子メールによりキーセットファイルを受信する電子メールマネージャ、キーボードなどの入力装置１０５から直接キーストリングの入力を受け付けて、受け付けたキーストリングを含むキーセットファイルを生成する入力装置マネージャなどを設けるようにすることもできる。
【００６２】
キーストリングパーサ１１２（本発明の文書連結部に該当する。）は、キーセットファイル記憶部１５２に記憶されているキーセットファイル１を読み出し、読み出したキーセットファイル１に含まれているキーストリングを解析して、ツリー構造のキーを示すデータ（以下、キーツリー構造体という。）を生成する。キーストリングパーサ１１２は、生成したキーツリー構造体をキーセット記憶部１５１に記憶する。なお、キーツリー構造体は、例えば、各キーをメモリ上のオブジェクトとして表現し、オブジェクト間の親子関係は、ポインタや参照により表現することができる。
【００６３】
また、キーストリングパーサ１１２は、キーストリングにＩキーが含まれている場合には、Ｉキーの属性として設定されているキーセット名を与えてマネージャコントローラ１１４を呼び出す。キーストリングパーサ１１２は、マネージャコントローラ１１４からキーセットファイルを取得し、取得したキーセットファイルに含まれているキーストリングを解析して、キーツリー構造体を生成し、生成したキーツリー構造体のルートが、Ｉキーの子になるように接続する。
【００６４】
図６は、図１に示したキーセットファイル１をキーストリングパーサ１１２が解析した結果である、キーツリー構造体４０の構造を説明する図である。図６に示すように、キーツリー構造体４０含まれるＩキー２５には、その子としてＫキー３１が連結されている。Ｋキー３１以下のキーツリー構造体４１は、キーセット提供サーバ２０が提供するキーセットファイル２のキーストリングを解析した結果である。
【００６５】
キーセット描画処理部１１１は、キーセット記憶部１５１に記憶されたキーツリー構造体に基づいて、文字列を出力装置１０６に出力する。なお、キーセット描画処理部１１１の処理の詳細については後述する。
【００６６】
また、キーストリングパーサ１１２は、キーセットファイルに含まれるスタイルキーに基づいて、キーに適用されるスタイルを示す情報（以下、スタイル情報という。）をスタイル記憶部１５３に格納する。
【００６７】
図７は、スタイル記憶部１５３に格納されるスタイル情報の構成例を示す図である。図７に示すように、スタイル情報は、スタイルセット名、スタイルの適用先、および適用するスタイルの値を含む。スタイル適用先には、スタイルを適用するキーのラベルと、スタイルの名称とが含まれる。ラベルにとして「ｍｅ」が指定された場合、そのスタイルは、そのスタイルセット名が指定されたキーにのみ適用され、その子孫のキーには継承されないことを示す。また、ラベルに「ａｌｌ」が指定された場合には、そのスタイルは、すべてのキーに適用されることを示す。例えば、図９の例では、描画位置（〜ａｌｉｇｎ）に係るスタイル適用先として、「ｍｅ〜ａｌｉｇｎ」や、「Ｒ〜ａｌｉｇｎ」などが示されている。
【００６８】
なお、スタイル記憶部１５３には、予め描画に用いられる全てのスタイルについて、デフォルトとして、スタイルセット名が「デフォルト」であるスタイル情報が記憶されているものとする。上述したように、本実施形態では、描画に用いられるスタイルは「〜ａｌｉｇｎ」「〜ｆｏｎｔｓｉｚｅ」「〜ｓｈａｐｅ」「〜ｂｏｒｄｅｒ」の４種類のみであるものとしており、図７の例でも、この４種類のスタイル名に「ａｌｌ」や「Ｒ」、「Ｒｂ」、「Ｃ」、「Ｃｂ」のラベルが指定された適用先を含むスタイル情報が「デフォルト」のスタイルセット名に対応付けて登録されている。
【００６９】
図８は、キーストリングパーサ１１２によるスタイルの登録処理の流れを示す図である。キーストリングパーサ１１２は、スタイルキーの子要素のそれぞれについて、以下の処理を行う。
【００７０】
キーストリングパーサ１１２は、子要素の要素名をスタイルセット名とし（Ｓ４０１）、子要素の内容として記述されているスタイル記述文を抽出して、スタイルリストとする（Ｓ４０２）。キーストリングパーサ１１２は、スタイルセット名を第１引数とし、「ｍｅ」を第２引数とし、スタイルリストを第３引数として、図９に示すスタイル情報の登録処理を呼び出す（Ｓ４０３）。
【００７１】
図９に示すスタイル情報の登録処理において、キーストリングパーサ１１２は、第１引数をスタイルセット名とし（Ｓ４２１）、第３引数に含まれている各スタイル記述文について以下の処理を行う。
【００７２】
キーストリングパーサ１１２は、スタイル記述文に記述されているスタイル名が「〜ｋｅｙ」である場合（Ｓ４２２：ＹＥＳ）、スタイル記述文に記述されているスタイル値から「＋」で区切られたラベルのリストを抽出してラベルリストとする（Ｓ４２３）。なお、スタイル値に「＋」が含まれていない場合は、ラベルが１つのみ含まれるラベルリストが生成される。
【００７３】
キーストリングパーサ１１２は、スタイル記述文に後続するブレース内に記述されているスタイル記述文を抽出してスタイルリストとし（Ｓ４２４）、上記ラベルリストに含まれる各ラベルについて、スタイルセット名を第１引数とし、ラベルを第２引数とし、スタイルリストを第３引数として、当該登録処理を再帰的に呼び出す（Ｓ４２５）。
【００７４】
一方、スタイル名が「〜ｋｅｙ」でない場合（Ｓ４２２：ＮＯ）、キーストリングパーサ１１２は、第１引数をラベルとし（Ｓ４２６）、ラベルと、スタイル記述文に記述されているスタイル名とを結合した文字列を適用先として、スタイルセット名、適用先、およびスタイル記述文に記述されているスタイル値を含むスタイル情報を生成して、スタイル記憶部１５３に登録する（Ｓ４２８）。
【００７５】
以上の処理を第３引数に含まれる各スタイル記述文について行うことにより、上述の図７に示すようなスタイル情報がスタイル記憶部１５３に登録される。
【００７６】
入出力インタフェース１１３は、入力装置１０５からのデータの入力や、出力装置１０６へのデータの出力、マネージャコントローラ１１４との間のデータのやり取りなどを制御する。
【００７７】
＝＝キーの描画処理＝
以下、ユーザ端末１０におけるキーの描画処理について説明する。なお、以下の処理では、予めキーストリングパーサ１１２によりキーツリー構造体４０が生成され、スタイルキー１２に指定されていたスタイルが、スタイルセット名に対応付けてスタイル記憶部１５３に登録されているものとする。また、本実施形態では、文字列は予め固定されたフォントにより描画されるものとする。
【００７８】
図１０は、ユーザ端末１０におけるキーの描画処理の流れを説明する図である。  
図１０に示すように、キーセット描画処理部１１１は、キーツリー構造体４０のルートとなるキー（図６の例ではＫキー１１）をｋｅｙ変数に設定する（Ｓ５０１）。
【００７９】
キーセット描画処理部１１１は、出力装置１０６に描画可能な最大の描画領域を取得し、取得した描画領域の幅および高さをそれぞれｗおよびｈとする（Ｓ５０２）。本実施形態では、描画領域は矩形であり、矩形の左上を基準座標（０，０）として、「（Ｘ座標，Ｙ座標，幅，高さ）」で表現するものとする。
【００８０】
キーセット描画処理部１１１は、描画領域（０，０，ｗ，ｈ）をｋｅｙに設定する（Ｓ５０３）。なお、キーセット描画処理部１１１は、例えば、キーの属性に描画領域を設定する。  
キーセット描画処理部１１１は、スタイル記憶部１５３から、スタイルセット名が「デフォルト」であるスタイル情報を読み出し、読み出したスタイル情報のリスト（以下、スタイルリストという。）をｓｔとして（Ｓ５０４）、ｓｔをｋｅｙに設定する（Ｓ５０５）。
【００８１】
キーセット描画処理部１１１は、ｋｅｙのラベルが「Ｓｅ」でなければ（Ｓ５０６：ＮＯ）、後述する図１１のｋｅｙの描画処理を実行する（Ｓ５０７）。  
キーセット描画処理部１１１は、キーツリー構造体４０においてｋｅｙを基準に、深さ優先順に次のキーが含まれている場合には（Ｓ５０８：ＹＥＳ）、次のキーをｋｅｙとして（Ｓ５０９）、ｋｅｙのラベルが「Ｓｅ」でなければ（Ｓ５０６：ＮＯ）、ｋｅｙの描画処理を行う（Ｓ５０７）。
【００８２】
以上のようにして、キーセット描画処理部１１１は、キーツリー構造体４０に含まれるスタイルキー以外のキーのそれぞれについて、深さ優先順にステップＳ５０５の描画処理を行うことになる。したがって、キーセット描画処理部１１１は、キーツリー構造体４０に含まれるスタイルキーを除く全てのキーについて描画処理を行うことができる。すなわち、キーセットファイル１および連結されるキーセットファイル２に記述されたスタイルキーを除く全てのキーが描画される。
【００８３】
図１１は、図１０のステップＳ５０７におけるｋｅｙの描画処理の流れを示す図である。  
まず、キーセット描画処理部１１１は、ｋｅｙに設定されている描画領域を、キーツリー構造体４０においてｋｅｙの子となるキー（以下、子キーという。）のそれぞれに設定する（Ｓ５２１）。  
次に、キーセット描画処理部１１１は、ｋｅｙの子キーの中に、レイアウトキーが含まれているかどうかを判断し（Ｓ５２２）、レイアウトキーが子キーに含まれていない場合には（Ｓ５２２：ＮＯ）、処理を終了する。
【００８４】
キーセット描画処理部１１１は、ｋｅｙの子キーにレイアウトキーがある場合には（Ｓ５２２：ＹＥＳ）、ｋｅｙに設定されている描画領域のＸ座標、Ｙ座標、幅、および高さをそれぞれ、ｘ、ｙ、ｗ、ｈとする（Ｓ５２３）。キーセット描画処理部１１１は、子キーの中のレイアウトキーについての指定数の合計をｎとする（Ｓ５２４）。キーセット描画処理部１１１は、ｗをｎで割った商をｃｗとし（Ｓ５２５）、ｈをｎで割った商をｃｈとする（Ｓ５２６）。キーセット描画処理部１１１は、ｃｘにｘを設定し（Ｓ５２７）、ｃｙにｙを設定し（Ｓ５２８）、変数ｍに０を設定して（Ｓ５２９）、次の子キーが存在する間（Ｓ５３０：ＹＥＳ）、以下の処理を行う。
【００８５】
キーセット描画処理部１１１は、次の子キーをｃｋとして（Ｓ５３１）、図１２に示すｃｋのスタイルの設定処理を行う（Ｓ５３２）。  
図１２に示すように、ｃｋのスタイル設定処理では、まずキーセット描画処理部１１１は、ｃｋの親のキーであるｋｅｙに設定されているスタイルリストをｓｔとし（Ｓ５４１）、ｓｔから、「ｍｅ〜」で始まるスタイル適用先のスタイル情報を削除する（Ｓ５４２）。  
キーセット描画処理部１１１は、ｃｋの属性にスタイルセット名が設定されている場合には（Ｓ５４３：ＹＥＳ）、ｃｋの属性に設定されているスタイルセット名に対応するスタイル情報をスタイル記憶部１５３から読み出し、読み出したスタイルリストをｃｓｔとして（Ｓ５４４）、ｃｓｔをｓｔの先頭に追加する（Ｓ５４５）。
【００８６】
ここで生成されるｓｔの構成例を図１３に示す。図１３は、図１のキーセットファイル１に記載されたＲキー２２について生成されたスタイルリストｓｔ５０の一例を示している。スタイル情報５２は、ルートであるＫキー１１に設定されたデフォルトのスタイル情報である。Ｒキー２２の属性には、スタイルセット名「＠ｌｅｆｔｔｅｘｔ」が設定されているので、「＠ｌｅｆｔｔｅｘｔ」に対応するスタイル情報５１がリストの先頭に追加されている。  
最後にキーセット描画処理部１１１は、ｃｋにｓｔを設定する（Ｓ５４６）。
【００８７】
以上のようにして、ｃｋの属性にスタイルセット名が設定されている場合には、親のｋｅｙに設定されているスタイルリストの先頭に、ｃｋの属性に設定されたスタイルセット名に対応するスタイル情報が追加されたものがｃｋに設定され、ｃｋの属性にスタイルセット名が設定されていない場合には、親のｋｅｙに設定されているスタイルリストがそのままｃｋに設定される。このようにして、キーツリー構造体４０では、各キーのスタイルは親から継承されていく。
【００８８】
ここで図１１に戻り、キーセット描画処理部１１１は、ｃｋのラベルが「Ｃ」または「Ｃｂ」であれば（Ｓ５３３：Ｃ，Ｃｂ）、領域（ｃｘ，ｙ，ｃｗ×指定数，ｈ）を描画領域としてｃｋに設定し（Ｓ５３４）、ｃｘにｃｗ×（ｃｋの指定数）の演算結果を加算する（Ｓ５３５）。ｃｋのラベルが「Ｒ」または「Ｒｂ」であれば（Ｓ５３３：Ｒ，Ｒｂ）、キーセット描画処理部１１１は、領域（ｘ，ｃｙ，ｗ，ｃｈ×指定数）を描画領域としてｃｋに設定し（Ｓ５３６）、ｃｙにｃｈ×（ｃｋの指定数）の演算結果を加算する（Ｓ５３７）。以上のようにして、ｃｋがＣキーの場合、ｋｅｙの描画領域をＸ軸方向にｎ分割した描画領域がｃｋに設定され、ｃｋがＲキーの場合、ｋｅｙの描画領域をＹ軸方向にｎ分割した描画領域がｃｋに設定される。
【００８９】
一方、キーセット描画処理部１１１は、ｃｋのラベルが「Ｃ」「Ｃｂ」「Ｒ」および「Ｒｂ」のいずれでもない場合は（Ｓ５３３：その他）、ステップＳ５３０からの処理を繰り返す。  
ｃｋのラベルが「Ｃ」「Ｃｂ」「Ｒ」または「Ｒｂ」の場合（Ｓ５３３：Ｃ，Ｃｂ、Ｓ５３３：Ｒ，Ｒｂ）、キーセット描画処理部１１１は、図１４に示すｃｋの描画処理を行う（Ｓ５３５）。  
キーセット描画処理部１１１は、描画領域の形状を示す「〜ｓｈａｐｅ」をスタイル名として、図１５に示すスタイル値の検索処理を行い、その結果をｓとする（Ｓ５６１）。
【００９０】
図１５に示すスタイル地の検索処理において、キーセット描画処理部１１１は、ｃｋに設定されているスタイルリストをＬとし（Ｓ５８１）、「ｍｅ」にスタイル名を結合した文字列に対応するスタイル値をＬの先頭から検索する（Ｓ５８２）。
【００９１】
キーセット描画処理部１１１は、上記スタイル値が見つかった場合には（Ｓ５８３：ＹＥＳ）、処理を終了し、上記スタイル値が見つからなかった場合には（Ｓ５８３：ＮＯ）、ｃｋのラベルにスタイル名を結合した文字列に対応するスタイル値をＬの先頭から検索する（Ｓ５８４）。  
キーセット描画処理部１１１は、上記スタイル情報が見つかれば（Ｓ５８５：ＹＥＳ）、処理を終了し、上記スタイル情報が見つからなければ（Ｓ５８５：ＮＯ）、「ａｌｌ」にスタイル名を結合した文字列に対応するスタイル値をＬの先頭から検索する（Ｓ５８６）。
【００９２】
以上のようにしてキーセット描画処理部１１１は、スタイル名に対応するスタイル値をｃｋに含まれるスタイルリストから検索する。なお、本実施形態では、全てのスタイル名に対応するデフォルトのスタイル値は、「ａｌｌ」にスタイル名が結合された適用先のスタイル情報としてスタイル記憶部１５３に登録されており、上記処理により確実にスタイル値が検索されることを想定している。
【００９３】
次に、キーセット描画処理部１１１は、ボーダーの太さを示す「〜ｂｏｒｄｅｒ」をスタイル名として、上記図１５に示すスタイル値の検索処理を行い、その結果をｂとする（Ｓ５６２）。  
描画領域の形状のスタイルｓが「ｏｖａｌ」である場合（Ｓ５６３：ＹＥＳ）、キーセット描画処理部１１１は、ｃｋに設定されている描画領域に内接する楕円形をｂの太さの線で描画する（Ｓ５６４）。  
描画領域の形状のスタイルｓが「ｒｅｃｔ」である場合には（Ｓ５６３：ＮＯ）、キーセット描画処理部１１１は、ｃｋに設定されている描画領域を示す長方形をｂの太さの線で描画する（Ｓ５６５）。
【００９４】
ｃｋの属性に文字列が設定されている場合（Ｓ５６６：ＹＥＳ）、キーセット描画処理部１１１は、フォントサイズを示す「〜ｆｏｎｔｓｉｚｅ」をスタイル名として、上記図１５に示すスタイル値の検索処理を行い、その結果をｆとする（Ｓ５６７）。また、キーセット描画処理部１１１は、描画位置を示す「〜ａｌｉｇｎ」をスタイル名として、上述の図１５に示すスタイル値の検索処理を行い、その結果をａとする（Ｓ５６８）。キーセット描画処理部１１１は、ｃｋの属性に設定されている文字列をｔとする（Ｓ５６９）。
【００９５】
キーセット描画処理部１１１は、ｃｋに設定されている描画領域のＸ座標、Ｙ座標、幅、および高さをそれぞれ、ｄｘ、ｄｙ、ｄｗ、ｄｈとして（Ｓ５７０）、文字列ｔをフォントサイズｆで描画した場合の幅および高さをｔｗおよびｔｈとする（Ｓ５７１）。  
キーセット描画処理部１１１は、描画位置ａが「ｃｅｎｔｅｒ」である場合（Ｓ５７２：ｃｅｎｔｅｒ）、ｄｘ＋（ｄｗ−ｔｗ）／２の演算結果をｄｘとし（Ｓ５７３）、描画位置ａが「ｒｉｇｈｔ」である場合は（Ｓ５７２：ｒｉｇｈｔ）、ｄｘ＋（ｄｗ−ｔｗ）の演算結果をｄｘとする（Ｓ５７４）。  
キーセット描画処理部１１１は、（ｄｘ，ｄｙ，ｔｗ，ｔｈ）の領域に、文字列ｔをフォントサイズｆで描画する（Ｓ５７５）。  
図１１に戻り、キーセット描画処理部１１１は、上記のようにしてｃｋを描画した後（Ｓ５３８）、ｍをインクリメントして（Ｓ５３９）、ステップＳ５３０からの処理を繰り返す。
【００９６】
図１６は、以上の処理によりキーセットファイル１が描画された画面６０の一例を示す図である。図１６では、出力装置１０６がディスプレイなどの表示装置であり、表示装置の画面上に、図１に示すキーセットファイル１が描画された例を示している。
【００９７】
図１６に示すように、画面６０では、Ｒキー２２が図形６１として描画されている。Ｒキー２２では、「＠ｌｅｆｔｔｅｘｔ」というスタイルセット１３が指定されており、スタイルセット１３では、描画位置（〜ａｌｉｇｎ）は「ｌｅｆｔ（左寄せ）」、フォントサイズ（〜ｆｏｎｓｉｚｅ）は「２４」と設定されている。また、スタイルセット１３に設定されていない、描画領域の形状（〜ｓｈａｐｅ）およびボーダーの太さ（〜ｂｏｒｄｅｒ）は、スタイル記憶部１５３に記憶されているデフォルトのスタイル情報からそれぞれ「ｒｅｃｔ（長方形）」および「３」として、ルートのＫキー１１からＲキー２２に継承されている。したがって、図形６１は、太さ「３」の長方形として描画される。図形６１の内部には、Ｒキー２２の属性に設定されていた文字列「数字を入力してください」が、フォントサイズ「２４」で、左寄せに描画される。
【００９８】
また、画面６０には、Ｉキー２５に連結されたキーセットファイル２に含まれるＣキー３２が図形６２として描画されている。
【００９９】
Ｃキー３２には、スタイルセット名が設定されていないが、上述したように、Ｃキー３２が連結されたキーツリー構造体４０において、Ｃキー３２の祖先のキーに設定されたスタイル情報がＣキー３２にも継承される。図１のキーセットファイル１の例では、Ｃキー３２は、デフォルトのスタイル情報と、Ｒキー２３に設定された「＠ｂｔｎ」に対応するスタイル情報と、Ｃキー２４に設定された「＠ｎｋｅｙ」に対応するスタイル情報とが継承される。
【０１００】
また上述したように、Ｃキー２４には「＠ｎｋｅｙ」に対応するスタイル情報、「＠ｂｔｎ」に対応するスタイル情報、「デフォルト」に対応するスタイル情報の順に並んだスタイルリストが設定されるので、「＠ｎｋｅｙ」に対応するスタイル情報から優先的に適用されることになる。「＠ｎｋｅｙ」が示すスタイルセット１６では、ラベルがＣｂであるキーにのみ適用されるスタイルとして、フォントサイズ（〜ｆｏｎｓｉｚｅ）は「３６」、形状（〜ｓｈａｐｅ）は「ｏｖａｌ（楕円形）」、ボーダーの太さ（〜ｂｏｒｄｅｒ）は「６」と設定されている。したがって、「＠ｎｋｅｙ」が指定されたＣキー２４は、ラベルがＣであるため、上記のスタイルは適用されず、デフォルトのスタイルであるボーダーの太さ「０」が適用され、Ｃキー２４に対応する領域６４には図形が描画されないが、Ｃキー２４の子孫であるＣキー３２は、ラベルがＣｂであるので、上記のスタイルが適用される。よって、Ｃキー３２に対応する図形６２は、ボーダーの太さ「６」で楕円形として描画され、図形６２の内部には、Ｃキー３２に設定されていた文字列「７」が、フォントサイズ「３６」で中央揃えに描画される。
【０１０１】
さらに、キーセットファイル２に含まれているキーストリングが解析されたキーツリー構造体４１に含まれる各レイアウトキーは、Ｃキー３２と同様のスタイルで、領域６４内に描画される。
【０１０２】
一方、Ｃキー２４とは兄弟キーとなるＣキー２６にはスタイルセット名が指定されていないので、その子であるＲキー２７には、デフォルトのスタイル情報と、Ｒキー２３に設定される「＠ｂｔｎ」に対応するスタイル情報とが継承される。したがって、Ｒキー２７は、画面６０において、長方形６３として、デフォルトの太さ「３」の線で描画され、文字列「ＡＣ」は、「＠ｂｔｎ」に対応するフォントサイズ「１８」で、中央揃え（ｃｅｎｔｅｒ）に描画される。
【０１０３】
以上説明したように、本実施形態の描画システムによれば、ある親キーの子孫キーについて、親キーに設定されているスタイルに従って描画を行うことができる。したがって、ある親キー以下の階層のキーの見た目を統一することができる。したがって、画面のデザイナは、親キーのスタイルを設定するだけで、その子孫キーのスタイルを統一することができるので、デザインの作業効率が向上する。ここで、子孫キーにおいてスタイルセット名を設定すれば、子孫キーに設定されたスタイルセット名に対応するスタイルが、その子孫キーに優先的に適用されるので、一部の子孫キーに異なるスタイルを設定することも可能である。つまり、デザインの柔軟性を損なうことなく、容易にスタイルを設定することが可能となる。また、ツリー構造においてスタイルはキーの子孫に継承されるので、デザイナは、キーに設定したスタイルがどの範囲に適用されるのかを容易に把握することができる。したがって、デザイナの作業の効率化を図ることができる。
【０１０４】
また、各レイアウトキーは、親の描画領域の全部または一部に描画されるので、基準となる親キーの描画領域内に描画されるレイアウトキーの全てを同じスタイルに容易に統一することができる。すなわち、同一の描画領域内に描画されるキーに同じスタイルを設定する場合には、親のキーにスタイルセット名を設定するだけでよい。したがって、スタイルセット名を設定し忘れたとしても、キーの見た目を統一することができる。
【０１０５】
また、Ｉキーにより、キーセットファイル１にキーセットファイル２を連結した場合、キーセットファイル１の中のキーのスタイルを、Ｉキーの子孫として連結されたキーセットファイル２に継承させることができる。したがって、キーセットファイル２の中の各キーには予めスタイルセット名を記述する必要がないので、キーセットファイルのモジュール性を向上させることができる。
【０１０６】
例えば、キーセットファイル２のキーストリングは図４に示すものと同じであり、あるキーセットファイル（以下、キーセットファイル３という。）に、「Ｋ（“＿Ｃａｌｃ２”）｛Ｓｅ｛＠ｂ｛〜ｋｅｙ＝”Ｃｂ”｛〜ｆｏｎｔｓｉｚｅ＝２４；｝｝｝Ｕ｛Ｉ（“ｈｔｔｐ：／／ｓｅｒｖｅｒ／ｋｂｄ．ｋｓ”，＠ｂ）｝｝」というキーストリングが記述されていた場合、図１７に示すような画面７０が表示される。キーセットファイル３にはレイアウトキーが含まれていないため、画面７０には、Ｉキーにより連結されたキーセットファイル２に含まれるレイアウトキーのみが描画される。
【０１０７】
キーセットファイル３に含まれるＩキーには、「＠ｂ」のスタイルセット名が設定されており、このスタイルセット名が示すスタイルセットでは、フォントサイズが「２４」と設定されているのみである。このＩキーの子孫としてキーセットファイル２に含まれるキーストリングが連結されると、キーセットファイル２のＣキー３２には、ルートのＫキーから継承したデフォルトのスタイルである、描画位置「ｃｅｎｔｅｒ」、フォントサイズ「１２」、描画領域の形状「ｒｅｃｔ」およびボーダーの太さ「３」のスタイル情報のリストの先頭に、Ｉキーに設定されているフォントサイズ「２４」が追加されたものが継承される。したがって、キーセットファイル２に含まれるＣキー３２にも、当該スタイルリストが継承されることになる。したがって、図１７に示すように、キーセットファイル２に含まれるＣキー３２に対応する図形６２は長方形として描画される。これに対して、図１６に示すように、キーセットファイル１にキーセットファイル２を連結した場合には、Ｃキー３２に対応する図形６２は楕円形として表示される。このように、キーセットファイル２の記述を変更することなく、キーセットファイル２を呼び出すＩキーを含むキーセットファイル側において、ＩキーまたはＩキーの祖先のキーにスタイルを設定することにより、キーセットファイル２に含まれるレイアウトキーのスタイルを変更することができる。すなわち、キーセットファイル２にはスタイルを指定する必要がないので、キーセットファイル２のスタイルと構造とを分離することが可能となり、キーセットファイル２のモジュール性を高めることができる。
【０１０８】
また、上記図１１の処理は、キーツリー構造体４０を構成するスタイルキーを除く全てのキーについて行われる。したがって、本実施形態の描画システムによれば、キーツリー構造体４０に含まれるスタイルキーを除く各キーには、キーツリー構造体４０のルートに割り当てられた描画領域の全部または一部が割り当てられ、割り当てられた描画領域に、後述する文字列の描画が行われる。よって、１画面にキーツリー構造体４０の全体が描画されることになる。つまり、キーツリー構造体４０を構成する全てのキーのうち、描画すべき文字列が属性として設定されているものを、１画面に表示することが可能である。これにより、画面でのキーの一覧性を確保することができる。
【０１０９】
また、本実施形態の描画システムによれば、キーはツリー構造を構成し、ツリー構造のルートに画面全体の描画領域を割り当て、各キーには、親の描画領域の全部または一部を、そのキー情報の描画領域として割り当てることができる。したがって、画面の構成は、画面を分割した状態をツリー構造として表現すればよいので、画面のデザイナは、容易に画面構成をキーストリングとして記述することができる。
【０１１０】
また、画面の一領域を示すキーについてスタイルセット名を設定すれば、そのキーについてスタイルが設定されるとともに、その領域に描画される下位の階層のキーについてもそのスタイルが継承される。したがって、画面の一部分について見た目を統一することが簡単にできる。
【０１１１】
またその一方で、「〜ｋｅｙ」の指定により、スタイルの適用されるキーの種類を制限することもできる。また、適用先のキーの指定を省略し、あるいは「〜ｋｅｙ＝ｍｅ」と設定することにより、そのスタイルセットを指定したキーのみにスタイルを適用するようにすることもできる。したがって、キーの種類によって見た目を変えたり、ある特定のキーだけの見た目を変更したりすることも容易に実現可能であり、柔軟なデザインを行うことができる。
【０１１２】
なお、本実施形態では、描画システムはユーザ端末１０とキーセット提供サーバ２０とを含んで構成されるものとしたが、ユーザ端末１０のみで構成することもできる。この場合、ユーザ端末１０は、ユーザ端末１０に記憶されているキーセットファイルのみを表示することができる。逆に、複数のキーセット提供サーバ２０を含むように構成することもできる。
【０１１３】
また、本実施形態では、ファイルとしてキーセットが格納されているものとしたが、ファイルの形態をとらずに、例えばデータベースのレコードとして格納されていてもよい。
【０１１４】
また、本実施形態では、文字列を表示するフォントは固定されているものとしたが、スタイルとしてフォントを指定することもできる。この場合、スタイルキーにスタイルとしてフォント（例えば、スタイル名は〜ｆｏｎｔとする。）を指定可能とし、スタイル記憶部１５３には、デフォルトのフォントを登録するようにする。また、キーセット描画処理部１１１は、図１４のステップＳ５６７において、ｃｋに設定されているスタイルリストからフォント（〜ｆｏｎｔ）の値を取得し、ステップＳ５７１においては、文字列ｔを、取得したフォントによりフォントサイズｆで描画した場合の幅および高さを算出するようにする。
【０１１５】
また、本実施形態では、「Ｒ」のラベルが付されたキーおよび「Ｒｂ」のラベルが付されたキー、並びに「Ｃ」のラベルが付されたキーおよび「Ｃｂ」のラベルが付されたキーは、同じように表示されるものとしたが、例えば、「Ｒｂ」のラベルが付されたキーと「Ｃｂ」のラベルが付されたキーとは、ボタンとして描画されるようにしてもよい。
【０１１６】
また、本実施形態では、レイアウトキーには「Ｒ」「Ｒｂ」「Ｃ」「Ｃｂ」の４種類のラベルのいずれかが付されるものとしたが、これに限らず、より多様なラベルを定義してもよい。
【０１１７】
また、本実施形態では、各キーに設定されるスタイルリストには、デフォルトのスタイル情報を最後尾とし、階層の深い順にスタイル情報を並べることで、そのキーまたは祖先のキーに同じスタイルが設定されている場合には、キーからの距離が最も近いキーに設定されたスタイルが適用されるものとしたが、これに限らず、描画対象となる描画キーにスタイルセット名が指定されていない場合に、スタイルが設定されている祖先のキーのうち、描画キーからの距離が最も遠いものに設定されているスタイルが適用されるようにしてもよい。
【０１１８】
この場合、例えば、デフォルトのスタイル情報はスタイルリストに含めないようにし、キーセット描画処理部１１１は、図１４のステップＳ５６１、Ｓ５６２、Ｓ５６７、およびＳ５６８において、描画キーにスタイルセット名が設定されていれば、設定されているスタイルセット名とスタイル名（〜ｓｈａｐｅや〜ｂｏｒｄｅｒ、〜ｆｏｎｔｓｉｚｅ、〜ａｌｉｇｎ）に対応する値をスタイル記憶部１５３から検索するようにする。また、キーセット描画処理部１１１は、描画キーにスタイルセット名が設定されていない場合、あるいは、設定されているスタイルセット名とスタイル名に対応する値がスタイル記憶部１５３に見つからない場合には、スタイルリストの最後尾から順にスタイル名に対応する値を検索し、値が見つからないときは、スタイル記憶部１５３から「デフォルト」およびスタイル名に対応する値を検索するようにする。
【０１１９】
これにより、描画キーにスタイルが設定されていない場合には、描画キーから最も遠い祖先のキーに設定されていたスタイルに従って描画キーが描画され、その一方で描画キーにスタイルが設定されていれば、その設定されたスタイルにより描画キーが描画される。したがって、ある親キーにスタイルを設定して、その子孫のキーを統一的なスタイルにするとともに、特定のキーのみのスタイルを変更することができるので、デザインがしやすくなる。
【０１２０】
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【０１２１】
【図１】キーセットファイル１の一例を示す図である。
【図２】本実施形態の描画システムの全体構成を示す図である。
【図３】ユーザ端末１０およびキーセット提供サーバ２０のハードウェア構成を示す図である。
【図４】キーセット提供サーバ２０の機能ブロック図である。
【図５】ユーザ端末１０の機能ブロック図である。
【図６】キーツリー構造体４０の構造を説明する図である。
【図７】スタイル記憶部１５３の構成例を示す図である。
【図８】スタイル登録処理の流れを示す図である。
【図９】スタイル情報の登録処理の流れを示す図である。
【図１０】キーの描画処理の流れを説明する図である。
【図１１】図１０のステップＳ５０７におけるｋｅｙの描画処理の流れを示す図である。
【図１２】図１１のステップＳ５３０におけるｃｋのスタイルの設定処理の流れを示す図である。
【図１３】ｃｋのスタイルの設定処理において生成されるスタイルリストｓｔの構成例を示す図である。
【図１４】図１１のステップＳ５３５におけるｃｋの描画処理の流れを示す図である。
【図１５】スタイル値の検索処理の流れを示す図である。
【図１６】キーセットファイル１が描画された画面６０の一例を示す図である。
【図１７】キーセットファイル３が描画された画面７０の一例を示す図である。
【符号の説明】
【０１２２】
１      キーセットファイル
２      キーセットファイル
１０    ユーザ端末
２０    キーセット提供サーバ
３０    通信ネットワーク
４０    キーツリー構造体
５０    スタイル管理表
６０    画面
７０    画面
１０１  ＣＰＵ
１０２  メモリ
１０３  記憶装置
１０４  通信インタフェース
１０５  入力装置
１０６  出力装置
１１１  キーセット描画処理部
１１２  キーストリングパーサ
１１３  入出力インタフェース
１１４  マネージャコントローラ
１１５  ファイルマネージャ
１１６  ウェブマネージャ
１５１  キーセット記憶部
１５２  キーセットファイル記憶部
１５３  スタイル記憶部
２１１  ウェブ処理部
２１２  キーセットファイル記憶部
【図１】
0005156340.tif 000002
【図２】
0005156340.tif 000003
【図３】
0005156340.tif 000004
【図４】
0005156340.tif 000005
【図５】
0005156340.tif 000006
【図６】
0005156340.tif 000007
【図７】
0005156340.tif 000008
【図８】
0005156340.tif 000009
【図９】
0005156340.tif 000010
【図１０】
0005156340.tif 000011
【図１１】
0005156340.tif 000012
【図１２】
0005156340.tif 000013
【図１３】
0005156340.tif 000014
【図１４】
0005156340.tif 000015
【図１５】
0005156340.tif 000016
【図１６】
0005156340.tif 000017
【図１７】
0005156340.tif 000018