(57)【要約】説明する実施形態は、ウェブサイト設計の特徴および機能を提供するが、それに限定されない。一実施形態では、コンピューティングシステムは、リッチウェブサイトテンプレートをオーサリングするために使用され得る設計構成要素を含む。ユーザーは、特定のウェブサイトまたは他の用途のためのモデルとして、ウェブサイトテンプレートのアスペクトを使用し、変更することができる。一実施形態では、コンピューティングシステムは、ウェブサイトテンプレートをオーサリングするために使用され得る設計構成要素、および／またはカスタマイズされたウェブサイトを作成する際にウェブサイトテンプレートのアスペクトと対話し、そのアスペクトを変更するために使用され得るスタジオ構成要素を含む。他の実施形態も利用可能である。
2012520509.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ（８）およびメモリ（１２）と、
前記プロセッサ（８）に結合された設計構成要素（１０６）であって、
ウェブサイトテンプレート（１１０）のアスペクトを定義するために使用され得るいくつかのプロパティおよびメソッドを含むベースクラスを定義することであって、前記いくつかのメソッドは１つまたは複数の仮想メソッドを含み、各プロパティは、メタデータ属性を有するプロパティタイプを含む、定義することと、
前記ベースクラスから選択された１つまたは複数のウェブサイトテンプレートプロパティおよびメソッドを含むマスターページを含む前記リッチウェブサイトテンプレート（１１０）を作成することと、
前記ウェブサイトテンプレートプロパティのうちの１つまたは複数に部分的に基づいて前記リッチウェブサイトテンプレート（１１０）の変更可能な部分を定義することと、
前記ウェブサイトテンプレート（１１０）の変更可能な各部分を対応する変更ツールに関連付けることと、
前記リッチウェブサイトテンプレート（１１０）をメモリ（１２）に記憶することと
を行うように構成された設計構成要素（１０６）と
を備えることを特徴とするコンピューティングシステム（１００）。
【請求項２】
前記設計構成要素（１０６）は、専用サーバー（１０２）を用いて前記リッチウェブサイトテンプレート（１１０）を記憶するようにさらに構成されたことを特徴とする請求項１に記載のシステム。
【請求項３】
カスタマイズされたウェブサイトを作成する際に使用するために前記サーバー（１０２）から前記ウェブサイトテンプレート（１１０）にアクセスするように構成されたスタジオ構成要素（１１４）をさらに備えることを特徴とする請求項２に記載のシステム。
【請求項４】
サービス、製品、およびテーマのうちの１つに部分的に基づいてカスタマイズされたウェブサイトを作成するために前記ウェブサイトテンプレート（１１０）を使用するように構成されたスタジオ構成要素（１１４）をさらに備えることを特徴とする請求項１に記載のシステム。
【請求項５】
前記設計構成要素（１０６）は、ＸＡＭＬファイルと、プロパティ記述ファイルと、コードファイルとを含む前記リッチウェブサイトテンプレート（１１０）を作成するようにさらに構成されたことを特徴とする請求項１に記載のシステム。
【請求項６】
前記設計構成要素（１０６）は、前記ベースクラスを定義するようにさらに構成され、仮想メソッドは、更新サイトプロパティメソッドとロードナビゲーションメソッドとを含むことを特徴とする請求項１に記載のシステム。
【請求項７】
前記設計構成要素（１０６）は、テキストプロパティタイプ、ナンバープロパティタイプ、イメージプロパティタイプ、ブラシプロパティタイプ、オーディオプロパティタイプ、およびビデオプロパティタイプのうちの１つまたは複数から選択されたプロパティタイプを含むように前記ベースクラスを定義するようにさらに構成されたことを特徴とする請求項１に記載のシステム。
【請求項８】
前記設計構成要素（１０６）は、前記ウェブサイトテンプレート（１１０）の変更可能な各部分を対応する変更リボンに関連付けるようにさらに構成されたことを特徴とする請求項１に記載のシステム。
【請求項９】
プロセッサ（８）およびメモリ（１２）と、
前記プロセッサ（８）に結合されたスタジオ構成要素（１１４）であって、
ウェブサイトテンプレート（１１０）を使用してリッチウェブサイトを生成することであって、前記ウェブサイトテンプレート（１１０）は、テキストプロパティタイプと、ナンバープロパティタイプと、イメージプロパティタイプと、ブラシプロパティタイプと、オーディオプロパティタイプと、ビデオプロパティタイプとから選択された１つまたは複数のプロパティタイプを含むマスターページから導出され、各プロパティタイプは、表示名属性と、クリックオン属性と、バインドツー（ｂｉｎｄ−ｔｏ）属性とを含むいくつかの属性を有する、生成することと、
前記リッチウェブサイトのパラメーターをメモリ（１２）に記憶することと
を行うように構成されたスタジオ構成要素（１１４）と
を備えることを特徴とするコンピューティングシステム（１００）。
【請求項１０】
サーバー（１０２）から前記リッチウェブサイトテンプレート（１１０）にアクセスするように構成されたウェブブラウザー（１１２）をさらに備えることを特徴とする請求項１３に記載のシステム。
【請求項１１】
前記スタジオ構成要素（１１４）は、選択されたプロパティタイプに基づいて適合された変更リボンを与えるようにさらに構成されたことを特徴とする請求項１３に記載のシステム。
【請求項１２】
前記ウェブサイトテンプレート（１１０）は、ＸＡＭＬファイルと、プロパティ記述ファイルと、サイトデータファイルとを備えることを特徴とする請求項１３に記載のシステム。
【請求項１３】
ウェブサイトをカスタマイズするためのモデルとして使用すべきリッチウェブサイトテンプレート（１１０）のアスペクトをロードするステップであって、前記ウェブサイトテンプレート（１１０）は、テキストプロパティと、ナンバープロパティと、イメージプロパティと、ブラシプロパティと、オーディオプロパティと、ビデオプロパティとを含むいくつかのプロパティを含むマスターページに部分的に基づき、前記ウェブページテンプレートは、テンプレート設計に従って前記いくつかのプロパティのうちの１つまたは複数を含む、ロードするステップと、
前記ウェブサイトテンプレート（１１０）に対応する前記テンプレート設計の前記いくつかのプロパティのうちの１つのプロパティ選択を検出するステップと、
前記ウェブサイトテンプレート（１１０）の前記検出されたプロパティ選択に対応するプロパティのタイプに部分的に基づいて適切なリボンをアクティブにするステップと、
前記リッチウェブサイトテンプレート（１１０）の前記プロパティの変更に部分的に基づいて前記ウェブサイトを更新するステップと、
前記リッチウェブサイトをコンピューター記憶媒体（１２）に記憶するステップと
を含むことを特徴とする方法。
【請求項１４】
ＸＡＭＬファイルと、プロパティ記述ファイルと、サイトデータファイルとを含む前記ウェブサイトテンプレート（１１０）に関連するファイルを生成するステップをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項１５】
前記ウェブサイトテンプレート（１１０）のアスペクトを作成するために仮想メソッドを使用するステップをさらに含むことを特徴とする請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、リッチウェブサイトのオーサリングおよび設計のためのシステムおよび方法に関する。
【背景技術】
【０００２】
この特許文献の開示の一部分は、著作権保護を受ける資料を含んでいる。著作権所有者は、米国特許商標庁の特許ファイルまたは記録中に記載された特許文献または特許開示を何びとかが複製することに異議はないが、その他の場合は、著作権に係る一切の権利を留保する。
【０００３】
ウェブページ設計者は、ウェブサイトのページを作成するために利用可能なウェブページ設計ツールを使用することができる。しかしながら、利用可能なウェブサイト設計ツールの多くは、ウェブサイト設計者に、限られた機能しか提供しない。さらに、いくつかのウェブサイト設計ツールでは、エンドユーザーが、少なくともコンピューター言語および関連する機能をある程度理解している必要がある。したがって、一定のレベルのコンピューティングの知識がないコンピューターユーザーは、利用可能なウェブサイト設計ツールを使用することができないか、または使用したがらないことがある。
【発明の概要】
【０００４】
この概要は、発明を実施するための形態において以下でさらに説明する概念の選択を簡略化された形態で導入するために与えられる。この概要は、請求する主題の主要な特徴または本質的特徴を識別するものでも、請求する主題の範囲を決定するのを助けるものでもない。
【０００５】
本明細書で説明する実施形態は、ウェブサイト設計の特徴および機能を提供するが、それに限定されない。一実施形態では、コンピューティングシステムは、リッチウェブサイトテンプレートをオーサリングするために使用され得る設計構成要素を含む。ユーザーは、特定のウェブサイトまたは他の用途のためのモデルとして、ウェブサイトテンプレートのアスペクトを使用し、変更することができる。一実施形態では、コンピューティングシステムは、ウェブサイトテンプレートをオーサリングするために使用され得る設計構成要素、および／またはカスタマイズされたウェブサイトを作成する際にウェブサイトテンプレートのアスペクトと対話し、そのアスペクトを変更するために使用され得るスタジオ構成要素を含む。他の実施形態も利用可能である。
【０００６】
これらおよび他の特徴および利点は、以下の発明を実施するための形態を読み、関連する図面を検討することにより明らかになろう。上記の概略説明も、以下の発明を実施するための形態も、説明的なものにすぎず、主張する本発明を限定するものではないことを理解されたい。
【図面の簡単な説明】
【０００７】
【図１】リッチウェブサイトオーサリング、設計、および他の機能を提供するように構成され得る構成要素を有する例示的なコンピューティング環境のブロック図である。
【図２】リッチウェブサイトテンプレートを提供するように構成され得る構成要素を有する例示的なコンピューティングシステムのブロック図である。
【図３】リッチウェブサイトテンプレートをオーサリングする例示的なプロセスを示す流れ図である。
【図４】カスタマイズされたウェブサイトを作成するためにリッチウェブサイトテンプレートを使用する例示的なプロセスを示す流れ図である。
【図５Ａ】例示的なスタジオ構成要素ユーザーインターフェイス（ＵＩ）を示す図である。
【図５Ｂ】例示的なスタジオ構成要素ユーザーインターフェイス（ＵＩ）を示す図である。
【図６】例示的なカスタマイズされたウェブサイトを示す図である。
【図７】本明細書で説明する様々な実施形態の実装のための例示的なコンピューティング環境を示すブロック図である。
【発明を実施するための形態】
【０００８】
図１は、リッチウェブサイトの特徴および機能を提供するように構成され得る、いくつかの構成要素を有する例示的なコンピューティング環境１００のブロック図であるが、それに限定されない。様々な実施形態によれば、コンピューティング環境１００の構成要素は、以下で説明するように、カスタマイズされたウェブサイトを作成するために使用され得るリッチウェブサイトテンプレートのアスペクトをオーサリングするために使用され得る。たとえば、ウェブサイト開発者は、リッチウェブサイトオーサリングツールの機能を使用して、リッチコンテンツおよびコントロールを有するウェブサイトテンプレートをオーサリングすることができる。
【０００９】
以下で説明するように、一実施形態によれば、環境１００の構成要素は、リッチウェブサイトテンプレートおよび／またはカスタマイズされたウェブサイトを定義するために使用され得る、いくつかのサイトプロパティおよび値を有する１つまたは複数のスキーマを含み得る。さらに、たとえば、ＸＭＬベースのスキーマなど、１つまたは複数のスキーマと、１つまたは複数のＡＰＩ（アプリケーションプログラミングインターフェイス）とを使用して、リッチウェブサイトテンプレートのアスペクトを表す１つまたは複数のデータ構造を生成することができ、および／またはカスタマイズされたリッチウェブを生成する際に使用されるリッチウェブサイトテンプレートに基づくカスタマイズされたウェブサイトを生成することができる。
【００１０】
たとえば、１つまたは複数のＡＰＩを使用して、テンプレートプロパティを１つまたは複数のスキーマの属性値にバインド、リンク、または関連付けることができる。また、ＡＰＩを使用して、リッチウェブサイトテンプレートに関連するアスペクトを制御するために使用され得る、以下で説明する様々なメソッドを提供することができる。一実施形態では、ウェブサイトテンプレートおよび／またはカスタマイズされたウェブサイトテンプレートは、ローカルおよび／またはリモートメモリの一部としての１つまたは複数のデータ構造として記憶され得る。さらに、リッチウェブサイトテンプレート（またはそのテンプレートへのリンク）は、専用ウェブサイト上にポストされ、専用サーバーまたは他のストアのメモリに記憶され得る。たとえば、リッチウェブサイトテンプレートを作成した後、テンプレート開発者またはオーサーは、そのテンプレートをアップロードし、次いで、大衆、ユーザーのグループ、または個人が、そのテンプレートにアクセスし、そのテンプレートを使用することができる。
【００１１】
各リッチウェブサイトテンプレートは、設計され、特定のソース、サービス、製品などに関連付けられ、その後、特定の選好またはウェブサイトテーマに応じてコンシューマーによってカスタマイズされ得る。一実施形態では、リッチウェブサイトテンプレートは、特定のエンティティ、サービス、製品などに適合され得る。一例として、コンピューター修理サービスを提供するビジネスオーナーは、修理サービスを広告するためのウェブサイト設計するとき、開始ポイントまたはモデルとして望ましい機能、コンテンツ、および／またはレイアウトを有するリッチウェブサイトテンプレートを使用することができる。一実施形態では、１つまたは複数のリッチウェブサイトテンプレートは、さらなる使用および／または変更のためにコンピューティングデバイスもしくはシステムにダウンロードもしくはプッシュされ、および／または、たとえばインターネットなど、コンピューティングネットワークを使用してリモートでアクセスされ、使用され得る。
【００１２】
図１に示すように、コンピューティング環境１００は、それぞれ、少なくとも１つのプロセッサとメモリとを含み、１つまたは複数のネットワークを使用して互いに通信している、サービングシステムまたは構成要素１０２と、エンドユーザーコンピューティングシステム１０４とを含むが、それに限定されない。１つのコンピューティングシステム１０４と１つのサービング構成要素１０２とが示されているが、コンピューティング環境１００は、それに限定されず、任意の数のそのようなシステムおよび他の構成要素を含み得る。たとえば、コンピューティング環境１００は、いくつかのデスクトップ、ラップトップ、ポータブルデバイスなど、複数のユーザーコンピューターと通信しているサービングシステムを含み得る。オペレーティングシステム、ワードプロセッシングアプリケーション、電子メールアプリケーション、カレンダーアプリケーションなど、他のアプリケーションをコンピューティングシステム１０４に含めることもできる。加えて、構成要素の機能をさらに結合または分割することができる。
【００１３】
一実施形態では、サービング構成要素１０２は、設計構成要素１０６、いくつかのリッチウェブサイトアプリケーション１０８、いくつかのリッチウェブサイトテンプレート１１０、および／またはいくつかのスキーマ１１１を含むが、それに限定されない。以下で説明するように、いくつかのリッチウェブサイトテンプレート１１０は、テンプレートオーサーまたは設計者によって設計され、サービング構成要素１０２または何らかの他のローカルもしくはリモートストレージに関連するメモリに記憶され得る。たとえば、リッチウェブサイトアプリケーション１０８、リッチウェブサイトテンプレート１１０、および／または他の構成要素は、ＳＩＬＶＥＲＬＩＧＨＴアプリケーションダウンロードに含まれるリッチプレゼンテーションおよび他の機能に部分的に基づいて実装され得る。ＳＩＬＶＥＲＬＩＧＨＴの機能を使用して、リッチウェブサイトコンテンツおよびコントロールなど、リッチウェブサイト機能を提供することができる。ＳＩＬＶＥＲＬＩＧＨＴコンテンツを作成し、編集するために、プロの設計者は設計ツール（たとえば、（１つまたは複数の）Ｅｘｐｒｅｓｓｉｏｎ  Ｂｌｅｎｄ（登録商標）アプリケーション）を使用し、プロの開発者はコーディングツール（たとえば、（１つまたは複数の）Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ（登録商標）アプリケーション）を使用することができる。
【００１４】
たとえば、設計構成要素１０６は、コンピューティングシステム１０４に含まれるかまたはダウンロードされ、１つまたは複数のリッチウェブサイトテンプレートを設計することに対応する１つまたは複数のプロジェクトを作成するために、たとえばＭｉｃｒｏｓｏｆｔ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎ製のＶｉｓｕａｌ  Ｓｔｕｄｉｏ（登録商標）など、コーディング構成要素１１８とともに使用され得る。一実施形態では、設計構成要素１０６は、（１つまたは複数の）ＳＩＬＶＥＲＬＩＧＨＴプログラムとともに使用され得るウェブサイトオーサリングプラットフォームなど、専用サービスからダウンロードされたアセンブリファイルを使用してコンパイルされ得る。
【００１５】
一実施形態では、コンピューティングシステム１０４は、ウェブブラウザー１１２と、スタジオ構成要素１１４と、ユーザーインターフェイス（ＵＩ）１１６と、コーディング構成要素１１８とを含むが、それに限定されない。いくつかの例示的な構成要素が示されているが、コンピューティングシステム１０４は、より少ないまたは追加の構成要素および他の機能を含み得る。以下で説明するように、スタジオ構成要素１１４は、カスタマイズされたウェブサイトを作成するためにリッチウェブサイトテンプレートとともに使用され得る。図１の例では、一実施形態によれば、スタジオ構成要素１１４はコンピューティングシステム１０４に含まれる。
【００１６】
別の実施形態では、スタジオ構成要素１１４は、ウェブベースのアプリケーションとして構成され、ウェブブラウザー１１２を使用してアクセスされ得る。たとえば、スタジオ構成要素１１４の機能は、ウェブブラウザーインターフェイスの一部としてまたは別個のインターフェイスとして、ウェブサイトテンプレートをウェブブラウザー１１２にロードするとき、ＵＩ１１６中に提示され得る。様々な実施形態では、スタジオ構成要素１１４は、１つまたは複数のリッチウェブサイトテンプレート１１０をモデルとして使用して、カスタマイズされたウェブサイトを作成および生成するために使用され得る、いくつかのリッチツールおよび機能を含むように構成され得る。一実施形態では、スタジオ構成要素１１４は、たとえばテンプレートの選択された変更可能な要素またはプロパティなど、使用されているウェブサイトテンプレートのアスペクトに部分的に基づいて、関係する変更ツールを提示するように動作することができる。
【００１７】
上記で手短に説明したように、設計構成要素１０６は、リッチ機能を有する１つまたは複数のウェブサイトテンプレートを作成するために、たとえばテンプレートオーサーまたは設計者など、ユーザーによって使用され得る。以下で説明するように、一実施形態によれば、テンプレートオーサーは、リッチウェブサイトテンプレートのためのベースとして使用される以下の機能、すなわち、１）Ｍａｓｔｅｒ．ｘａｍｌ：リッチウェブサイトテンプレートおよび／またはカスタマイズされたウェブサイトのすべてのページに適用されるマスターページのｘａｍｌを与えるＸＡＭＬ（拡張可能なアプリケーションマークアップ言語）ファイル（場合によっては、テンプレートオーサーは、関連するコードビハインドファイルを与えて、宣言フレームワークを越えて拡張し得る）と、２）ＰｒｏｐＤｅｓｃ．ｘｍｌ：マスターページのすべてのカスタマイズ可能なプロパティについてメタデータを記述するＸＭＬ（拡張可能なマークアップ言語）ファイルと、３）デフォルトコンテンツ：開始ポイントとして与えられ、ユーザーが、カスタマイズされたウェブサイトを作成することの一部としてリッチウェブサイトテンプレートのアスペクトを編集／カスタマイズするときに変更され得るデフォルトコンテンツとを作成／設計することができるが、それに限定されない。一実施形態では、デフォルトデータは、３つの構成要素、すなわち、ａ）ＳｉｔｅＤａｔａ．ｘｍｌ：リッチウェブサイトテンプレートのカスタマイズ可能なプロパティにデフォルト値を与えるＸＭＬファイル（ユーザーがいくつかのプロパティをカスタマイズすると、ファイル内容は変化する）と、ｂ）ＣｏｎｔｅｎｔＰａｇｅ．ｘａｍｌ：このファイルの個別のインスタンスはウェブサイトページごとに含まれる、と、ｃ）（１つまたは複数の）リソースファイル、たとえば、イメージ、ビデオなどとを含むが、それに限定されない。
【００１８】
一実施形態では、コンピューティングシステム１０４は、リッチウェブサイトテンプレートを作成することに無関心であるユーザーのために、コーディング構成要素１１８および／または設計構成要素１０６を含まなくてもよい。たとえば、ウェブサイト開発者は、ウェブサイトテンプレートを設計し、生成するためにコーディング構成要素１１８とともに使用され得る設計構成要素１０６をダウンロードすることができる。ウェブサイトテンプレートは、上記で手短に説明したように、リッチコンテンツおよびコントロールを含むカスタマイズされたウェブサイトを作成する際にさらに使用するために、ウェブサイト上にポストされ得る。
【００１９】
一実施形態によれば、ウェブサイトオーサリング機能を設計構成要素１０６の一部としてコーディングし、含めることができる。たとえば、設計構成要素１０６は、実行されると、リッチウェブサイトを設計するときに使用され得る設計ツールを提供する、実行可能命令としてプログラムされ得る以下のオーサリング機能を含むことができる。以下の例では、設計構成要素１０６は、プラットフォーム構成要素またはソフトウェア開発キット（ＳＤＫ）と、たとえばＳＩＬＶＥＲＬＩＧＨＴアプリケーションの１つまたは複数のファイルなど、ＸＡＰファイルとを備えると仮定する。設計構成要素１０６は、ウェブサイトテンプレート作成および／または変更プロセスのアスペクトを実装するために使用され得、ＸＡＰファイルは、アプリケーションマニフェストファイル（たとえば、ＡｐｐＭａｎｉｆｅｓｔ．ｘａｍｌ）と、アプリケーションによって必要とされるデータリンクライブラリ（ＤＬＬ）とを含む。
【００２０】
この例では、
【００２１】
【表１】
2012520509.tif 000003
【００２２】
一実施形態では、名前空間は、リッチウェブサイトテンプレートをオーサリングするために使用され得るプロパティと属性とのベースクラスを定義するベースクラス（たとえば、ＡｕｔｈｏｒＭａｓｔｅｒＰａｇｅクラス）を含むが、それに限定されない。以下で説明するように、一実施形態によれば、各リッチウェブサイトテンプレートは、部分的にベースＡｕｔｈｏｒＭａｓｔｅｒＰａｇｅクラスを使用して導出されたリッチウェブサイトテンプレートの各ページに共通の設計および／またはコンテンツ要素を与えるマスターページを含むようにオーサリングまたは設計され得る。ＡｕｔｈｏｒＭａｓｔｅｒＰａｇｅクラスはまた、たとえば、スタジオ構成要素１１４を使用することなどによって、ウェブサイトのページを作成および／または編集するために使用され得る。以下で説明するように、スタジオ構成要素１１４は、ウェブページのテキスト、イメージ、テーブル、専用コントロール、および／または他の視覚的および／または対話型要素を挿入／編集／削除し、ページコンテンツのレイアウトを変更し、可聴機能を挿入／編集／削除し、ビデオ機能を挿入／編集／削除することなどのために使用され得るウェブサイト設計機能を用いて構成され得る。
【００２３】
ＡｕｔｈｏｒＭａｓｔｅｒＰａｇｅクラスはブラウズ時ならびに設計時に機能を提供する。たとえば、設計時に、ＡｕｔｈｏｒＭａｓｔｅｒＰａｇｅページクラス（および、以下でさらに説明する一例のＡｕｔｈｏｒＳｔｕｄｉｏと呼ばれる、スタジオ構成要素１１４に関連する他の関係するクラス）は、テンプレートオーサーまたは設計者によって定義されているいくつかのサイト設計プロパティに関連する値など、ウェブサイトテンプレートのアスペクトを操作するためにテンプレートコンシューマーが使用することができる、ユーザーインターフェイスを提供するために使用され得る。
【００２４】
別の例として、ブラウズ時に、（たとえば、ＡｕｔｈｏｒＭａｓｔｅｒＰａｇｅクラスの）ベースマスターページが、たとえばＸＭＬベースのファイルなど、ファイルをパースし、および／または、プロパティ値を所与のウェブサイトの対応する視覚的要素に関連付けるかもしくはリンクするための論理または機能を含む。一実施形態では、ベースマスターページは、プロパティ値がウェブサイトの対応する視覚的および／または対話型要素のために使用されるようにすることを含めて、プロパティ記述ファイル（以下の例示的なｐｒｏｐｄｅｓｃ．ｘｍｌファイル参照）とサイトデータファイル（以下の例示的なｓｉｔｅｄａｔａ．ｘｍｌファイル参照）とをパースするように構成され得る。ベースマスターページはまた、ナビゲーションバーを表示し、ユーザーがウェブサイトの異なるページ間で切り替えることを可能にすることなど、ナビゲーション機能を提供するための追加の論理または機能を用いて構成され得る。一実施形態では、各ウェブサイトテンプレートおよびカスタマイズされたウェブサイトは、ベースマスターページを備える単一ページのウェブサイトを含むように構成され得、ウェブブラウザーは、ナビゲーションバーのリンクをクリックすることに応答してナビゲートする必要がない。
【００２５】
限定はしないが、任意のサイトデータ、（１つまたは複数の）プロパティ記述（たとえば、ｐｒｏｐｄｅｓｃ．ｘｍｌ）、現在アクティブな／選択されたウェブページ、アクティブな／選択されたページのルート要素、および／または、アクティブな／選択されたページのコンテンツに関連するルート要素など、有用な状態情報を維持するために、いくつかのメンバーデータ変数が使用され得る。一実施形態では、ページのルート要素は、ページ中の他のすべての要素のためのコンテナーとして働く。言い方を変えれば、ページは「ページ要素ツリー」の「ルート」要素である。同様に、ページコンテンツのルート要素は、マスターページから生じなかったページ中のすべての要素のコンテナーである。したがって、「ページコンテンツ要素ツリー」は「ページ要素ツリー」内のサブツリーである。このサブツリー内のあらゆるものは特定のページに特有であるが、このサブツリー外のあらゆるものは特定のウェブサイトのすべてのページに共通である。一実施形態では、リッチウェブサイトテンプレートのウェブページのカスタマイズ可能なコンテンツは、設計構成要素１０６を用いて作成されたウェブサイトのすべてのページに共通の（１つまたは複数の）「設計」または固定部分を除くウェブページの一部分として定義され得る。
【００２６】
一実施形態では、ＡｕｔｈｏｒＭａｓｔｅｒＰａｇｅ構成要素は、ページがウェブブラウザーまたは他の構成要素中にロードされたとき、ＸＡＰファイルを使用して（たとえば、ｓｉｔｅｄａｔａ．ｘｍｌからの）サイトデータと（たとえば、ｐｒｏｐｄｅｓｃ．ｘｍｌからの）プロパティ記述とを読み取り、リンクするように構成され得る。ＡｕｔｈｏｒＭａｓｔｅｒＰａｇｅ構成要素は、ベースクラスを使用して設計時および／またはブラウズ時に使用され得るいくつかのメソッドを含むかまたは呼び出し得る。
【００２７】
いくつかの例示的なメソッドは、限定はしないが、以下のものを含む。
【００２８】
Ｐａｇｅ＿Ｌｏａｄｅｄメソッドは、ウェブブラウザーがページをロードし終えたときに使用／呼び出され得、プロパティ記述スキーマのパラメーターに対応するサイトデータの値に部分的に基づいてナビゲーションバーとウェブページの設計プロパティとをセットアップするためのＬｏａｄＳｉｔｅＤａｔａメソッド（下記参照）への呼出しを含む。たとえば、ウェブブラウザーはローカル記憶媒体またはリモート記憶媒体からページまたはページの一部分をロードすることができ、スタジオ構成要素は、デフォルトデータと、リッチウェブサイトテンプレートのプロパティを変更するための入力サイトデータとの値に部分的に基づいて、ナビゲーションバーを表示しおよび／またはウェブページのプロパティを設計するように動作することができる。
【００２９】
一実施形態では、Ｐａｇｅ＿Ｌｏａｄｅｄメソッドは、ユーザーがウェブサイトまたはウェブサイトテンプレートの部分または要素と対話するとき、ウェブサイトテンプレートをカスタマイズすることの一部として、マウスクリック、音声（ｖｅｒｂａｌ）コマンド、ペン選択、タッチコマンドなど、ユーザー選択アクションを検出するように構成され得る。たとえば、このメソッドは、たとえばプロパティ記述ファイルなど、プロパティ記述マニフェストに含まれる対応する１つまたは複数のプロパティのクリックオン属性の値に部分的に基づいて、マウスクリックまたは他の選択イベントを検出することができる。
【００３０】
上記および他の検出メソッドは、ユーザーがウェブページテンプレートの要素もしくは部分をクリックするかまたはその要素もしくは部分と他の方法で対話するときに使用されるかまたは呼び出され得、その要素もしくは部分は、関連するプロパティタイプを含むクリックされた要素に対応する、たとえばツールリボンなど、１つまたは複数の適切なＵＩ編集ツールをアクティブにするように動作する。たとえば、検出メソッドは、検出されたアクションに部分的に基づいて、いくつかのツール要素を含む変更リボンまたはツールリボンをアクティブにするように動作するように構成され得る。一実施形態では、変更リボンは、対応するプロパティタイプについて提示されるようにテンプレートオーサーによって定義されたかまたは定められた編集ツールを含み得る（図５Ａ〜図５Ｂの例を参照）。たとえば、イメージタイプ用の編集ツールは、イメージの向きを変更するためのツールを含み得るが、テンプレートオーサーは、テンプレートコンシューマーにイメージの向きを変更して欲しくないので、そのツールが表示されないようにすることを選択し得る。
【００３１】
ＧｅｔＣｏｎｔｅｎｔＳｔｒｅａｍメソッドは、ＸＡＰファイルからリソースファイルストリームを抽出するように構成され得る。
【００３２】
ＬｏａｄＸｍｌＦｒｏｍＸａｐメソッドは、ＸＡＰファイルから、たとえばＸＭＬ文書など、ＸＭＬファイルを抽出するように構成され得る。たとえば、このメソッドは、ＳＩＬＶＥＲＬＩＧＨＴウェブサイトからダウンロードされたＸＡＰファイルからＸＭＬプロパティ記述ファイルとサイトデータファイルとを抽出するために使用され得る。
【００３３】
ＬｏａｄＳｉｔｅＤａｔａメソッドは、サイトデータとプロパティ記述とに部分的に基づいてページの設計プロパティをセットアップするためにＬｏａｄＰｒｏｐｅｒｔｉｅｓＦｒｏｍＳｉｔｅＤａｔａメソッド（下記参照）を呼び出し／使用し、ナビゲーションバーをセットアップするためにＬｏａｄＮａｖｉｇａｔｉｏｎメソッド（以下をさらに参照）を呼び出し／使用し、および／またはデフォルトウェブページをアクティブにするためにＳｅｔＣｕｒｒｅｎｔＰａｇｅメソッド（下記参照）を呼び出す／使用するように構成され得る。
【００３４】
ＬｏａｄＰｒｏｐｅｒｔｉｅｓＦｒｏｍＳｉｔｅＤａｔａメソッドは、サイトデータとプロパティ記述とにおいて指定されている各設計プロパティを検査し、識別された設計プロパティに基づいてＵｐｄａｔｅＳｉｔｅＰｒｏｐｅｒｔｙメソッドを呼び出す／使用するように動作することができる。
【００３５】
ＧｅｔＢｒｕｓｈＦｒｏｍＳｉｔｅＤａｔａメソッドは、ブラシ固有の属性を尊重しながら、サイトデータにおいて指定されている値からブラシオブジェクトを作成するように動作することができる。
【００３６】
ＧｅｔＮｕｍｂｅｒＦｒｏｍＳｉｔｅＤａｔａメソッドは、サイトデータにおいて指定されている値からナンバーを計算するように動作することができる。
【００３７】
ＬｏａｄＩｍａｇｅＰｒｏｐｅｒｔｙＦｒｏｍＳｉｔｅＤａｔａメソッドは、イメージ固有の属性を尊重しながら、サイトデータにおいて指定されている値からイメージオブジェクトを作成するように動作することができる。
【００３８】
ＬｏａｄＴｅｘｔＰｒｏｐｅｒｔｙＦｒｏｍＳｉｔｅＤａｔａメソッドは、テキスト固有の属性を尊重しながら、サイトデータにおいて指定されている値からテキストオブジェクトを作成するように動作することができる。
【００３９】
この例はまた、限定はしないが、以下を含むいくつかの仮想メソッドを含む。
【００４０】
ＵｐｄａｔｅＳｉｔｅＰｒｏｐｅｒｔｙ仮想メソッドは、プロパティ記述において指定されているバインドツー（ｂｉｎｄ−ｔｏ）属性に部分的に基づいてターゲット視覚的要素を識別し、サイトデータにおいて指定されているプロパティ属性値に基づいてターゲット要素の属性値を設定し、および／または、操作の一部として、たとえば、各プロパティのタイプに基づくタイプ固有の支援メソッドなど、特定の支援、メソッドおよび／または他のメソッドを使用する／呼び出すように構成され得るが、それに限定されない。一実施形態では、この仮想メソッドは、カスタム処理を実行するためにオーバーライドされ得る。
【００４１】
ＬｏａｄＮａｖｉｇａｔｉｏｎ仮想メソッドは、サイトデータにおいて指定されているウェブページのリストを検査し、ウェブサイトマスターページＸＡＭＬにおいて指定されているように各ページをナビゲーションコントロールにバインドするように構成され得る。
【００４２】
ＳｅｔＣｕｒｒｅｎｔＰａｇｅメソッドは、ＸＡＰファイルからウェブページのコンテンツを読み取るためにＧｅｔＣｏｎｔｅｎｔＳｔｒｅａｍを使用し／呼び出し、たとえば、ルート要素の状態情報のメンバー変数をセットアップし、および／または対応するハイパーリンクを強調するようにナビゲーションバーを更新するように構成され得るが、それに限定されない。
【００４３】
上記で説明したように、ユーザーは、カスタマイズされたウェブサイトを作成するために、スタジオ構成要素１１４と、設計構成要素１０６を用いて設計されたリッチウェブサイトテンプレートとを使用することができる。一実施形態では、スタジオ構成要素１１４は、テンプレート設計者によって決定されたカスタムツールを含み、カスタムツールは、変更／編集されているプロパティのタイプに部分的に基づいて提示され得る。この例では、スタジオ構成要素１１４は、限定はしないが、ＡｕｔｈｏｒＥｄｉｔｏｒクラスを含むＡｕｔｈｏｒＳｔｕｄｉｏ名前空間を含む。ＡｕｔｈｏｒＥｄｉｔｏｒクラスは、様々な状態情報を維持するためのメンバーデータ変数を含むように定義され得るが、それに限定されない。一実施形態では、このクラスは、限定はしないが、編集されているウェブサイトもしくはテンプレートのロケーション、編集されているウェブサイトもしくはテンプレートにおけるＡｕｔｈｏｒＭａｓｔｅｒＰａｇｅのインスタンス、たとえばリボンツールなど、編集ツールの状態、および／または現在編集されているウェブサイトページの要素を含む様々な状態情報を維持するためのメンバーデータ変数を含み得る。
【００４４】
一実施形態では、スタジオ構成要素１１４は、エディターＵＩ（図５Ａ〜図５Ｂの例示的なエディターＵＩを参照）がロードされるのを検出しおよび／またはロードされるまで待つためのリスナーまたは検出メソッドを追加するように構成され得るＡｕｔｈｏｒＥｄｉｔｏｒ構成要素を含み得る。ＡｕｔｈｏｒＥｄｉｔｏｒ構成要素はまた、特定のエンティティ、サービス、製品などのためのウェブサイトテンプレートをカスタマイズすることの一部として、いくつかの追加のメソッドを含むかまたは使用し得る。一実施形態によれば、ＡｕｔｈｏｒＥｄｉｔｏｒ構成要素はまた、元のリッチウェブサイトテンプレートに部分的に基づいて新しいリッチウェブサイトテンプレートを設計するために使用され得る。ただし、そのような一実施形態によれば、元のウェブサイトテンプレートのいくつかのアスペクトは、基礎をなす設計に部分的に基づいて変更可能でないことがある。
【００４５】
ＡｕｔｈｏｒＥｄｉｔｏｒ構成要素によって呼び出される／使用される例示的なメソッドは、限定はしないが、以下を含む。
【００４６】
Ｐａｇｅ＿Ｌｏａｄｅｄメソッドは、エディターＵＩ（図５Ａ〜図５Ｂの例示的な変更ＵＩ５００を参照）をロードして、限定はしないが、ユーザーが変更することを意図しているウェブサイトもしくはウェブサイトテンプレートを判断し、ロードし、１つまたは複数のツールリボン（テキストリボン、イメージリボン、ブラシリボンなど）における１つまたは複数のリボン要素上でのクリック／変更イベントについての１つまたは複数のリスナーもしくは検出メソッドをセットアップし、たとえばウェブサイトのドロップダウンコントロールなど、コントロールの選択変更イベントをフックアップするかもしくは関連付けし、および／または、ユーザーが異なるウェブサイトもしくはテンプレートを編集することを選択したかどうかを検出し、応答するときに呼び出され／使用され得る。たとえば、ユーザーは、望ましいウェブサイトテンプレートを探すかまたはローカルもしくはリモートストレージからデフォルトウェブサイトテンプレートをロードするためにウェブブラウザー１１２を使用し、Ｐａｇｅ＿Ｌｏａｄｅｄメソッドは、ウェブサイトならびに関連するインターフェイス特性およびコントロールをウェブブラウザー１１２または他の構成要素中にロードし得る。
【００４７】
ＣｕｒｒｅｎｔＰｒｏｐｅｒｔｙメソッドは、ユーザーが現在編集しているプロパティを得るかまたは設定するように構成され得る。
【００４８】
ＣｕｒｒｅｎｔＲｉｂｂｏｎメソッドは、現在のプロパティを編集するために使用され得るリボンを得るかまたは設定するように構成され得る。上記で説明したように、一実施形態によれば、エディターＵＩは、変更について検討中のプロパティタイプに部分的に基づいて変更ツールを有する異なるリボンを表示することができる。
【００４９】
ＩｎｓｅｒｔＭｏｄｕｌｅ＿ＭｏｕｓｅＬｅｆｔＢｕｔｔｏｎＤｏｗｎ、ＩｎｓｅｒｔＭｏｄｕｌｅ＿ＭｏｕｓｅＭｏｖｅ、およびＩｎｓｅｒｔＭｏｄｕｌｅ＿ＭｏｕｓｅＬｅｆｔＢｕｔｔｏｎＵｐメソッドは、ページコンテンツに含めるために、エディターＵＩを備えたツールボックス（図５Ａ〜図５Ｂの例を参照）から様々なタイプの要素（テキスト、イメージ、オーディオ、ビデオなど）のドラッグドロップをサポートするための機能を提供し、その結果、要素がページ中に挿入され、それによって、ユーザーは、ウェブサイトまたはウェブサイトテンプレートの定義されたプロパティに対応するコンテンツを迅速におよび効率的に追加することが可能になる。
【００５０】
ＡｄｄＣｏｎｔｅｎｔＣｏｌｕｍｎ＿Ｃｌｉｃｋ、ＡｄｄＣｏｎｔｅｎｔＲｏｗ＿Ｃｌｉｃｋ、ＤｅｌｅｔｅＣｏｎｔｅｎｔＣｏｌｕｍｎ＿Ｃｌｉｃｋ、ＤｅｌｅｔｅＣｏｎｔｅｎｔＲｏｗ＿Ｃｌｉｃｋ、ＣｏｎｔｅｎｔＬａｙｏｕｔＣｅｌｌ＿ＭｏｕｓｅＭｏｖｅ、ＣｏｎｔｅｎｔＬａｙｏｕｔＣｅｌｌ＿ＭｏｕｓｅＬｅｆｔＢｕｔｔｏｎＵｐ、ＣｏｎｔｅｎｔＬａｙｏｕｔＣｅｌｌ＿ＭｏｕｓｅＬｅｆｔＢｕｔｔｏｎＤｏｗｎ、ＣｏｎｔｅｎｔＬａｙｏｕｔＣｅｌｌ＿ＭｏｕｓｅＬｅａｖｅ、およびＣｏｎｔｅｎｔＬａｙｏｕｔＣｅｌｌ＿ＭｏｕｓｅＥｎｔｅｒメソッドは、たとえばパネルもしくはグリッド（図５Ａ〜図５Ｂの５０８参照）など、レイアウト変更ツールの変更（たとえば、行／列／セルの追加／削除／並べ替えなど）をサポートし、および／またはページコンテンツレイアウトを変更するための機能を提供する。
【００５１】
ＦｉｌｌＦｏｎｔＦａｍｉｌｙＣｔｌメソッドは、利用可能なフォントファミリーをもつフォントドロップダウンをロードするように動作することができる。
【００５２】
ＦｉｌｌＦｏｎｔＣｏｌｏｒＣｔｌメソッドは、利用可能なフォントカラーをもつフォントドロップダウンをロードするように動作することができる。
【００５３】
ＩｎｉｔＣｏｎｔｅｎｔＬａｙｏｕｔＧｒｉｄメソッドは、ページコンテンツのレイアウトを整合させるためにレイアウトパネルを初期化するように動作することができる。
【００５４】
ＵｐｄａｔｅＴｅｘｔＲｉｂｂｏｎメソッドは、選択されたテキスト要素の状態を整合させるためにテキストリボンの状態を更新するように動作することができる。
【００５５】
ＵｐｄａｔｅＩｍａｇｅＲｉｂｂｏｎメソッドは、選択されたイメージ要素の状態を整合させるためにイメージリボンの状態を更新するように動作することができる。
【００５６】
ＵｐｄａｔｅＢｒｕｓｈＲｉｂｂｏｎメソッドは、選択されたブラシ要素の状態を整合させるためにブラシリボンの状態を更新するように動作することができる。
【００５７】
ＵｐｄａｔｅＮｕｍｂｅｒＲｉｂｂｏｎメソッドは、選択されたナンバー要素の状態を整合させるためにナンバーリボンの状態を更新するように動作することができる。
【００５８】
ＧｅｔＢｒｕｓｈＸａｍｌメソッドは、特定のブラシのＸＡＭＬを定義するために使用され得る。
【００５９】
ＳｉｔｅＬｉｓｔ＿ＳｅｌｅｃｔｉｏｎＣｈａｎｇｅｄメソッドは、異なるウェブサイトまたはウェブサイトテンプレートを編集するユーザー操作／選択を処理するように動作することができる。
【００６０】
ＶｉｅｗＳｉｔｅ＿Ｃｌｉｃｋメソッドは、編集されているウェブサイトまたはウェブサイトテンプレートを（新しいブラウザーウインドウ中で）ブラウズするユーザー操作を処理するように動作することができる。
【００６１】
ＳａｖｅＳｉｔｅ＿Ｃｌｉｃｋメソッドは、編集されているウェブサイトまたはウェブサイトテンプレートに対して行われたすべての変更を保存するユーザー操作を処理するように動作することができる。
【００６２】
ＮａｖＩｔｅｍＣｌｉｃｋｅｄメソッドは、ウェブサイト中の異なるページをアクティブにするユーザー操作を処理するように動作することができ、ユーザーがナビゲーションバー中のナビゲーションハイパーリンク上でクリックし、ハイパーリンクが指しているウェブページをアクティブにするようにサイトを切り替えるときに呼び出され／使用され得る。
【００６３】
ＥｘｐａｎｄＣｏｌｌａｐｓｅＬａｙｏｕｔ＿Ｃｌｉｃｋメソッドは、エディターＵＩのレイアウトパネルを示すかまたは非表示にするユーザー操作を処理するように動作することができる。
【００６４】
ＲｉｂｂｏｎＴａｂＣｔｌ＿ＳｅｌｅｃｔｉｏｎＣｈａｎｇｅｄメソッドは、異なるプロパティグループに切り替えるユーザー操作を処理するように動作することができる。
【００６５】
ＰｒｏｐｓＣｏｍｂｏ＿ＳｅｌｅｃｔｉｏｎＣｈａｎｇｅｄメソッドは、変更について検討中であるかまたは変更されている現在のプロパティグループ中の異なるプロパティの編集または変更リボンを提示するユーザー操作を処理するように動作することができる。
【００６６】
ＴｅｘｔＣｔｌ＿ＴｅｘｔＣｈａｎｇｅｄメソッドは、テキスト要素のコンテンツを変更するユーザー操作を処理するように動作することができる。
【００６７】
ＦｏｎｔＣｏｌｏｒＣｔｌ＿ＳｅｌｅｃｔｉｏｎＣｈａｎｇｅｄメソッドは、テキスト要素のフォントカラーを変更するユーザー操作を処理するように動作することができる。
【００６８】
ＦｏｎｔＦａｍｉｌｙＣｔｌ＿ＳｅｌｅｃｔｉｏｎＣｈａｎｇｅｄメソッドは、テキスト要素のフォントファミリーを変更するユーザー操作を処理するように動作することができる。
【００６９】
ＦｏｎｔＳｉｚｅＣｔｌ＿ＶａｌｕｅＣｈａｎｇｅｄメソッドは、テキスト要素のフォントサイズを変更するユーザー操作を処理するように動作することができる。
【００７０】
ＤｅｌｅｔｅＴｅｘｔ＿Ｃｌｉｃｋメソッドは、テキスト要素を削除するユーザー操作を処理するように動作することができる。
【００７１】
ＩｍａｇｅＹＣｔｌ＿ＶａｌｕｅＣｈａｎｇｅｄメソッドは、イメージの垂直位置を変更するユーザー操作を処理するように動作することができる。
【００７２】
ＩｍａｇｅＸＣｔｌ＿ＶａｌｕｅＣｈａｎｇｅｄメソッドは、イメージの水平位置を変更するユーザー操作を処理するように動作することができる。
【００７３】
ＩｍａｇｅＯｐａｃｉｔｙＣｔｌ＿ＶａｌｕｅＣｈａｎｇｅｄメソッドは、イメージの不透明度を変更するユーザー操作を処理するように動作することができる。
【００７４】
ＩｍａｇｅＲｏｔａｔｅＣｔｌ＿ＶａｌｕｅＣｈａｎｇｅｄメソッドは、イメージの向きを変更するユーザー操作を処理するように動作することができる。
【００７５】
ＩｍａｇｅＨｅｉｇｈｔＣｔｌ＿ＶａｌｕｅＣｈａｎｇｅｄメソッドは、イメージの高さを変更するユーザー操作を処理するように動作することができる。
【００７６】
ＩｍａｇｅＢｒｏｗｓｅＣｔｌ＿Ｃｌｉｃｋメソッドは、異なるイメージファイルまたはロケーションからイメージをロードするユーザー操作を処理するように動作することができる。
【００７７】
ＤｅｌｅｔｅＩｍａｇｅ＿Ｃｌｉｃｋメソッドは、イメージ要素を削除するユーザー操作を処理するように動作することができる。
【００７８】
ＣｏｌｏｒＶａｌｕｅＣｈａｎｇｅｄメソッドは、ブラシ要素のカラーを変更するユーザー操作を処理するように動作することができる。
【００７９】
ＧｒａｄｉｅｎｔＴｙｐｅ＿Ｃｈｅｃｋｅｄメソッドは、ブラシ要素のグラディエント（ｇｒａｄｉｅｎｔ）タイプを変更するユーザー操作を処理するように動作することができる。
【００８０】
ＲａｄｉａｌＸＹ＿ＶａｌｕｅＣｈａｎｇｅｄメソッドは、放射状グラディエントブラシ要素の原点を変更するユーザー操作を処理するように動作することができる。
【００８１】
ＧｒａｄｉｅｎｔＳｔｏｐｓ＿ＳｅｌｅｃｔｉｏｎＣｈａｎｇｅｄメソッドは、ブラシ要素を編集するために異なるグラディエントストップを選択するユーザー操作を処理するように動作することができる。
【００８２】
ＮｕｍｂｅｒＳｌｉｄｅｒ＿ＶａｌｕｅＣｈａｎｇｅｄメソッドは、視覚的プロパティの数値を変更するユーザー操作を処理するように動作することができる。
【００８３】
いくつかのメソッドおよび構成要素について上記で説明したが、他の実施形態では、他のメソッド、構成要素、および／または機能が実装され得る。
【００８４】
図２は、リッチウェブサイトテンプレートと他の機能とを提供するように構成され得る構成要素を有する例示的なコンピューティングシステムのブロック図である。一実施形態では、コンピューティングシステム２００は、リッチウェブサイトテンプレート２０２など、リッチウェブサイトテンプレートを与えるために使用され得る、関連する構成要素を有する専用サーバーとして構成され得る。上記で説明したように、設計者またはテンプレートオーサーは、リッチ設計特徴を含むウェブサイトテンプレートを設計するために、たとえば設計構成要素１０６など、ソフトウェア開発キット、または他の（１つまたは複数の）アプリケーションを使用することができる。
【００８５】
図２の例では、テンプレートオーサーが、特定の広告ターゲット、サービス、製品、ユーザーなどのためのリッチウェブサイトテンプレート２０２を設計していると仮定する。一実施形態では、リッチウェブサイトテンプレート２０２は、プロパティ構成要素２０４と、ＸＡＭＬ構成要素２０６と、コード構成要素２０８と、サイトデータ２１０とを使用して構成され得るが、それに限定されない。コンピューティングシステム２０２はまた、リッチ対話型ウェブサイト機能と他の機能とを提供するためにリッチウェブサイトテンプレート２０２とともに使用され得る、たとえば、ＳＩＬＶＥＲＬＩＧＨＴアプリケーションなど、ＸＡＰ構成要素２１２を含む。代替的実施形態では、様々な構成要素の機能を結合するかまたはさらに分割することができる。
【００８６】
一実施形態では、プロパティ構成要素２０４は、プロパティタイプおよび関連する属性のスキーマを使用して生成され得る。たとえば、テンプレートオーサーは、テキストプロパティ、ナンバープロパティ、イメージプロパティ、ブラシプロパティ、列挙型プロパティ、オーディオプロパティ、および／またはビデオプロパティのうちの１つまたは複数を含むプロパティ記述ＸＭＬファイルを生成するために、スキーマを使用することができる。テンプレートオーサーは、特定のリッチウェブサイトテンプレートを定義するために様々なプロパティおよび関連する属性を使用することができ、各プロパティタイプは、いくつかの共通のメタデータ属性をサポートする。
【００８７】
さらに、各プロパティタイプは、タイプに固有の追加のメタデータ属性をサポートすることができる。プロパティ値は、対応する属性をも含み得る。一実施形態では、メタデータ属性は、テンプレートオーサーによって設定され、関連するプロパティの性質を定義するのを助け、場合によっては、対話が値属性を変更または設定することに制限されるテンプレートコンシューマーによって変更され得ない。
【００８８】
各プロパティタイプに対応する共通のメタデータ属性は、限定はしないが、エディターもしくは変更インターフェイスに表示されるプロパティ名を示すために使用され得るＤｉｓｐｌａｙＮａｍｅメタデータ属性、クリックされるかもしくは他の方法で選択された場合、変更可能なプロパティを編集するためのリボンもしくは変更ＵＩをアクティブにするように動作する、たとえば、ウェブページテンプレートの視覚的要素もしくは部分など、変更可能なプロパティに対応するクリックオンメタデータ属性、および／または、プロパティ値をリッチウェブサイトテンプレートの視覚的要素もしくは部分の属性にバインドするバインドツーメタデータ属性を含む。
【００８９】
一実施形態によれば、テキストプロパティは、何らかの書式設定（たとえば、フォント、カラー、サイズなど）を有するテキストの断片を定義するために使用され得、ナンバープロパティは、特定の最小最大範囲内でナンバーを定義するために使用され得、イメージプロパティは、幅、高さ、向き、透明度、および／または他のパラメーターを含む画像もしくは他のグラフィック表現を定義するために使用され得、ブラシプロパティは、ある方法で領域もしくは部分上に適用されるカラー、もしくはカラーの組合せを定義するために使用され得、列挙型プロパティは、値の特定のリスト（たとえば、列挙型）を定義するために使用され得、オーディオプロパティは、オーディオクリップもしくは他のオーディオ表現を定義するために使用され得、および／または、ビデオプロパティは、ビデオクリップもしくは他のビデオ表現を定義するために使用され得る。他のプロパティおよび／または他のメタデータ属性を定義することもできる。
【００９０】
様々なプロパティタイプによってサポートされる追加のメタ属性は、限定はしないが、以下を含む（プロパティ：（１つまたは複数の）属性）。
テキスト：ＭａｘＬｅｎｇｔｈ、ＡｌｌｏｗＵｓｅｒＴｏＳｅｔＦｏｎｔ
ナンバー：ＭｉｎＶａｌｕｅ、ＭａｘＶａｌｕｅ
イメージ：ＲｅｔａｉｎＡｓｐｅｃｔＲａｔｉｏ、ＡｌｌｏｗＲｏｔａｔｉｏｎ
ブラシ：ＡｌｌｏｗＧｒａｄｉｅｎｔｓ
列挙型：許可する値のリスト
オーディオ：ＭａｘＳｉｚｅ、ＡｌｌｏｗｅｄＦｏｒｍａｔｓ
ビデオ：ＭａｘＳｉｚｅ、ＡｌｌｏｗｅｄＦｏｒｍａｔｓ
【００９１】
一実施形態では、プロパティ値の追加の属性は、限定はしないが、以下を含む（プロパティ値：（１つまたは複数の）属性）。
テキスト：Ｔｅｘｔ、ＦｏｎｔＦａｍｉｌｙ、ＦｏｎｔＳｉｚｅ、ＦｏｎｔＣｏｌｏｒ
ナンバー：ＮｕｍｅｒｉｃＶａｌｕｅ
イメージ：ＩｍａｇｅＳｏｕｒｃｅＦｉｌｅ、Ｗｉｄｔｈ、Ｈｅｉｇｈｔ、Ｒｏｔａｔｉｏｎ（角度）、Ｔｒａｎｓｐａｒｅｎｃｙ
ブラシ：レッド／グリーン／ブルー（ＲＧＢ）色空間と各ブラシタイプに固有の他の値とを含む、いくつかの属性を含むＢｒｕｓｈＴｙｐｅ（たとえば、ＳｏｌｉｄＣｏｌｏｒＢｒｕｓｈ、ＬｉｎｅａｒＧｒａｄｉｅｎｔＢｒｕｓｈ、ＲａｄｉａｌＧｒａｄｉｅｎｔＢｒｕｓｈ、およびそれらの組合せ）
列挙型：与えられたリストからの値の１つ
オーディオ：ＡｕｄｉｏＳｏｕｒｃｅＦｉｌｅ
ビデオ：ＶｉｄｅｏＳｏｕｒｃｅＦｉｌｅ
【００９２】
相応して、テンプレートオーサーは、カスタマイズされたウェブサイトを作成または設計するためのモデルとしてリッチウェブサイトテンプレート２０２を使用するとき、上記で説明した様々な機能を使用して、テンプレートユーザーのエクスペリエンスを制御または定義することを含めて、リッチウェブサイトテンプレートを構成することができる。テンプレートコンシューマーは、特定のウェブサイトを作成するとき、リッチウェブサイトテンプレートのアスペクトを変更するために様々なユーザーフレンドリなコントロールを使用することができる。たとえば、テンプレートオーサーは、どのテンプレートプロパティが変更を許可されるべきかを制御し、および／または所与のウェブサイトテンプレートに従って最終的にテンプレートコンシューマーに提示される変更可能なプロパティに関連付けられたツールもしくはリボンを制御することができる。
【００９３】
図３は、リッチウェブサイトテンプレートを設計する例示的なプロセスを示す流れ図である。一定の数および順序の動作を図示および説明したが、他の実施形態が利用可能である。ステップ３００において、テンプレート設計者またはオーサーは、ＳＩＬＶＥＲＬＩＧＨＴウェブサイトなどのウェブサイトからソフトウェア開発キット（ＳＤＫ）をダウンロードすることができる。一実施形態では、ＳＤＫは、リッチウェブサイトテンプレートを設計するために、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎ製のＶｉｓｕａｌ  Ｓｔｕｄｉｏ（登録商標）など、コーディングツールとともに使用され得る。たとえば、テンプレートオーサーは、サードパーティー要件、選好、または関連付けに従ってリッチウェブサイトテンプレートを設計することができる。
【００９４】
ステップ３０１において、テンプレートオーサーは、リッチウェブサイトテンプレートの名前空間と他の特徴とを定義するコードファイルを作成することができ、名前空間またはクラスは、ＳＤＫにおいて定義されているマスター名前空間またはクラスから導出される。一実施形態では、テンプレートオーサーはまた、リッチウェブサイトテンプレートとともに使用されるべき実行可能メソッドを定義することができる。ステップ３０２において、テンプレートオーサーは、リッチウェブサイトテンプレートのページ上のコントロールを定義するＸＡＭＬファイルを作成することができる。たとえば、テンプレートオーサーは、テンプレートコンシューマーがブラシコントロールに対応する変更可能な要素を選択するときに提示されるブラシベースのコントロールと、テンプレートコンシューマーがテキストコントロールに対応する変更可能な要素を選択するときに提示されるテキストベースのコントロールと、テンプレートコンシューマーがイメージコントロールに対応する変更可能な要素を選択するときに提示されるイメージベースのコントロールと、テンプレートコンシューマーがオーディオコントロールに対応する変更可能な要素を選択するときに提示されるオーディオベースのコントロールと、テンプレートコンシューマーがビデオコントロールに対応する変更可能な要素を選択するときに提示されるビデオベースのコントロールとなどを定義することができる。
【００９５】
ステップ３０４において、テンプレートオーサーは、対応する変更コントロール（たとえば、（１つまたは複数の）リボン）を含む、リッチウェブサイトテンプレートのアスペクトを制御するために使用され得るいくつかのプロパティを定義する、いくつかのプロパティ記述（たとえば、プロパティ記述ＸＭＬファイル）を作成することができる。たとえば、テンプレートオーサーは、リッチウェブサイトテンプレートを設計するためにＳＤＫを使用するとき、いくつかの利用可能なプロパティタイプから選択することができる。一例として、プロパティ記述ファイルは、ユーザー変更結果を定義するために各プロパティタイプに関連付けられ得る、いくつかのプロパティ属性をも含み得る。
【００９６】
ステップ３０６において、テンプレートオーサーは、リッチウェブサイトテンプレートのコンテンツを定義するサイトデータを含むサイトデータファイルを作成することができる。一実施形態では、サイトデータは、リッチウェブサイトテンプレートの定義されたプロパティに対応するプロパティ値を含む。たとえば、サイトデータは、リッチウェブサイトテンプレートが、たとえばブラウザーウインドウなど、ＵＩにおいてどのように表示されるかを定義するために使用され得る。ステップ３０８において、テンプレートオーサーは、後の変更または展開のためにリッチウェブサイトテンプレートを記憶することができる。たとえば、リッチウェブサイトテンプレートファイル（たとえば、コードファイル、プロパティ記述ファイル、サイトデータファイル、およびＸＡＭＬファイル）は、いくつかのデータ構造としてローカルにおよび／またはリモートで記憶され得る。一例として、テンプレートオーサーは、リッチウェブサイトテンプレートの他の何らかの機能を実装することを計画して、テンプレートファイルをローカルに記憶し得る。完成すると、リッチウェブサイトテンプレートは、リッチウェブサイトテンプレートの機能に基づいてカスタマイズされたウェブサイトを作成するのに使用するために、ユーザーに与えられ得る。
【００９７】
図４は、カスタマイズされたウェブサイトを作成するためにリッチウェブサイトテンプレートを使用する例示的なプロセスを示す流れ図である。一定の数および順序の動作を図示および説明したが、他の実施形態が利用可能である。ステップ４００において、ユーザーは、カスタマイズされたウェブサイトを作成するためのモデルとして、リッチウェブサイトテンプレートを識別することができる。たとえば、ユーザーは、ウェブブラウザーを使用して、いくつかの利用可能なリッチウェブサイトテンプレートを有するウェブサイトをブラウズし、モデルとしてリッチウェブサイトテンプレートを選択することができる。別の例として、ユーザーは、リッチウェブサイトテンプレートを前もってダウンロードしおよび／または変更し始めており、ローカルまたはリモートストレージロケーションからリッチウェブサイトテンプレートを開くことができる。
【００９８】
ステップ４０２において、ウェブブラウザーは、リッチウェブサイトテンプレートをロードし、リッチウェブサイトテンプレートの変更可能な要素に部分的に基づいてエディターＵＩ（たとえば、図５Ａ〜図５Ｂ参照）を提示することを含めて、リッチウェブサイトテンプレートのアスペクトを提示する。ステップ４０４において、テンプレートユーザーは、カスタマイズされたウェブサイトを作成することの一部として、エディターＵＩを用いて提示されたユーザーフレンドリなコントロールを使用して、リッチウェブサイトテンプレートのアスペクトを変更することができる。ステップ４０６において、ユーザーは、カスタマイズされたウェブサイトを保存することができる。たとえば、カスタマイズされたウェブサイトは、１つまたは複数のデータ構造として、ローカルおよび／またはリモートコンピューター記憶媒体に記憶され得る。ウェブサイトは、ウェブページブラウザーがさらに使用するためにポストされ得る。
【００９９】
図５Ａ〜図５Ｂに、カスタマイズされたウェブサイト（図６参照）を生成する際にリッチウェブサイトテンプレート５０２のアスペクトを変更するために使用され得る例示的なスタジオ構成要素のユーザーインターフェイス（ＵＩ）５００を示す。
【０１００】
この例では、例示的なコード構成要素は、リッチウェブサイトテンプレートに関連付けられ、次のように構成され得る。
【０１０１】
【表２】
2012520509.tif 000004
【０１０２】
この例を続けると、ＸＡＭＬ構成要素は、リッチウェブサイトテンプレートに関連付けられ、次のように構成され得る。
【０１０３】
【表３】
2012520509.tif 000005
【０１０４】
この例を続けると、プロパティ記述ファイルは次のように構成され得る。
【０１０５】
【表４】
2012520509.tif 000006
【０１０６】
そして、この例では、例示的なサイトデータは次のように構成され得る。
【０１０７】
【表５】
2012520509.tif 000007
【０１０８】
引き続き図５Ａを参照すると、関連するスタジオ構成要素は、たとえば、上記で説明した１つまたは複数の構成要素、ファイル、および／または選択変更可能なプロパティに部分的に基づいてテンプレートオーサーによって定義されたウェブサイトテンプレート５０２および関連するコントロールを与えるためのスタジオ構成要素ＵＩ５００を含み得る。この例に示されているように、（関連するツールを識別するためにラッソで囲まれた）テキスト変更リボン５０４は、ウェブサイトホームページの記述エリア５０６（フッターテキスト）に対応する選択検出（たとえば、ユーザークリック、タッチ、音声コマンドなど）に部分的に基づいて、スタジオ構成要素によって表示されている。スタジオ構成要素はまた、ホームページの領域をレイアウトするのを支援するために折り畳み式レイアウトユーティリティ５０８を表示している。
【０１０９】
図示のように、ウェブサイトテンプレート５０２は、いくつかの変更可能な要素、すなわち、タイトル５１０、サイトタグライン５１２、ヘッダーバー５１４、ヘッダーサークル５１６、イメージ５１８を含むように設計されている。ウェブサイトテンプレート５０２はまた、いくつかのナビゲーションリンク５２０を含むように設計されている。この例に示されているように、スタジオ構成要素ＵＩ５００は、変更可能なページ要素または部分に対応するタブ５２２〜５２８をも含む。図５Ｂに示すように、（関連するツールを識別するためにラッソで囲まれた）ブラシリボン５３０は、ウェブサイトテンプレート５０２のバックグラウンド要素または部分の選択検出に部分的に基づいて、スタジオ構成要素によって表示されている。ウェブページテンプレートの変更可能な部分または要素と対話するためにドロップダウンメニュー５３２を使用することもできる。
【０１１０】
図６に、図５Ａ〜図５Ｂのウェブサイトテンプレート５０２に基づく例示的なカスタマイズされたウェブサイトページ６００を示す。
【０１１１】
本明細書で説明するコンピューティング環境、システム、および／または実施形態は、対話型通信環境を提供するためのネットワーキング、セキュリティ、および／または他の通信機能を含むように構成され得る。それに応じて、環境および構成要素は、他のコンピューティングデバイス、通信デバイス、および／または他のシステムと通信するための機能を含み、本明細書で説明する実施形態および例に限定されるものではない。その上、構成要素は、ワイヤード、ワイヤレス、および／または様々な通信ネットワークの組合せを介して通信するように構成され得る。
【０１１２】
本明細書で説明するコンピューティング環境およびシステムは、たとえば、．ＮＥＴまたは他のフレームワークなど、分散コンピューティング環境を提供するために、ソフトウェアと、ファームウェアと、ハードウェアと、他の構成要素とを含むネットワーク化された環境として構成され得る。さらに、一定の数および構成の構成要素を説明および図示したが、他の数の構成要素および構成が使用され得る。たとえば、コンピューティング環境は、複数のコンピューティングデバイス、クライアント、サーバー、レポジトリ、および／または他の構成要素を含むことができる。
【０１１３】
（例示的な動作環境）
次に図７を参照すると、以下の説明は、本発明の実施形態が実装され得る好適なコンピューティング環境について短い概略説明を与えるものである。本発明について、パーソナルコンピューター上のオペレーティングシステム上で動作するプログラムモジュールとともに実行するプログラムモジュールの一般的コンテキストで説明するが、本発明は、他のタイプのコンピューターシステムおよびプログラムモジュールと組み合わせて実装することもできることを、当業者なら認識されよう。
【０１１４】
一般に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、構成要素、データ構造、および他のタイプの構造を含む。その上、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家庭用電子機器、ミニコンピューター、メインフレームコンピューターなどを含む、他のコンピューターシステム構成とともに実施され得ることを、当業者は理解されよう。本発明はまた、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境において実行され得る。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリ記憶装置とリモートメモリ記憶装置の両方に配置され得る。
【０１１５】
次に図７を参照しながら、本発明の実施形態の例示的な動作環境について説明する。図７に示すように、コンピューター２は、１つまたは複数のアプリケーションプログラムを実行することが可能な汎用デスクトップ、ラップトップ、ハンドヘルド、タブレット、または他のタイプのコンピューターを備える。コンピューター２は、少なくとも１つの中央処理装置８（「ＣＰＵ」）と、ランダムアクセスメモリ１８（「ＲＡＭ」）および読取り専用メモリ（「ＲＯＭ」）２０を含むシステムメモリ１２と、メモリをＣＰＵ８に結合するシステムバス１０とを含む。起動中などに、コンピューター内の要素間で情報を転送するのを助ける基本ルーチンを含んでいる基本入出力システムは、ＲＯＭ２０に記憶される。
【０１１６】
コンピューター２は、オペレーティングシステム３２と、アプリケーションプログラムと、他のプログラムモジュールとを記憶するための大容量記憶装置１４をさらに含む。大容量記憶装置１４は、バス１０に接続された大容量記憶装置コントローラー（図示せず）を通してＣＰＵ８に接続される。大容量記憶装置１４およびその関連するコンピューター可読媒体は、コンピューター２の不揮発性記憶装置を与える。本明細書に含まれているコンピューター可読媒体の記述は、ハードディスクまたはＣＤ−ＲＯＭドライブなど、大容量記憶装置を指すが、コンピューター可読媒体は、コンピューター２によってアクセスまたは利用され得る任意の利用可能な媒体であり得ることを、当業者は諒解されたい。
【０１１７】
限定ではなく、例として、コンピューター可読媒体はコンピューター記憶媒体および通信媒体を備え得る。コンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュールまたは他のデータなど、情報の記憶のための任意の方法または技術で実装された揮発性および不揮発性、取外し可能および取外し不能媒体を含む。コンピューター記憶媒体は、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他の固体メモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶装置、または所望の情報を記憶するために使用され、コンピューター２によってアクセスされ得る任意の他の媒体を含む。
【０１１８】
本発明の様々な実施形態によれば、コンピューター２は、たとえばローカルネットワーク、インターネットなど、ネットワーク４を介したリモートコンピューターへの論理接続を使用してネットワーク化された環境において動作することができる。コンピューター２は、バス１０に接続されたネットワークインターフェイスユニット１６を通してネットワーク４に接続し得る。ネットワークインターフェイスユニット１６は、他のタイプのネットワークおよびリモートコンピューティングシステムに接続するためにも利用され得ることを諒解されたい。コンピューター２はまた、キーボード、マウス、ペン、スタイラス、指、および／または他の手段を含む、いくつかの入力タイプからの入力を受信し、処理するための入出力コントローラー２２を含み得る。同様に、入出力コントローラー２２は、ディスプレイ、プリンター、または他のタイプの出力デバイスへの出力を与えることができる。さらに、タッチスクリーンは入力および出力機構として働くことができる。
【０１１９】
上記で手短に説明したように、いくつかのプログラムモジュールおよびデータファイルは、ワシントン州レドモンドのＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮからのＷＩＮＤＯＷＳオペレーティングシステムなど、ネットワーク化されたパーソナルコンピューターの動作を制御するのに好適なオペレーティングシステム３２を含む、コンピューター２の大容量記憶装置１４およびＲＡＭ１８に記憶され得る。大容量記憶装置１４およびＲＡＭ１８はまた、１つまたは複数のプログラムモジュールを記憶し得る。特に、大容量記憶装置１４およびＲＡＭ１８は、ワードプロセッシングアプリケーション２８、スプレッドシートアプリケーション３０、電子メールアプリケーション３４など、アプリケーションプログラムを記憶し得る。
【０１２０】
本発明の様々な実施形態は、（１）コンピューティングシステム上で動作する一連のコンピューター実装された動作もしくはプログラムモジュールとして、および／または（２）コンピューティングシステム内で相互接続された機械論理回路もしくは回路モジュールとして実装され得ることを諒解されたい。実装形態は、本発明を実装するコンピューティングシステムのパフォーマンス要件に依存する選択の問題である。それに応じて、関係するアルゴリズムを含む論理演算は、演算、構造デバイス、動作またはモジュールと様々に呼ばれ得る。これらの演算、構造デバイス、動作およびモジュールは、本明細書に記載する特許請求の範囲内に具陳される本発明の趣旨および範囲から逸脱することなしに、ソフトウェア、ファームウェア、特殊目的デジタル論理、およびそれらの任意の組合せで実装され得ることを、当業者は認識されよう。
【０１２１】
本発明について様々な例示的な実施形態に関して説明したが、それらの実施形態に対して、以下の特許請求の範囲内で多くの変更が行われ得ることを、当業者は理解されよう。したがって、本発明の範囲は、いかなる形でも上記の説明によって限定されるものではなく、代わりに、もっぱら以下の特許請求の範囲を参照することによって決定されるものである。
【図１】
2012520509.tif 000008
【図２】
2012520509.tif 000009
【図３】
2012520509.tif 000010
【図４】
2012520509.tif 000011
【図５Ａ】
2012520509.tif 000012
【図５Ｂ】
2012520509.tif 000013
【図６】
2012520509.tif 000014
【図７】
2012520509.tif 000015
【国際調査報告】
2012520509.tif 000016
2012520509.tif 000017
2012520509.tif 000018