(57)【特許請求の範囲】
【請求項１】
Ｗｅｂサイト上の複数のＷｅｂページを、各Ｗｅｂページの情報コンテンツを定義するＷｅｂページテキスト文書から生成する計算処理システムにおいて、前記Ｗｅｂページテキスト文書とは別個のテーマ指向テキスト文書を使用して前記複数のＷｅｂページのルックアンドフィールを定義するテーマを適用することにより、前記複数のＷｅｂページに共通のルックアンドフィールを提供するための方法であって、
前記Ｗｅｂページテキスト文書に記述されるディレクティブに従って、または構成設定に基づくデフォルト規則に従って、前記Ｗｅｂページテキスト文書から生成されるＷｅｂページにテーマを適用すべきであると決定する動作であって、前記テーマはそれぞれ、対応するテーマ指向テキスト文書において、各テーマが適用されるＷｅｂページ上にレンダリングすべき制御要素と該制御要素に関連する特性として定義され、前記Ｗｅｂページテキスト文書は、該Ｗｅｂページテキスト文書から生成される前記Ｗｅｂページ上にレンダリングすべき前記制御要素を参照する制御要素参照を含む、動作と、
各テーマについて前記制御要素を参照するテーマ制御要素参照と前記制御要素に関連する少なくとも１つの特性とを一括して記述する１つまたは複数のテーマ指向テキスト文書のうち、前記Ｗｅｂページに適用すべき前記テーマに対応するテーマ指向テキスト文書にアクセスする動作と、
前記テーマ指向テキスト文書に記述される前記テーマ制御要素参照に基づいて、テーマクラスを定義するソースコードを生成することによってテーマクラスを生成する動作と、
前記テーマクラスをコンパイルする動作と、
前記コンパイルされたテーマクラスをインスタンス化してテーマオブジェクトにする動作であって、前記テーマオブジェクトは、前記テーマ制御要素参照にそれぞれ対応し、特定の制御要素タイプをそれぞれ有する、複数のテーマ制御要素オブジェクトを含み、各テーマ制御要素オブジェクトは、該テーマ制御要素オブジェクトの制御要素タイプと同じタイプの制御要素に適用されるべき少なくとも１つの特性を規定する、動作と、
前記Ｗｅｂページテキスト文書に基づいてＷｅｂページクラスを生成する動作と、
前記Ｗｅｂページクラスをインスタンス化してＷｅｂページオブジェクトにする動作であって、前記Ｗｅｂページオブジェクトは、前記情報コンテンツに対応する要素オブジェクトと、前記制御要素参照にそれぞれ対応し、特定の制御要素タイプをそれぞれ有する、複数の制御要素オブジェクトとを含み、各制御要素オブジェクトは、前記テーマオブジェクトの前記複数のテーマ制御要素オブジェクトのうち、該制御要素オブジェクトの制御要素タイプと同じタイプのテーマ制御要素オブジェクトを呼び出すための機能呼び出しを含む、動作と、
前記Ｗｅｂページオブジェクトを実行することによって、前記要素オブジェクトに対応する前記情報コンテンツと、前記複数の制御要素オブジェクトに対応する制御要素であって、前記複数の制御要素オブジェクトから前記機能呼び出しを介して前記制御要素タイプに応じてそれぞれ呼び出される前記テーマ制御要素オブジェクトにより前記少なくとも１つの特性が適用された制御要素とを含む、前記Ｗｅｂページをレンダリングする動作と
を備えることを特徴とする方法。
【請求項２】
前記Ｗｅｂページテキスト文書に基づいてＷｅｂページクラスを生成する前記動作は、
前記Ｗｅｂページテキスト文書に基づいてコンパイルされていないＷｅｂページクラスを生成する動作と、
前記コンパイルされていないＷｅｂページクラスをコンパイルして前記Ｗｅｂページクラスにする動作と
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記コンパイルされていないＷｅｂページクラスを生成する前記動作は、
前記コンパイルされていないＷｅｂページクラスを定義するソースコードを生成する動作
を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記Ｗｅｂページテキスト文書に基づいてＷｅｂページクラスを生成する前記動作は、
前記Ｗｅｂページテキスト文書を直接コンパイルして前記Ｗｅｂページクラスにする動作
を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記計算処理システムとネットワーク接続されたクライアント計算処理システムから前記Ｗｅｂページを求める要求を受け取る動作
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記レンダリングされたＷｅｂページを前記クライアント計算処理システムにダウンロードする動作
をさらに備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記テーマオブジェクトは第１のテーマオブジェクトであり、前記Ｗｅｂページオブジェクトは第１のＷｅｂページオブジェクトであり、前記方法は、
前記クライアント計算処理システムからネットワークを介して前記Ｗｅｂページを求める新たな要求を受け取る動作と、
前記コンパイルされたテーマクラスをインスタンス化して第２のテーマオブジェクトにする動作であって、前記第２のテーマオブジェクトは、前記テーマ制御要素参照にそれぞれ対応し、特定の制御要素タイプをそれぞれ有する、複数のテーマ制御要素オブジェクトを含み、各テーマ制御要素オブジェクトは、該テーマ制御要素オブジェクトの制御要素タイプと同じタイプの制御要素に適用されるべき少なくとも１つの特性を規定する、動作と、
前記Ｗｅｂページクラスをインスタンス化して第２のＷｅｂページオブジェクトにする動作であって、前記第２のＷｅｂページオブジェクトは、前記情報コンテンツに対応する要素オブジェクトと、前記制御要素参照にそれぞれ対応し、特定の制御要素タイプそれぞれを有する、複数の制御要素オブジェクトとを含み、各制御要素オブジェクトは、前記第２のテーマオブジェクトの前記複数のテーマ制御要素オブジェクトのうち、該制御要素オブジェクトと同じ制御要素タイプのテーマ制御要素オブジェクトを呼び出すための機能呼び出しを含む、動作と、
前記第２のＷｅｂページオブジェクトを実行することによって、前記要素オブジェクトに対応する前記情報コンテンツと、前記第２のＷｅｂページオブジェクトの前記複数の制御要素オブジェクトに対応する制御要素であって、前記複数の制御要素オブジェクトの前記機能呼出しにより前記制御要素タイプに応じてそれぞれ呼び出される前記第２のテーマオブジェクトの前記テーマ制御要素オブジェクトによって前記少なくとも１つの特性が適用された制御要素とを含む、前記Ｗｅｂページをレンダリングする動作と
をさらに備えることを特徴とする請求項５に記載の方法。
【請求項８】
前記レンダリングされたＷｅｂページを前記計算処理システムとネットワーク接続されたクライアント計算処理システムにダウンロードする動作
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項９】
前記デフォルト規則はテーマが適用されるべきと規定するものであり、前記Ｗｅｂページテキスト文書から生成される前記Ｗｅｂページにテーマを適用すべきであると決定する前記動作は、
前記構成設定を読み取る動作と、
前記デフォルト規則に反するものがないことを判定する動作と
を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記テーマオブジェクトの前記複数のテーマ制御要素オブジェクトが、第１の制御要素タイプの制御要素に第１の特性を適用する第１のテーマ制御要素オブジェクトと、第２の制御要素タイプの制御要素に第２の特性を適用する第２のテーマ制御要素オブジェクトとを含み、前記Ｗｅｂページオブジェクトの前記複数の制御要素オブジェクトが、第１の制御要素タイプの制御要素がレンダリングされることとなる第１の制御要素オブジェクトと、第２の制御要素タイプの制御要素がレンダリングされることとなる第２の制御要素オブジェクトとを含み、前記第１および第２の制御要素オブジェクトがそれぞれ、前記第１および第２のテーマ制御要素オブジェクトを呼び出すための機能呼出しを含むとき、
前記Ｗｅｂページオブジェクトを実行することによって前記複数の制御要素オブジェクトに対応する制御要素であって、前記テーマ制御要素オブジェクトによって規定された少なくとも１つの特性が適用された制御要素を含む前記Ｗｅｂページをレンダリングする前記動作は、
前記Ｗｅｂページオブジェクトに含まれる前記第１および第２の制御要素オブジェクトを実行することによって、前記第１および第２の制御要素オブジェクトから前記機能呼出しを介してそれぞれ呼び出される前記第１および第２のテーマ制御要素オブジェクトによって前記第１および第２の特性が適用された制御要素を含む前記Ｗｅｂページをレンダリングする動作
を含むことを特徴とする請求項１に記載の方法。
【請求項１１】
Ｗｅｂサイト上の複数のＷｅｂページを、各Ｗｅｂページの情報コンテンツを定義するＷｅｂページテキスト文書から生成する計算処理システムに、前記Ｗｅｂページテキスト文書とは別個のテーマ指向テキスト文書を使用して前記複数のＷｅｂページのルックアンドフィールを定義するテーマを適用することにより、前記複数のＷｅｂページに共通のルックアンドフィールを提供するための方法を実行させるためのコンピュータプログラムであって、前記方法は、
前記Ｗｅｂページテキスト文書に記述されるディレクティブに従って、または構成設定に基づくデフォルト規則に従って、前記Ｗｅｂページテキスト文書から生成されるＷｅｂページにテーマを適用すべきであると決定する動作であって、前記テーマはそれぞれ、対応するテーマ指向テキスト文書において、各テーマが適用されるＷｅｂページ上にレンダリングすべき制御要素と該制御要素に関連する特性として定義され、前記Ｗｅｂページテキスト文書は、該Ｗｅｂページテキスト文書から生成される前記Ｗｅｂページ上にレンダリングすべき前記制御要素を参照する制御要素参照を含む、動作と、
各テーマについて前記制御要素を参照するテーマ制御要素参照と前記制御要素に関連する少なくとも１つの特性とを一括して記述する１つまたは複数のテーマ指向テキスト文書のうち、前記Ｗｅｂページに適用すべき前記テーマに対応するテーマ指向テキスト文書にアクセスする動作と、
前記テーマ指向テキスト文書に記述される前記テーマ制御要素参照に基づいて、テーマクラスを定義するソースコードを生成することによってテーマクラスを生成する動作と、
前記テーマクラスをコンパイルする動作と、
前記コンパイルされたテーマクラスをインスタンス化してテーマオブジェクトにする動作であって、前記テーマオブジェクトは、前記テーマ制御要素参照にそれぞれ対応し、特定の制御要素タイプをそれぞれ有する、複数のテーマ制御要素オブジェクトを含み、各テーマ制御要素オブジェクトは、該テーマ制御要素オブジェクトの制御要素タイプと同じタイプの制御要素に適用されるべき少なくとも１つの特性を規定する、動作と、
前記Ｗｅｂページテキスト文書に基づいてＷｅｂページクラスを生成する動作と、
前記Ｗｅｂページクラスをインスタンス化してＷｅｂページオブジェクトにする動作であって、前記Ｗｅｂページオブジェクトは、前記情報コンテンツに対応する要素オブジェクトと、前記制御要素参照にそれぞれ対応し、特定の制御要素タイプをそれぞれ有する、複数の制御要素オブジェクトとを含み、各制御要素オブジェクトは、前記テーマオブジェクトの前記複数のテーマ制御要素オブジェクトのうち、該制御要素オブジェクトの制御要素タイプと同じタイプのテーマ制御要素オブジェクトを呼び出すための機能呼び出しを含む、動作と、
前記Ｗｅｂページオブジェクトを実行することによって、前記要素オブジェクトに対応する前記情報コンテンツと、前記複数の制御要素オブジェクトに対応する制御要素であって、前記複数の制御要素オブジェクトから前記機能呼び出しを介して前記制御要素タイプに応じてそれぞれ呼び出される前記テーマ制御要素オブジェクトにより前記少なくとも１つの特性が適用された制御要素とを含む、前記Ｗｅｂページをレンダリングする動作と
を備えることを特徴とするコンピュータプログラム。
【請求項１２】
前記方法は、前記計算処理システムとネットワーク接続されたクライアント計算処理システムから前記Ｗｅｂページを求める要求を受け取る動作
をさらに含むことを特徴とする請求項１１に記載のコンピュータプログラム。
【請求項１３】
前記方法は、前記レンダリングされたＷｅｂページを前記クライアント計算処理システムにダウンロードする動作
をさらに含むことを特徴とする請求項１２に記載のコンピュータプログラム。
【請求項１４】
前記テーマオブジェクトは第１のテーマオブジェクトであり、前記Ｗｅｂページオブジェクトは第１のＷｅｂページオブジェクトであり、前記方法は、
前記クライアント計算処理システムからネットワークを介して前記Ｗｅｂページを求める新たな要求を受け取る動作と、
前記コンパイルされたテーマクラスをインスタンス化して第２のテーマオブジェクトにする動作であって、前記第２のテーマオブジェクトは、前記テーマ制御要素参照にそれぞれ対応し、特定の制御要素タイプをそれぞれ有する、複数のテーマ制御要素オブジェクトを含み、各テーマ制御要素オブジェクトは、該テーマ制御要素オブジェクトの制御要素タイプと同じタイプの制御要素に適用されるべき少なくとも１つの特性を規定する、動作と、
前記Ｗｅｂページクラスをインスタンス化して第２のＷｅｂページオブジェクトにする動作であって、前記第２のＷｅｂページオブジェクトは、前記情報コンテンツに対応する要素オブジェクトと、前記制御要素参照にそれぞれ対応し、特定の制御要素タイプそれぞれを有する、複数の制御要素オブジェクトとを含み、各制御要素オブジェクトは、前記第２のテーマオブジェクトの前記複数のテーマ制御要素オブジェクトのうち、該制御要素オブジェクトと同じ制御要素タイプのテーマ制御要素オブジェクトを呼び出すための機能呼び出しを含む、動作と、
前記第２のＷｅｂページオブジェクトを実行することによって、前記要素オブジェクトに対応する前記情報コンテンツと、前記第２のＷｅｂページオブジェクトの前記複数の制御要素オブジェクトに対応する制御要素であって、前記複数の制御要素オブジェクトの前記機能呼出しにより前記制御要素タイプに応じてそれぞれ呼び出される前記第２のテーマオブジェクトの前記テーマ制御要素オブジェクトによって前記少なくとも１つの特性が適用された制御要素とを含む、前記Ｗｅｂページをレンダリングする動作と
をさらに含むことを特徴とする請求項１２に記載のコンピュータプログラム。
【請求項１５】
前記方法は、前記レンダリングされたＷｅｂページを前記計算処理システムとネットワーク接続されたクライアント計算処理システムにダウンロードする動作
をさらに含むことを特徴とする請求項１１に記載のコンピュータプログラム。
【請求項１６】
前記デフォルト規則はテーマが適用されるべきと規定するものであり、前記Ｗｅｂページテキスト文書から生成される前記Ｗｅｂページにテーマを適用すべきであると決定する前記動作は、
前記構成設定を読み取る動作と、
前記デフォルト規則に反するものがないことを判定する動作と
を含むことを特徴とする請求項１１に記載のコンピュータプログラム。
【請求項１７】
前記テーマオブジェクトの前記複数のテーマ制御要素オブジェクトが、第１の制御要素タイプの制御要素に第１の特性を適用する第１のテーマ制御要素オブジェクトと、第２の制御要素タイプの制御要素に第２の特性を適用する第２のテーマ制御要素オブジェクトとを含み、前記Ｗｅｂページオブジェクトの前記複数の制御要素オブジェクトが、第１の制御要素タイプの制御要素がレンダリングされることとなる第１の制御要素オブジェクトと、第２の制御要素タイプの制御要素がレンダリングされることとなる第２の制御要素オブジェクトとを含み、前記第１および第２の制御要素オブジェクトがそれぞれ、前記第１および第２のテーマ制御要素オブジェクトを呼び出すための機能呼出しを含むとき、
前記Ｗｅｂページオブジェクトを実行することによって前記複数の制御要素オブジェクトに対応する制御要素であって、前記テーマ制御要素オブジェクトによって規定された少なくとも１つの特性が適用された制御要素を含む前記Ｗｅｂページをレンダリングする前記動作は、
前記Ｗｅｂページオブジェクトに含まれる前記第１および第２の制御要素オブジェクトを実行することによって、前記第１および第２の制御要素オブジェクトから前記機能呼出しを介してそれぞれ呼び出される前記第１および第２のテーマ制御要素オブジェクトによって前記第１および第２の特性が適用された制御要素を含む前記Ｗｅｂページをレンダリングする動作を含むことを特徴とする請求項１１に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＷｅｂページレンダリング技術に関する。より詳細には、本発明は、Ｗｅｂページ定義中で指定されたテーマに関連する具体的属性を指定なしにテーマをＷｅｂページに適用できる機構に関する。
【背景技術】
【０００２】
計算処理技術は、われわれの仕事や遊びの姿を変容させてきた。例えば、ブラウザを備えるネットワークまたはインターネット対応の計算処理システムまたは装置を用いるユーザは、世界中に広がる何千もの様々なＷｅｂサイトにナビゲートすることができる。ナビゲートには、そのＷｅｂサイトを運営するサーバにＷｅｂページ要求を送信すること、次いで、そのサーバからそのＷｅｂページを表すマークアップ言語を受信することが関与する。次いで、ブラウザは、そのＷｅｂページのマークアップ言語表現を使用して画面上にＷｅｂページを表示させる。
【０００３】
従来の方法では、Ｗｅｂページは、レンダリングされると、ユーザがそのＷｅｂページとある程度の対話ができるようにする制御要素を生じる対話式要素を含む。例えば、その制御要素は、ユーザがマウスで選択して何らかの機能を実施することのできるボタン（例えば、「ｇｏ（ジャンプ）」ボタン、「ｈｅｌｐ（ヘルプ）」ボタン、「ｓｅｎｄ（送信）」ボタンおよび「ｓｕｂｍｉｔ（実行依頼）」ボタン、「ｎｅｘｔ（次へ）」ボタンなど）を含むことができる。また、制御要素は、ユーザが、アドレス、電話番号、サーチ項目、製品名などのテキスト情報を入力できるテキストボックスとすることもできる。制御要素はラベルとすることもできる。より複雑な制御要素は、ユーザが、それを介して、様々なビューを選択することによってナビゲートし、あるいはカレンダエントリまたは予約エントリを入力できるカレンダとすることもできる。
【０００４】
そうした制御のＷｅｂページへの挿入を可能にする多くの技術がある。１つの従来型の手法を図５に関連して示す。図５では、Ｗｅｂページテキスト文書５０１（具体的には、ＡＳＰＸＷｅｂページ文書）が制御集合５０２に変換され、次いでそれを使用して、ブラウザが直接解釈することのできるマークアップ言語（ハイパーテキストマークアップ言語など）の形態でＷｅｂページ５０３がレンダリングされる。
【０００５】
この例では、Ｗｅｂページテキスト文書５０１は、縦の省略記号５１１Ａから５１１Ｅによって表される他の静的マークアップ言語５１１に間に散在させることのできる制御要素参照５１２から５１５を含む多数の制御要素への参照を含む。制御要素参照のそれぞれは、制御要素の挙動を指定する１つまたは複数の属性を含む。制御要素参照のそれぞれは、その制御要素がサーバで、ブラウザが直接解釈することのできるマークアップ言語にレンダリングされるべきことを示す値を持つ属性「ｒｕｎａｔ」を含む。さらに、制御要素参照５１２は、「ｉｎｐｕｔ」の識別子属性を持つと共に「Ｎａｍｅ：」のテキスト属性を持つラベル制御要素を参照する。制御要素参照５１３は、ＴｅｘｔＢｏｘ制御要素を参照する。制御要素参照５１４は、カレンダ制御要素を参照する。制御要素参照５１５は、「Ｇｏ」のテキスト属性を持つと共に、ユーザがそのボタン制御要素の対応する可視表現をクリックすると実行される「ｆｏｏ」と呼ばれる機能を結果として生じるＯｎＣｌｉｃｋ属性を持つボタン制御要素を参照する。機能「ｆｏｏ」はＷｅｂページテキスト文書５０１の内部にあっても外部にあってもよい。
【０００６】
Ｗｅｂページテキスト文書５０１は構文解析され、矢印５１５で表すように制御集合５０２にコンパイルされる。制御集合５０２は、実行されると（矢印５２５で示すように）、Ｗｅｂページ５０３を、ブラウザが直接解釈することのできるマークアップ言語にレンダリングするページオブジェクトをインスタンス化する包括的ページオブジェクトクラス５２０を含む、多数のオブジェクトクラスを含む。わかりやすくするために、Ｗｅｂページ５０３を、そのこの段階での状態、すなわち、マークアップ言語文書としてではなく、それが最終的にはブラウザによって提示されるはずの状態として示す。
【０００７】
ページオブジェクトクラス５２０は、実行されると（Ｗｅｂページ５０３で部分５３１Ａおよび５３１Ｂで表すように）、静的マークアップ言語部分５３１をレンダリングするリテラルオブジェクトをインスタンス化するリテラルクラス５２１を含む、いくつかの下層（descendent）オブジェクトクラスを含む。ページオブジェクトクラス５２０は、実行されるとＬａｂｅｌ制御要素５３２をレンダリングするラベルオブジェクトをインスタンス化する下層ラベルクラス５２２を含む。ページオブジェクトクラス５２０は、実行されるとＴｅｘｔＢｏｘ制御要素５３３をレンダリングするＴｅｘｔＢｏｘオブジェクトをインスタンス化する下層ＴｅｘｔＢｏｘクラス５２３を含む。ページオブジェクトクラス５２０は、実行されるとＣａｌｅｎｄａｒ制御要素５３４をレンダリングするカレンダオブジェクトをインスタンス化する下層Ｃａｌｅｎｄａｒオブジェクトクラス５２４を含む。さらに、ページオブジェクトクラス５２０は、実行されるとＢｕｔｔｏｎ制御要素５３５をレンダリングするボタンオブジェクトをインスタンス化する下層Ｂｕｔｔｏｎオブジェクトクラス５２５を含む。
【０００８】
前述のレンダリング技術は、各制御要素の機能の柔軟性を可能にするので有利である。また、必要に応じて個々のＷｅｂページにさらなる制御要素を定義することもできる。それらの制御要素は、制御要素の全体的外観に影響を与えるさらなる属性を可能にする。例えば、制御要素は、背景色、前景色、フォントサイズ、フォントタイプ、テキスト内容、イメージ、テンプレート、複合特性などの属性を持つことができる。様々な制御要素に特定の属性を適用することによって、Ｗｅｂページのルックアンドフィール（ｌｏｏｋ  ａｎｄ  ｆｅｅｌ）をカスタマイズすることができ、個々の組織または製品に関連付けられていることを認識させ、それによってブランド認知度を高めることさえできる。
【０００９】
しかし、別の関連するＷｅｂページに類似の外観またはテーマを適用するためには、その関連Ｗｅｂページもやはり、類似の属性諸設定を持つ制御要素を含むことになる。これら関連Ｗｅｂページの全部のテーマを変更する必要がある場合には、通常、各文書中の制御要素の諸属性を細々と変更することによって各Ｗｅｂページが変更されるであろう。これには相当な時間を要することもある。
【００１０】
したがって、テーマを複数の関連文書全体に一貫してより容易に適用できると共に、そのテーマへの変更をすべての関連Ｗｅｂページテキスト文書全体により容易に適用できるような方式で、Ｗｅｂページ文書にテーマを適用する機構があれば、有利なはずである。そのテーマを、１つまたは複数の下層制御要素クラスを有するページオブジェクトクラスの状況で適用することができ、それによって、制御要素をレンダリングする際のそのタイプおよび機構での柔軟性の利点、およびその制御要素によって可能とされる対応する柔軟な機能を保持することができれば、さらに有利なはずである。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来技術に伴う前述の問題は、Ｗｅｂページ定義中にそのテーマに関連する特性を必要とせずにテーマをＷｅｂページに適用する方式で計算処理システムがＷｅｂページ定義からＷｅｂページを生成するＷｅｂページレンダリング機構を対象とする、本発明の原理によって克服される。
【課題を解決するための手段】
【００１２】
Ｗｅｂページ定義は、ラベル、ボタン、テキストボックス、カレンダなどの制御要素を参照する。レンダリングプロセスの間に、Ｗｅｂページ定義に対応するＷｅｂページは適用されるテーマを持つべきであると決定される。これは、デフォルトで（例えば構成設定を使用して）も、あるいはテーマが適用されるべきであると指示するディレクティブ（directive）を検出することによっても決定され得る。これに応答して、１つまたは複数のテーマ指向テキスト文書がアクセスされる。テーマ指向文書は、制御要素に関連する特性または属性を一括して記述し、そのテーマの所望のルックアンドフィールを推進する。そうした属性には、背景色、前景色、フォントサイズ、フォントタイプ、イメージ、テンプレート、複合特性などが含まれ、それらを制御要素の各タイプごとに指定することができる。また、それらの属性には、カレンダ表示を、その日に関する詳細を含む日別モードで初期設定するかどうか、あるいはカレンダ表示を週別モードで初期設定するかそれとも月別モードで初期設定するかなど、より複雑な挙動も含まれ得る。
【００１３】
次いで、それら１つまたは複数のテーマ指向文書に基づいてテーマクラスが生成され、コンパイルされる。そのテーマクラスからテーマオブジェクトがインスタンス化される。テーマオブジェクトは、それが実行されると、結果として特定のテーマ指向特性が制御要素に適用されることになる部分を含む。その場合、その制御要素をレンダリングするオブジェクトインスタンスによって呼び出されたときに、そのテーマ特性が適当に設定された制御要素を実行することができる。一例では、このテーマオブジェクトは、個々の制御要素タイプに対応する下層オブジェクトを含む。
【００１４】
このレンダリング機構は、Ｗｅｂページ定義に基づいてＷｅｂページオブジェクトも生成する。このＷｅｂページオブジェクトは、制御要素をレンダリングし、かつテーマ指向特性をその制御要素に適用するテーマオブジェクトへの機能呼び出しを含むオブジェクトを含む。次いで、Ｗｅｂページは、そのＷｅｂページクラスのインスタンスを実行することによってレンダリングされる。
【００１５】
本発明のその他の特徴および利点を以下の説明で述べる。それらの一部は、以下の説明を読めば自明であり、あるいは本発明を実施することによって知ることができる。本発明の特徴および利点は、添付の特許請求の範囲で具体的に指し示される手段およびその組合せによって実現し、得ることができる。本発明の上記およびその他の特徴は、以下の説明および添付の特許請求の範囲を読めばより完全に明らかになるであろう。あるいはそれを以下で述べるように本発明を実施することによって知ることもできる。
【発明を実施するための最良の形態】
【００１６】
本発明の上記その他の利点および特徴を得ることのできる方式を説明するために、簡単に前述した本発明のより詳細な説明を、添付の図面に示す本発明の具体的実施形態を参照して行う。これらの図面は本発明の典型的な実施形態を示すにすぎず、したがって、その範囲を限定するためのものであるとみなすべきではないことを理解した上で、以下では、添付の図面を使用して、本発明をさらに具体的に詳しく記述し、説明する。
【００１７】
本発明の原理は、計算処理システムがＷｅｂページ定義からＷｅｂページを生成するＷｅｂページレンダリング機構に関連する。このレンダリングプロセスは、その制御要素のテーマ特有の特性がＷｅｂページ定義中に含まれることを必要とせずに、個々のテーマと共に制御要素をレンダリングする。その代わりに、それらのテーマ特有の特性は、１つまたは複数のテーマ指向テキスト文書中に記述される。このテーマ指向テキスト文書はテーマクラスにコンパイルされる一方、Ｗｅｂページ定義はＷｅｂページクラスにコンパイルされる。Ｗｅｂページは、Ｗｅｂページクラスのインスタンスをテーマクラスのインスタンスと併せて実行することによってレンダリングされる。
【００１８】
本発明の範囲内に含まれる実施形態は、コンピュータ実行可能命令またはデータ構造を搬送または記憶するコンピュータ可読媒体を含む。そうしたコンピュータ可読媒体は、汎用または特殊目的コンピュータからアクセス可能な任意の使用可能媒体とすることができる。例をあげると、それだけに限らないが、そうしたコンピュータ可読媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたはその他の光ディスク記憶、磁気ディスク記憶装置その他の磁気記憶装置、あるいはコンピュータ実行可能命令またはデータ構造の形態で所望のプログラムコード手段を搬送または記憶するのに使用できると共に、汎用または専用コンピュータからアクセスすることのできる他の任意の媒体などの物理的コンピュータ可読媒体が含まれ得る。
【００１９】
ネットワークまたは別の通信接続（有線、無線、または有線もしくは無線の組合せのいずれか）を介してコンピュータに情報が転送または提供されるとき、そのコンピュータはその接続を適切にコンピュータ可読媒体として見る。したがって、そうしたどのような接続も適切にコンピュータ可読媒体と呼ぶことができる。また、前述のものの組合せもコンピュータ可読媒体の範囲内に含む必要がある。コンピュータ実行可能命令には、例えば、汎用コンピュータ、専用コンピュータ、または専用処理装置にある機能または機能群を実施させる任意の命令またはデータが含まれる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、あるいはソースコードとすることさえできる。必須ではないが、以下では本発明を、ネットワーク環境でコンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的状況で説明する。一般に、プログラムモジュールには、個々のタスクを実行し、または個々の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。
【００２０】
当分野の技術者であれば、本発明は、パーソナルコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含めて、多様なコンピュータシステム構成を持つネットワーク計算処理環境で実施できることを理解するであろう。本発明は、通信ネットワークを介して（有線リンク、無線リンク、あるいは有線リンクまたは無線リンクの組合せのいずれかによって）リンクされたローカルおよびリモート処理装置によってタスクが実施される分散計算処理環境で実施することもできる。分散計算処理環境では、プログラムモジュールはローカルとリモート両方のメモリ記憶装置に位置することができる。
【００２１】
図１に、本発明の原理をコンピュータ１２０の形態で使用できる適当な計算処理環境を示す。コンピュータ１２０は処理装置１２１、システムメモリ１２２、およびシステムメモリ１２２を含む様々なシステムコンポーネントを処理装置１２１に結合するシステムバス１２３を含む。
【００２２】
システムバス１２３は、メモリバスまたはメモリ制御機構、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含むいくつかのタイプのバス構造のいずれかとすることができる。システムメモリは読取り専用メモリ（ＲＯＭ）１２４およびランダムアクセスメモリ（ＲＡＭ）１２５を含む。基本入出力システム（ＢＩＯＳ）１２６は、起動時などに、コンピュータ１２０内の要素間での情報転送を支援する基本ルーチンを含むものであり、ＲＯＭ１２４に記憶することができる。
【００２３】
コンピュータ１２０は、磁気ハードディスク１３９の読取りおよび書込みを行う磁気ハードディスクドライブ１２７、取り外し可能磁気ディスク１２９の読取りおよび書込みを行う磁気ディスクドライブ１２８、およびＣＤ−ＲＯＭその他の光媒体などの取り外し可能光ディスク１３１の読取りおよび書込みを行う光ディスクドライブ１３０も含むことができる。磁気ハードディスクドライブ１２７、磁気ディスクドライブ１２８、および光ディスクドライブ１３０は、それぞれ、ハードディスクドライブインターフェース１３２、磁気ディスクドライブインターフェース１３３、および光ドライブインターフェース１３４によってシステムバス１２３に接続される。これらのドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ１２０用のコンピュータ実行可能命令、データ構造、プログラムモジュールおよびその他のデータの不揮発性記憶を提供する。本明細書で述べる例示的実施形態は磁気ハードディスク１３９、取り外し可能磁気ディスク１２９および取り外し可能光ディスク１３１を利用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ＲＡＭ、ＲＯＭなど、他のタイプのデータ記憶用コンピュータ可読媒体を使用することもできる。
【００２４】
ハードディスク１３９、磁気ディスク１２９、光ディスク１３１、ＲＯＭ１２４またはＲＡＭ１２５には、１つまたは複数のプログラムモジュールを含むプログラムコード手段を記憶することができ、それにはオペレーティングシステム１３５、１つまたは複数のアプリケーションプログラム１３６、その他のプログラムモジュール１３７、およびプログラムデータ１３８が含まれる。ユーザは、キーボード１４０、ポインティング装置１４２、またはマイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどその他の入力装置（図示せず）を介してコンピュータ１２０にコマンドおよび情報を入力することができる。上記その他の入力装置はしばしば、システムバス１２３に結合されたシリアルポート１４６を介して処理装置１２１に接続される。これらの入力装置は、代替として、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）など他のインターフェースによって接続することもできる。ビデオアダプタ１４８などのインターフェースを介してシステムバス１２３にモニタ１４７または別の表示装置も接続される。パーソナルコンピュータは通常、モニタ以外に、スピーカや印刷装置など他の周辺出力装置（図示せず）を含む。
【００２５】
コンピュータ１２０は、リモートコンピュータ１４９ａや１４９ｂなど、１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化環境で動作することができる。リモートコンピュータ１４９ａおよび１４９ｂは、それぞれ、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたはその他一般のネットワークノードとすることができ、通常は、コンピュータ１２０に関して前述した要素の多くまたはすべてを含むが、図１にはメモリ記憶装置１５０ａおよび１５０ｂとそれらに関連するアプリケーションプログラム１３６ａおよび１３６ｂだけが示されている。図１に示す論理接続は、限定のためではなく例としてここに示すローカルエリアネットワーク（ＬＡＮ）１５１および広域ネットワーク（ＷＡＮ）１５２を含む。そうしたネットワーク環境は、事業所規模または企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは一般的なものである。
【００２６】
ＬＡＮネットワーク環境で使用されるときは、コンピュータ１２０はネットワークインターフェースまたはアダプタ１５３を介してローカルエリアネットワーク１５１に接続される。ＷＡＮネットワーク環境で使用されるときは、コンピュータ１２０はモデム１５４、無線リンク、またはインターネットなどの広域ネットワーク１５２を介して通信を確立する他の手段を含むことができる。モデム１５４は、内蔵でも外付けでもよく、シリアルポートインターフェース１４６を介してシステムバス１２３に接続される。ネットワーク化環境では、コンピュータ１２０に関連して示すプログラムモジュール、またはその一部は、リモートのメモリ記憶装置に記憶することができる。図示のネットワーク接続は例示のためのものであり、広域ネットワーク１５２を介して通信を確立する他の手段を使用することもできることが理解されるであろう。
【００２７】
図１は本発明に適した動作環境を表すが、本発明の原理は、ネットワークサイトを参照することのできるどのような計算処理システムでも用いることができる。図１に示す計算処理システムは例示のためのものにすぎず、実際は本発明の原理を実装することのできる多種多様な環境の小さな一部さえ表してはいない。この説明および特許請求の範囲では、「計算処理システム」は、概して、ソフトウェアを使用して１つまたは複数の機能を実施することのできる任意の１つまたは複数のハードウェアコンポーネントであると定義される。計算処理システムの例には、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末（ＰＤＡ）、電話、または処理機能を備えるその他任意のシステムまたは装置が含まれる。
【００２８】
図２に、Ｗｅｂページ定義中にテーマに関連する特性を含めずにテーマをＷｅｂページに適用する方式でＷｅｂページ定義からＷｅｂページを生成する方法２００の流れ図を示す。図３に、データ構造プロセスの流れ３００を示す。以下では、図３のデータ構造プロセスの流れ３００を、図２の方法２００をしばしば参照しながら説明する。
【００２９】
データ構造プロセスの流れ３００は、Ｗｅｂページ定義の一例として使用されるＷｅｂページテキスト文書３０１を含む。一実施形態では、このＷｅｂページテキスト文書は、ＡＳＰＸＷｅｂページ文書であるが、これは必須ではない。このＷｅｂページ定義はデータベースまたはＷｅｂサービスから取り出すこともできる。しかし、図示の実施形態では、Ｗｅｂページ定義はＷｅｂページテキスト文書の形を取り、したがって、以下では、本発明の原理をＷｅｂページテキスト文書に関連して説明する。ただし、当分野の技術者は、この説明を考察すれば、他のどのようなＷｅｂページ定義からのＷｅｂページも本発明の範囲内に確固として含まれるものであることを理解するであろう。Ｗｅｂページテキスト文書３０１は、テーマが適用されるべきこと、およびそのテーマの名称が「Ｃｏｎｔｅｍｐｏｒａｒｙ」であることを示すディレクティブ３１０を含む。計算処理システムは、このテーマに対応する多数のテーマ指向テキスト文書３４１にアクセスすることができる。１つまたは複数の他のテーマに関連する他のテーマ指向文書も存在し得る。一実施形態では、すべてのテーマ指向文書は共通ディレクトリ内に位置する。このディレクトリは、各可能なテーマごとに１つずつの、多数の下層ディレクトリを持つことができる。多数のテーマ指向文書（具体的には、省略記号３４１Ｅで示すように他にもあり得る文書中の文書３４１Ａから３４１Ｄ）があるが、好都合なテーマ指向文書が１つだけしかないことも、複数あることもあり得る。
【００３０】
図２を参照すると、方法２００はクライアント計算処理システムからＷｅｂページを求める要求を受け取る動作を含む（動作２０１）。このＷｅｂページは、図３のＷｅｂページテキスト文書３０１などのＷｅｂページテキスト文書から動的に生成される。現行の要求／応答指向プロトコル（ネットワークを介してＷｅｂページを検索する際に一般的なハイパーテキスト転送プロトコル（ＨＴＴＰ）など）では、Ｗｅｂページはしばしば、要求に応答して検索される。しかし、本発明の原理は、要求／応答指向環境での適用に限られるものではない。Ｗｅｂページは、ネットワークを介して受け取られるどのような個々の要求の充足とも無関係な他の何らかの理由で動的に構築されることもある。
【００３１】
計算処理システムが、（要求に応答して、またはそれ以外の理由で）Ｗｅｂページテキスト文書に対応するＷｅｂページを構築すべきであると決定すると、その計算処理システムは、次いで、そのＷｅｂページテキスト文書に対応するＷｅｂページが適用されるテーマを持つべきであると決定する（動作２０２）。その計算処理システムはこれを、対応するＷｅｂページテキスト文書中のディレクティブを読み取ることによって実施することができる。例えば、そのＷｅｂページテキスト文書３０１について、ディレクティブ３１０を読み取り、評価することができる。あるいは、（構成設定で記述されるなどの）デフォルト規則で、テーマを適用すべきであると指示することもできる。その場合、計算処理システムが、デフォルト規則に反するものがないと判定した場合は、計算処理システムは、それに対応して、テーマを適用すべきであると決定することができる。前述したように、レンダリングに使用可能な複数のテーマがあることもある。したがって、ディレクティブまたはデフォルト規則は、どのテーマを適用すべきかを指定することもできる。
【００３２】
次いで、計算処理システムは、Ｗｅｂページテキスト文書中に詳細なテーマ情報を必要とせずに、そのテーマをＷｅｂページテキスト文書に適用する機能的、結果指向ステップを実施する（ステップ２１０）。これには、この結果を実現するどのような対応する動作も含まれ得る。ただし、図示の実施形態では、ステップ２１０は、対応する動作２１１から２１４および２２１から２２３を含む。
【００３３】
具体的には、計算処理システムは、そのテーマに対応すると共に、そのＷｅｂページテキスト文書の制御要素に適用される少なくとも１つの特性を一括して記述する１つまたは複数のテーマ指向テキスト文書にアクセスする（動作２１１）。図３では、それらのテーマ指向テキスト文書を、テーマ指向テキスト文書３４１で表す。
【００３４】
第１のテーマ指向テキスト文書３４１Ａの内容が示されている。テーマ指向テキスト文書３４１Ａ中の制御要素参照のフォーマットがどのようであるかは、共通のタイプの制御要素についての、Ｗｅｂページテキスト文書３０１中の制御参照のフォーマットと、全く同一ではないにしろ、類似している。実際、テーマ指向文書３４１Ａ中の制御要素参照のスキーマは、任意の所与のタイプについてのＷｅｂページテキスト文書３０１の制御要素参照のスキーマと同一とすることができる。
【００３５】
例えば、制御要素参照のスキーマは、各文書ごとに、「ａｓｐ：」接頭部を持つサーバ側制御要素を含む。各制御要素参照はゼロまたは１以上の属性を含み、「ｒｕｎａｔ」属性は、対応する制御要素が、ブラウザによって直接解釈可能なマークアップ言語にどこでレンダリングされるかを指示する値を持つ。図示の実施形態では、すべての制御要素参照の「ｒｕｎａｔ」属性は、すべての制御要素のレンダリングプロセス全体が、リモートブラウザによってではなく、そのＷｅｂページをホスティングする計算処理システムによって処理されるべきであると指示する、「ｓｅｒｖｅｒ」の値を持つ。各制御要素参照のスキーマは類似しており、あるいは同一でさえあるので、テーマ指向特性を指定するわずかな編集を行うだけで、単純な切り取りおよび貼り付け、またはコピー操作によって極めて容易にテーマ指向文書を構築することができる。
【００３６】
次いで計算処理システムは、１つまたは複数のテーマ指向テキスト文書に基づいてテーマクラスを生成する（動作２１２）。このテーマクラスは、ソースコードまたはその他のコンパイル可能命令で表すことができる。一実施形態では、このテーマクラスは、Ｃ＃で生成される。次いで、このテーマクラスは、テーマオブジェクトのインスタンス化に使用できるテーマクラスにコンパイルされる（動作２１３）。次いで、コンパイル済みのテーマクラスを使用してテーマオブジェクトがインスタンス化される（動作２１４）。このクラス生成、コンパイル、およびインスタンス化の動作は図３の矢印３５５で表され、結果としてテーマ制御集合３４２が生成される。
【００３７】
テーマ制御集合３４２はそのルートにテーマオブジェクト３６０を含む。テーマオブジェクト３６０は、複数の下層制御要素オブジェクト３６１から３６７を含む。
【００３８】
例えば、ラベル制御要素３６１は、「Ｓｔｉｃｋｅｒ」というスキン識別子を持つ個々のスキンに対応する。ラベル制御要素３６１は、元のテーマ指向テキスト文書３４１Ａ中の制御要素参照３５１を、動作２１２から２１４のクラス生成、コンパイルおよびインスタンス化プロセスで処理することによって生成される。ラベル制御要素参照３５１に示されるように、ラベル制御要素は、実行されると、「Ｓｔｉｃｋｅｒ」スキンを呼び出す任意のラベル制御要素に特定の前景色を適用する。
【００３９】
ラベル制御要素３６２はどの個々のスキンにも対応しない。したがって、ラベル制御要素３６２は、スキン識別子を指定しない、または存在しないスキン識別子を識別する任意のラベル制御要素にデフォルトで適用される。ラベル制御要素３６２は、元のテーマ指向テキスト文書３４１Ａ中の制御要素参照３５２を、クラス生成、コンパイルおよびインスタンス化プロセスで処理することによって生成される。ラベル制御要素参照３５２に示されるように、ラベル制御要素は、実行されると、ラベルに別の特定の前景色を適用する。
【００４０】
ＴｅｘｔＢｏｘ制御要素３６３はどの個々のスキンにも対応しない。したがって、ＴｅｘｔＢｏｘ制御要素３６３は、スキン識別子を指定しない、または存在しないスキン識別子を指定する任意のＴｅｘｔＢｏｘ制御要素にデフォルトで適用される。ＴｅｘｔＢｏｘ制御要素３６３は、元のテーマ指向テキスト文書３４１Ａ中の制御要素参照３５３をクラス生成、コンパイル、およびインスタンス化プロセスで処理することによって生成される。ＴｅｘｔＢｏｘ制御要素３６３に示されるように、ＴｅｘｔＢｏｘ制御要素は、実行されると、ラベルに別のある背景色を適用する。
【００４１】
ＴｅｘｔＢｏｘ制御要素３６４は、「Ｍｏｄｅｒｎ」というスキン識別子を持つ個々のスキンに対応する。ＴｅｘｔＢｏｘ制御要素３６４は、元のテーマ指向テキスト文書中の制御要素参照３５４を、クラス生成、コンパイル、およびインスタンス化プロセスで処理することによって生成される。ＴｅｘｔＢｏｘ制御要素参照３５４に示されるように、ＴｅｘｔＢｏｘ制御要素は、実行されると、「Ｍｏｄｅｒｎ」スキンを呼び出す任意のＴｅｘｔＢｏｘ制御要素にある背景色を適用する。
【００４２】
Ｃａｌｅｎｄａｒオブジェクト３６５も、テーマ指向テキスト文書３４１の１つの対応するＣａｌｅｎｄａｒ制御要素参照（図示せず）を、動作２１２から２１４のクラス生成、コンパイルおよびインスタンス化プロセスで処理することによって生成される。Ｃａｌｅｎｄａｒオブジェクト３６５は個々のスキンに対応せず、したがって、デフォルトで適用される。
【００４３】
Ｂｕｔｔｏｎオブジェクト３６６は、テーマ指向テキスト文書３４１の１つの対応するボタン制御要素参照（図示せず）を、クラス生成、コンパイルおよびインスタンス化プロセスで処理することによって生成され、識別子「ＣｏｍｍａｎｄＢｕｔｔｏｎ」を持つスキンに対応する。
【００４４】
その他のオブジェクト３６７は、１つまたは複数のテーマ指向テキスト文書の対応する１つまたは複数の他の制御要素参照（図示せず）を、クラス生成、コンパイルおよびインスタンス化プロセスで処理することによって、１つまたは複数の他の制御要素オブジェクトを生成することもできることを表す。
【００４５】
図２では、テーマ指向文書へアクセスし（動作２１１）、テーマクラスを生成し（動作２１２）、テーマクラスをコンパイル（動作２１３）した後で、テーマオブジェクトがインスタンス化される（動作２１４）。ただし、動作２１１から２１３のアクセスし、生成し、コンパイルする各動作は、動作２１１から２１３の以前の実行によってそのテーマクラスがすでに存在する場合には、繰り返す必要はない。
【００４６】
計算処理システムは、Ｗｅｂページテキスト文書に基づいて、その上でＷｅｂページオブジェクトのインスタンスを生成することのできるＷｅｂページクラスを生成することもできる（動作２２１）。Ｗｅｂページクラスは、Ｗｅｂページ文書から直接コンパイルすることができる。あるいは、Ｗｅｂページクラスは、まず、Ｗｅｂページテキスト文書に基づいて未コンパイルの（例えば、ソースコードまたはその他のコンパイル可能テキストを含み得る）Ｗｅｂページクラスを生成し、次いで、その未コンパイルＷｅｂページクラスをＷｅｂページクラスにコンパイルすることによって生成することもできる。
【００４７】
次いで、計算処理システムは、そのＷｅｂページクラスを使用してＷｅｂページオブジェクトをインスタンス化する（動作２２２）。Ｗｅｂページは、Ｗｅｂページオブジェクトを実行することによって（ブラウザが直接解釈することのできるマークアップ言語に）レンダリングすることができる（動作２２３）。Ｗｅｂページレンダリングが、動作２０１で示すようにクライアント要求に応答したものである場合は、レンダリング済みＷｅｂページをそのクライアントにダウンロードすることができる（動作２３１）。
【００４８】
例えば、図３を参照すると、Ｗｅｂページテキスト文書３０１は、矢印３１５で表されるように、動作２２１および２２２のクラス生成およびインスタンス化プロセスを経て、そのルートノードとしてページオブジェクト３２０を含むページ制御集合３０２を生成することができる。
【００４９】
ページオブジェクト３２０は、実行されると、レンダリング済みページ３０３の静的マークアップ言語部分をレンダリングするリテラルオブジェクト３２１を含めて、いくつかの下層オブジェクトを含む。そのリテラルオブジェクトは、Ｗｅｂページテキスト文書３０１の静的部分３１１Ａから３１１Ｆを、動作２２１および２２２のクラス生成およびインスタンス化プロセスで処理することによって生成される。
【００５０】
下層ラベル制御要素オブジェクト３２２は、実行されると、レンダリング済みページ３０３のＬａｂｅｌ制御要素をレンダリングする。ラベル制御要素オブジェクト３２２は、Ｌａｂｅｌ制御要素参照３１２をクラス生成およびインスタンス化プロセスで処理することによって生成される。ラベル制御要素は、テキスト「Ｎａｍｅ：」をラベルに適用し、Ｌａｂｅｌ制御要素参照３１２の属性によって表される識別子「ｉｎｐｕｔ」によって識別される。Ｌａｂｅｌ制御要素参照３１２は「Ｓｔｉｃｋｅｒ」という対応するスキン識別子属性を持つことにも留意されたい。したがって、レンダリング済みＷｅｂページ３０３でＬａｂｅｌ制御要素を生成するためにラベル制御要素オブジェクト３２２を実行するときに、テーマオブジェクト３６０のＬａｂｅｌ制御要素オブジェクト３６１も実行され、それによって、ＳｔｉｃｋｅｒスキンがＬａｂｅｌオブジェクトに適用される。
【００５１】
下層ＴｅｘｔＢｏｘ制御要素オブジェクト３２３は、実行されると、レンダリング済みページ３０３のＴｅｘｔＢｏｘ制御要素をレンダリングする。ＴｅｘｔＢｏｘ制御要素オブジェクト３２３は、ＴｅｘｔＢｏｘ制御要素参照３１３をクラス生成およびインスタンス化プロセスで処理することによって生成される。ＴｅｘｔＢｏｘ制御要素参照３１３は対応するスキン識別子属性を持たない。したがって、レンダリング済みＷｅｂページ３０３でＴｅｘｔＢｏｘ制御要素を生成するためにＴｅｘｔＢｏｘ制御要素オブジェクト３２３を実行するときに、テーマオブジェクト３６０のデフォルトのＴｅｘｔＢｏｘ制御要素オブジェクト３６３も実行され、それによってテーマがＬａｂｅｌオブジェクトに適用される。
【００５２】
カレンダ制御要素オブジェクト３２４は、実行されると、レンダリング済みページ３０３のカレンダ制御要素をレンダリングする。カレンダ制御要素オブジェクト３２４は、カレンダ制御要素参照３１４をクラス生成およびインスタンス化プロセスで処理することによって生成される。カレンダ制御要素参照３１４は、対応するスキン識別子属性を持たない。したがって、レンダリング済みＷｅｂページ３０３でカレンダ制御要素を生成するためにカレンダ制御要素オブジェクト３２４を実行するときに、テーマオブジェクト３６０のデフォルトのカレンダ制御要素オブジェクト３６５も実行され、それによってテーマがカレンダオブジェクトに適用される。
【００５３】
ボタン制御要素オブジェクト３２５は、実行されると、レンダリング済みページ３０３のボタン制御要素をレンダリングする。ボタン制御要素オブジェクト３２５は、ボタン制御要素参照３１５をクラス生成およびインスタンス化プロセスで処理することによって生成される。ボタン制御要素参照３１５は、「ＣｏｍｍａｎｄＢｕｔｔｏｎ」という対応するスキン識別子属性を持つ。したがって、レンダリング済みＷｅｂページオブジェクト３０３でボタン制御要素を生成するためにボタン制御要素オブジェクト３２５を実行するときに、テーマオブジェクト３６０のボタン制御要素オブジェクト３６６も実行され、それによってテーマがボタン制御要素オブジェクトに適用される。
【００５４】
その他の制御要素オブジェクト３２６は、Ｗｅｂページテキスト文書３０１中の他の制御要素参照に基づいて生成することのできる１つまたは複数の他の制御要素オブジェクトを表す。例えば、イメージ制御要素参照３１６は、Ｗｅｂページ中のある位置でのイメージの使用を指示する。イメージ制御要素参照３１６は、「ＬｏｇｏＩｍａｇｅ」のスキンを識別する。したがって、テーマ指向文書３４１の１つに対応するテーマ制御要素参照があるはずである。その対応するテーマ制御要素参照はイメージ制御要素参照であるはずであり、そのイメージ制御要素についてレンダリングする個々のイメージファイルを識別するはずである。そのイメージは、例えば、ロゴとすることができる。
【００５５】
動作２２３に示すようにＷｅｂページオブジェクト３２０が実行されると、そのページオブジェクトの対応する制御要素、ならびにテーマ指向文書の対応するテーマ制御要素オブジェクトを実行することによって、制御要素のそれぞれがレンダリングされることになる。このように、単に１組のテーマ指向文書を変更するだけで、複数のＷｅｂページの共通テーマを容易に変更することができる。さらに、テーマ指向テキスト文書中の制御要素参照は、個々の制御要素タイプのＷｅｂページテキスト文書中の制御要素参照と同じスキーマに従うことができるので、テーマ指向文書を極めて容易に、かつ直感的に生成することができる。
【００５６】
本発明の原理を、具体的なユーザインターフェースを生成する一具体例を使用することによってさらに明確にすることができる。
【００５７】
図４Ａに、テーマが適用されないユーザインターフェースを示す。このユーザインターフェースは、Ｗｅｂページテキスト文書に対して前述のプロセスを実施することによって生成することができる。この具体的Ｗｅｂページテキスト文書は、以下のように記述される。
【００５８】
【表１】
0004643931.tif 000002
【００５９】
スキン識別子が複数の制御要素中に含まれているが、この例では、使用可能なテーマ指向文書がなく、図４Ａのユーザインターフェースは当然にテーマなしの状態を反映する。
【００６０】
次に、以下のテーマ指向文書が使用可能であり、Ｗｅｂページテキスト文書によって適用されるテーマに対応するものであると想定する（わかりやすくするために行番号を付加する）。
【００６１】
【表２】
0004643931.tif 000003
【００６２】
図４Ｂに、このテーマ指向文書が使用可能な場合の図４Ａのユーザインターフェースを示す。Ｗｅｂページテキスト文書中のイメージ制御要素が、今度は、テーマ指向テキスト文書中の行１のイメージ制御要素参照を考慮してレンダリングされるため、ロゴがどのように適用されているかに留意されたい。また、ＴｅｘｔＢｏｘおよびＢｕｔｔｏｎ制御要素のルックアンドフィールも、それらがやはり、このテーマ指向テキスト文書の対応する制御要素参照を考慮してレンダリングされるため、同様に変更されている。
【００６３】
本発明を、本発明の精神または本質的特徴から逸脱することなく、他の具体的形態で実施することもできる。前述の実施形態は、あらゆる点で、例示のためのものにすぎず限定するためのものではないとみなされるべきである。したがって、本発明の範囲は、前述の説明によってではなく、添付の特許請求の範囲によって指示されるものである。特許請求の範囲と等価の意味および範囲内に入るすべての変更は、その範囲内に包含されるべきものである。
【図面の簡単な説明】
【００６４】
【図１】本発明の特徴を実装することのできる適当な計算処理システムを示す図である。
【図２】本発明の原理による、テーマと共にＷｅｂページをレンダリングする方法を示す流れ図である。
【図３】本発明の原理によるレンダリングプロセスに関連するデータ構造処理の流れを示す図である。
【図４Ａ】テーマが適用されないユーザインターフェースを示す図である。
【図４Ｂ】テーマが適用された図４Ａのユーザインターフェースを示す図である。
【図５】従来技術によるレンダリングプロセスに関連するデータ構造処理の流れを示す図である。
【符号の説明】
【００６５】
１２０  コンピュータ
１２１  処理装置
１２２  システムメモリ
１２３  システムバス
１２４  ＲＯＭ
１２５  ＲＡＭ
１２６  ＢＩＯＳ
１２７  ハードディスクドライブ
１２８  磁気ディスクドライブ
１２９  取り外し可能磁気ディスク
１３０  光ディスクドライブ
１３１  光ディスク
１３２  ハードディスクドライブインターフェース
１３３  磁気ディスクドライブインターフェース
１３４  光ドライブインターフェース
１３５  オペレーティングシステム
１３６  アプリケーションプログラム
１３７  その他のプログラムモジュール
１３８  プログラムデータ
１３９  磁気ハードディスク
１４０  キーボード
１４２  ポインティング装置
１４６  シリアルポートインターフェース
１４７  モニタ
１４８  ビデオアダプタ
１４９ａ、１４９ｂ  リモートコンピュータ
１５０ａ、１５０ｂ  メモリ記憶装置
１５１  ローカルエリアネットワーク
１５２  広域ネットワーク
１５３  ネットワークインターフェース
１５４  モデム
３００  データ構造処理の流れ
３０１  Ｗｅｂページテキスト文書
３０２  ページ制御集合
３０３  レンダリング済みページ
３１０  ディレクティブ
３１１  静的部分
３１２  Ｌａｂｅｌ制御要素参照
３１３  ＴｅｘｔＢｏｘ制御要素参照
３１４  カレンダ制御要素オブジェクト
３１５  ボタン制御要素参照
３２０  ページオブジェクト
３２１  リテラルオブジェクト
３２２  ラベル制御要素オブジェクト
３２３  ＴｅｘｔＢｏｘ制御要素オブジェクト
３２４  カレンダ制御要素オブジェクト
３２５  ボタン制御要素オブジェクト
３２６  その他の制御要素オブジェクト
３４１  テーマ指向テキスト文書
３４２  テーマ制御集合
３５１〜３５４  制御要素参照
３６０  テーマオブジェクト
３６１、３６２  ラベル制御要素
３６３、３６４  ＴｅｘｔＢｏｘ制御要素
３６５  Ｃａｌｅｎｄａｒオブジェクト
３６６  Ｂｕｔｔｏｎオブジェクト
３６７  その他のオブジェクト
５０１  Ｗｅｂページテキスト文書
５０２  制御集合
５０３  Ｗｅｂページ
５１１  静的マークアップ言語
５１２〜５１５  制御要素参照
５２０  ページオブジェクトクラス
５２１  リテラルクラス
５２２  ラベルクラス
５２３  ＴｅｘｔＢｏｘクラス
５２４  Ｃａｌｅｎｄａｒオブジェクトクラス
５２５  Ｂｕｔｔｏｎオブジェクトクラス
５３１  静的マークアップ言語部分
５３２  Ｌａｂｅｌ制御要素
５３３  ＴｅｘｔＢｏｘ制御要素
５３４  Ｃａｌｅｎｄａｒ制御要素
５３５  Ｂｕｔｔｏｎ制御要素
【図１】
0004643931.tif 000004
【図２】
0004643931.tif 000005
【図３】
0004643931.tif 000006
【図４Ａ】
0004643931.tif 000007
【図４Ｂ】
0004643931.tif 000008
【図５】
0004643931.tif 000009