(57)【要約】【課題】文書のユーザに対して文脈依存ツール、制御およびヘルプコンテンツを提供するために機能が付加された、コンピュータで生成された「スマート」文書を作成、実施および使用するための方法およびシステムを提供すること。【解決手段】文書の一部は、ＸＭＬタグおよび構造で注釈付けされ、その結果、ユーザがこれらの部分にコンピュータのカーソルを置くと、文脈依存ツール、制御および／またはヘルプコンテンツがユーザに提供される。ユーザのコンピュータ画面上で、カーソルが置かれたテキストまたはデータのコンテキストに関連した文書ツール、制御またはヘルプコンテンツを提供するために編集される文書に隣接した部分に、文書ツールペインを開くことができる。ユーザがカーソルを文書の他の部分に移動させると、ユーザは、カーソルが置かれた文書の新しい部分の文脈に関連付けられた情報を取得することができる。【選択図】　　　　図２
2004046828.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで生成された文書にコンテキスト依存機能を提供する方法であって、
前記文書に対して許容されるデータコンテンツ、データタイプおよびデータ構造を定義する前記文書にスキーマを付加するステップと、
前記文書を構成して、前記文書を前記スキーマに関連付けるステップと、
ソリューションを前記構成された文書に関連付けるステップと、
前記ソリューションを前記文書に提供するために、複数のソフトウェア構成要素をアセンブルするステップと、
前記文書内の編集位置に基づいて前記ソリューションを前記文書に提供するために、前記文書が前記複数のソフトウェア構成要素を呼び出せるようにするステップと
を備えたことを特徴とする方法。
【請求項２】
前記スキーマは、文書全体に対して許容されるデータコンテンツ、データタイプおよびデータ構造の定義を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記スキーマは、前記文書の特定部分に対して許容されるデータコンテンツ、データタイプおよびデータ構造の定義を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記文書にスキーマを付加するステップは、ＸＭＬスキーマを前記文書に付加することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記文書を構成するステップは、前記文書の前記特定部分を構成して、前記スキーマによって定義された前記文書の前記特定部分に対して、許容されるデータコンテンツ、許容されるデータタイプおよび許容されるデータ構造に、前記文書の前記特定部分を関連付けることを含むことを特徴とする請求項３に記載の方法。
【請求項６】
前記文書の前記特定部分を構成するステップは、前記文書の前記特定部分にＸＭＬ構造で注釈付けすることを含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記文書にＸＭＬ構造で注釈付けするステップは、前記文書の前記特定部分に関連付けられたＸＭＬ要素を定義することをさらに備えたことを特徴とする請求項６に記載の方法。
【請求項８】
ＸＭＬ要素を定義するステップは、前記文書の複数のテキスト文字列に関連付けられたＸＭＬ要素を定義することをさらに備えたことを特徴とする請求項７に記載の方法。
【請求項９】
ＸＭＬ要素を定義するステップは、前記文書内の複数のデータ要素に関連付けられたＸＭＬ要素を定義することをさらに備えたことを特徴とする請求項７に記載の方法。
【請求項１０】
前記文書構造にソリューションを関連付けるステップは、ヘルプコンテンツおよび文書ツールを前記ＸＭＬ構造に関連付けることをさらに備えたことを特徴とする請求項６に記載の方法。
【請求項１１】
前記ヘルプコンテンツおよび文書ツールは、前記ＸＭＬ構造を備えたＸＭＬ要素に関連付けられることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記文書構造にソリューションを関連付けるステップは、制御を前記ＸＭＬ構造に関連付けることをさらに備えたことを特徴とする請求項６に記載の方法。
【請求項１３】
前記ＸＭＬ構造に制御を関連付けるステップは、ラジオボタン、チェックボックスまたはテキストボックスを前記ＸＭＬ構造に関連付けることを含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記複数のソフトウェア構成要素をソフトウェア構成要素のマニフェストにリストするステップと、
前記マニフェストを指すポインタをソフトウェア構成要素のライブラリに格納するステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項１５】
前記ソフトウェア構成要素のライブラリは、スキーマライブラリであることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記文書が前記複数のソフトウェア構成要素を呼び出せるようにするステップは、前記文書にソリューションプロパティを付加して、前記ソリューションを提供するための前記複数のソフトウェア構成要素を前記文書に関連付けるステップをさらに備えたことを特徴とする請求項７に記載の方法。
【請求項１７】
前記ソリューションプロパティを前記ＸＭＬ構造に関連付けるステップをさらに備えたことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記文書にソリューションプロパティを付加するステップは、前記文書に複数のソリューションプロパティを付加して、前記ソリューションの複数の文脈上のサブセットを前記文書の前記特定部分に関連付けるステップをさらに備えたことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記ソリューションの前記複数の文脈上のサブセットの各々を、複数の対応するＸＭＬ要素に関連付けることをさらに備えたことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記ソリューションの前記複数の文脈上のサブセットの各々は、複数のＸＭＬ要素の各々に関連付けられたヘルプコンテンツまたは文書ツールを含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記ソリューションに関連付けられたＸＭＬ要素内での前記文書の編集の開始に基づいて、前記文書からの前記ソリューションへの呼出しを受け取ることにより、前記文書が前記ソリューションを受け取れるようにするステップをさらに備えたことを特徴とする請求項７に記載の方法。
【請求項２２】
前記文書を開くためにソフトウェアアプリケーションを起動するステップと、
前記文書を開くことを始めるステップと、
前記文書が前記ソリューションについて言及しているか否かを判別するステップと、
前記ソリューションを提供するための前記複数のソフトウェア構成要素が、ソフトウェア構成要素のライブラリに存在するか否かを判別するステップと、
前記文書に前記ソリューションを提供するために前記複数のソフトウェア構成要素を呼び出すステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項２３】
前記複数のソフトウェア構成要素の呼出しに応答して、前記ソリューションを前記文書に提供することを特徴とする請求項２２に記載の方法。
【請求項２４】
前記文書が複数のソリューションについて言及しているか否かを判別することをさらに備えたことを特徴とする請求項２２に記載の方法。
【請求項２５】
前記文書が前記ソリューションを指示するソリューションプロパティを含むか否かを判別することをさらに備えたことを特徴とする請求項２２に記載の方法。
【請求項２６】
前記文書が前記ソリューションを指すポインタを含むか否かを判別することをさらに備えたことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記文書が前記ソリューションの文脈上のサブセットを指すポインタを含むか否かを判別することをさらに備えたことを特徴とする請求項２６に記載の方法。
【請求項２８】
前記文書が使用することができる前記複数のソフトウェア構成要素により提供される機能により、前記文書を開くことを完了させるステップをさらに備えたことを特徴とする請求項２２に記載の方法。
【請求項２９】
前記文書の特定部分において文書の編集に焦点をあてるステップと、
前記編集の焦点の位置を囲むＸＭＬ要素のリストを生成するステップと、
使用可能なソリューションが前記ＸＭＬ要素のリストに関連付けられているかを判別するステップと、
使用可能なソリューションが前記ＸＭＬ要素のリストに関連付けられていると判別された後に、関連付けられたソリューションの各々を呼び出し、関連付けられたソリューションの各々を前記文書が使用するために取得するステップと
をさらに備えたことを特徴とする請求項２２に記載の方法。
【請求項３０】
前記文書の特定部分において文書の編集に焦点をあてるステップは、前記文書の前記特定部分にコンピュータのカーソルを置くことを含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
使用可能なソリューションが前記ＸＭＬ要素のリストに関連付けられているかを判別するステップは、ソリューションのルックアップテーブルを解析して、使用可能なソリューションが前記ＸＭＬ要素のリストにある任意のＸＭＬ要素に関連付けられているかを判別するステップをさらに備えたことを特徴とする請求項２５に記載の方法。
【請求項３２】
前記使用可能なソリューションを備えた複数のソフトウェア構成要素の各々を呼び出すことによって、前記使用可能なソリューションのいくつかが動的であるか否かを判別するステップをさらに備えたことを特徴とする請求項３１に記載の方法。
【請求項３３】
前記使用可能なソリューションを備えた複数のソフトウェア構成要素の各々を呼び出すことによって、前記文書のユーザに表示されることになる前記使用可能なソリューションに関連付けられた機能の種類を判別するステップをさらに備えたことを特徴とする請求項３１に記載の方法。
【請求項３４】
ユーザに表示されることになる前記使用可能なソリューションに関連付けられた機能の種類を判別するステップに応答して、前記ユーザに表示するヘルプコンテンツを指定することを特徴とする請求項３３に記載の方法。
【請求項３５】
ユーザに表示されることになる前記使用可能なソリューションに関連付けられた機能の種類を判別するステップに応答して、前記ユーザに表示する文書ツールを指定することを特徴とする請求項３４に記載の方法。
【請求項３６】
ユーザに表示されることになる前記使用可能なソリューションに関連付けられた機能の種類を判別するステップに応答して、前記ユーザに表示する制御を指定することを特徴とする請求項３３に記載の方法。
【請求項３７】
表示するように指定された制御は、ラジオボタン、チェックボックスおよびテキストボックスを含むことを特徴とする請求項３６に記載の方法。
【請求項３８】
前記ＸＭＬ要素のリストに関連付けられた前記使用可能なソリューションに関連付けられた文書アクション、制御またはヘルプコンテンツのリストを定義するためのＸＭＬスキーマを作成するステップ
をさらに備えたことを特徴とする請求項２９に記載の方法。
【請求項３９】
前記文書が使用するために取得した各ソリューションを表示するためのグラフィカルユーザインタフェースを開始するステップをさらに備えたことを特徴とする請求項３３に記載の方法。
【請求項４０】
前記文書が使用するために取得した各ソリューションを表示するステップは、前記文書のユーザに表示可能なヘルプペイン内にヘルプコンテンツおよび文書ツールを描画することを含むことを特徴とする請求項３９に記載の方法。
【請求項４１】
前記文書が使用するために取得した各ソリューションを表示するステップは、前記文書のユーザに表示可能なヘルプペイン内にラジオボタン、チェックボックスまたはテキストボックスを描画することを含むことを特徴とする請求項３９に記載の方法。
【請求項４２】
前記文書に前記ソリューションを提供するためのアプリケーションプログラミングインタフェースを実施するための方法をさらに備え、該方法は、
前記ソリューションに関連付けられたいくつかのＸＭＬ要素タイプを含むＳｍａｒｔＤｏｃＸＭＬＴｙｐｅＣｏｕｎｔプロパティを提供するステップと、
前記ソリューションに関連付けられたＸＭＬ要素タイプに関する一意の識別子を含むＳｍａｒｔＤｏｃＸＭＬＴｙｐｅＮａｍｅプロパティを提供するステップと、
ユーザに表示可能なＸＭＬ要素に関連付けられたキャプションを含むＳｍａｒｔＤｏｃＸＭＬＴｙｐｅＣａｐｔｉｏｎプロパティを提供するステップと、
前記ソリューションに関連付けられたいくつかの制御を含むＣｏｎｔｒｏｌＣｏｕｎｔプロパティを提供するステップと、
前記コントロールの一意の識別子を含むＣｏｎｔｒｏｌＩＤプロパティを提供するステップと、
前記ソリューションと共に使用可能な前記制御の種類を含むＣｏｎｔｒｏｌＴｙｐｅＦｒｏｍＩＤプロパティを提供するステップと、
前記文書を提供するアプリケーションプログラムによって内部的に使用するために各制御に関連付けられた名前を戻すためのＣｏｎｔｒｏｌＮａｍｅＦｒｏｍＩＤプロパティを提供するステップと、
ユーザに表示可能なラジオコントロールを配置するために実行されるルーチンおよび命令を含むＰｏｐｕｌａｔｅＲａｄｉｏＧｒｏｕｐメソッドを提供するステップと、
ラジオコントロールが選択されると実行されるルーチンおよび命令を含むＯｎＲａｄｉｏＧｒｏｕｐＳｅｌｅｃｔＣｈａｎｇｅメソッドを提供するステップと、
前記ソリューションに関連付けられたイメージを配置するために実行されるルーチンおよび命令を含むＰｏｐｕｌａｔｅＩｍａｇｅメソッドを提供するステップと、
イメージを選択すると実行されるルーチンおよび命令を含むＩｍａｇｅＣｌｉｃｋメソッドを提供するステップと、
データを表示するために実行されるルーチンおよび命令を含むＰｏｐｕｌａｔｅＤｏｃｕｍｅｎｔＦｒａｇｍｅｎｔメソッドを提供するステップと、
前記ソリューションに関連付けられたＡｃｔｉｖｅＸ機能を取得するために実行されるルーチンおよび命令を含むＰｏｐｕｌａｔｅＡｃｔｉｖｅＸＰｒｏｐｓメソッドを提供するステップと、
チェックボックスコントロールを提供するためのルーチンおよび命令を含むＰｏｐｕｌａｔｅＣｈｅｃｋｂｏｘメソッドを提供するステップと、
チェックボックスコントロールが選択されると実行されるルーチンおよび命令を含むＯｎＣｈｅｃｋｂｏｘＣｈａｎｇｅメソッドを提供するステップと、
リストボックスコントロールを配置するために実行されるルーチンおよび命令を含むＰｏｐｕｌａｔｅＬｉｓｔＯｒＣｏｍｂｏＣｏｎｔｅｎｔメソッドを提供するステップと、
リストボックスコントロールの項目を選択するときに実行されるルーチンおよび命令を含むＯｎＬｉｓｔＯｒＣｏｍｂｏＳｅｌｅｃｔＣｈａｎｇｅメソッドを提供するステップと、
テキストボックスを配置するためのルーチンおよび命令を含むＰｏｐｕｌａｔｅＴｅｘｔｂｏｘＣｏｎｔｅｎｔメソッドを提供するステップと、
前記テキストボックスコントロールでのコンテンツの変更に関連付けられたイベントを処理するために実行されるルーチンおよび命令を含むＯｎＴｅｘｔｂｏｘＣｏｎｔｅｎｔＣｈａｎｇｅメソッドを提供するステップと、
データと共にヘルプコンテンツフィールドを配置するためのルーチンおよび命令を含むＰｏｐｕｌａｔｅＨｅｌｐＣｏｎｔｅｎｔメソッドを提供するステップと、
制御が選択されると実行されるルーチンおよび命令を含むＩｎｖｏｋｅＣｏｎｔｒｏｌメソッドを提供するステップと
を備えたことを特徴とする請求項１３に記載の方法。
【請求項４３】
コンピュータで生成された文書にコンテキスト依存機能を提供する方法であって、
前記文書に対して許容されるデータコンテンツ、データタイプおよびデータ構造を定義する前記文書にＸＭＬスキーマを付加するステップと、
前記スキーマによって定義された前記文書の特定部分に対して前記許されるデータコンテンツ、前記許容されるデータタイプおよび許容されるデータ構造に関連付けられたＸＭＬ構造によって、前記文書の特定部分に注釈付けするステップと、
ヘルプコンテンツおよび文書ツールを、前記ＸＭＬ構造を備えたＸＭＬ要素に関連付けるステップと、
前記ヘルプコンテンツおよび文書ツールを前記文書に提供するために複数のソフトウェア構成要素をアセンブルするステップと、
前記文書内の編集位置に基づいて前記ヘルプコンテンツおよび文書ツールを前記文書に提供するために、前記文書が前記複数のソフトウェア構成要素を呼び出せるようにするステップと
を備えたことを特徴とする方法。
【請求項４４】
前記複数のソフトウェア構成要素をソフトウェア構成要素のマニフェストにリスト表示するステップと、
前記マニフェストをソフトウェア構成要素のライブラリに格納するステップと
をさらに備えたことを特徴とする請求項４３に記載の方法。
【請求項４５】
前記文書が前記複数のソフトウェア構成要素を呼び出せるようにするステップは、前記文書にソリューションプロパティを付加して、前記ヘルプコンテンツおよび文書ツールを提供するための前記複数のソフトウェア構成要素を前記文書に関連付けるステップをさらに備えたことを特徴とする請求項４３に記載の方法。
【請求項４６】
特定のヘルプコンテンツまたは特定の文書アクションに関連付けられたＸＭＬ要素内で前記文書の編集を開始したときに、前記複数のソフトウェア構成要素を呼び出すことによって、前記文書が前記ヘルプコンテンツおよび文書ツールを受け取ることができるようにするステップをさらに備えたことを特徴とする請求項４３に記載の方法。
【請求項４７】
前記文書を開くためにソフトウェアアプリケーションを起動するステップと、
前記文書が前記ヘルプコンテンツおよび文書ツールについて言及しているか否かを判別するステップと、
前記ヘルプコンテンツおよび文書ツールを提供するための前記複数のソフトウェア構成要素が、ソフトウェア構成要素のライブラリに存在するか否かを判別するステップと、
前記文書に前記ヘルプコンテンツおよび文書ツールを提供するために前記複数のソフトウェア構成要素を呼び出すステップと
をさらに備えたことを特徴とする請求項４６に記載の方法。
【請求項４８】
前記複数のソフトウェア構成要素の呼出しに応答して、前記ヘルプコンテンツおよび文書ツールを前記文書に提供することを特徴とする請求項４７に記載の方法。
【請求項４９】
前記文書を開くステップと、
前記文書の特定部分にコンピュータのカーソルを置くステップと、
前記カーソルの位置を囲むＸＭＬ要素のリストを生成するステップと、
使用可能なヘルプコンテンツおよび文書ツールが前記ＸＭＬ要素のリストに関連付けられているか否かを判別するステップと、
使用可能なヘルプコンテンツおよび文書ツールが前記ＸＭＬ要素のリストに関連付けられていると判別された後に、関連付けられたヘルプコンテンツおよび文書ツールの各々を呼び出すステップと、
関連付けられたヘルプコンテンツまたは文書アクションの各々を前記文書が使用するために取得するステップと
をさらに備えたことを特徴とする請求項４７に記載の方法。
【請求項５０】
使用可能なヘルプコンテンツおよび文書ツールが前記ＸＭＬ要素のリストに関連付けられているか否かを判別するステップは、ソリューションのルックアップテーブルを解析して、使用可能なヘルプコンテンツおよび文書ツールが前記ＸＭＬ要素のリストにある任意のＸＭＬ要素に関連付けられているか否かを判別するステップをさらに備えたことを特徴とする請求項４９に記載の方法。
【請求項５１】
前記文書が使用するために取得したヘルプコンテンツまたは文書アクションの各々を表示するためのグラフィカルユーザインタフェースを開始するステップと、
各ヘルプコンテンツまたは文書アクションを前記グラフィカルユーザインタフェースに表示するステップと
をさらに備えたことを特徴とする請求項５０に記載の方法。
【請求項５２】
コンピュータ実行可能命令を格納したコンピュータ読取り可能媒体であって、コンピュータによって前記コンピュータ実行可能命令が実行されると、
前記文書に対して許容されるデータコンテンツ、データタイプおよびデータ構造を定義する前記文書にＸＭＬスキーマを付加するステップと、
前記スキーマによって定義された前記文書の特定部分に対して前記許されるデータコンテンツ、前記許容されるデータタイプおよび許容されるデータ構造に関連付けられたＸＭＬ構造によって、前記文書の特定部分に注釈付けするステップと、
ヘルプコンテンツおよび文書ツールを、前記ＸＭＬ構造を備えたＸＭＬ要素に関連付けるステップと、
前記ヘルプコンテンツおよび文書ツールを前記文書に提供するために複数のソフトウェア構成要素をアセンブルするステップと、
前記文書内の編集位置に基づいて前記ヘルプコンテンツおよび文書ツールを前記文書に提供するために、前記文書が前記複数のソフトウェア構成要素を呼び出せるようにするステップと
を実行することを特徴とするコンピュータ読取り可能媒体。
【請求項５３】
コンピュータによって前記コンピュータ実行可能命令が実行されると、
前記複数のソフトウェア構成要素をソフトウェア構成要素のマニフェストにリスト表示するステップと、
前記マニフェストをソフトウェア構成要素のライブラリに格納するステップとをさらに実行することを特徴とする請求項５２に記載のコンピュータ読取り可能媒体。
【請求項５４】
コンピュータによって前記コンピュータ実行可能命令が実行されると、
前記文書が前記複数のソフトウェア構成要素を呼び出せるようにするステップは、前記文書にソリューションプロパティを付加して、前記ヘルプコンテンツおよび文書ツールを提供するための前記複数のソフトウェア構成要素を前記文書に関連付けるステップ
をさらに実行することを特徴とする請求項５３に記載のコンピュータ読取り可能媒体。
【請求項５５】
コンピュータによって前記コンピュータ実行可能命令が実行されると、
特定のヘルプコンテンツまたは特定の文書アクションに関連付けられたＸＭＬ要素内で前記文書の編集を開始したときに、前記複数のソフトウェア構成要素を呼び出すことによって、前記文書が前記ヘルプコンテンツおよび文書ツールを受け取ることができるようにするステップ
をさらに実行することを特徴とする請求項５４に記載のコンピュータ読取り可能媒体。
【請求項５６】
コンピュータによって前記コンピュータ実行可能命令が実行されると、
前記文書を開くためにソフトウェアアプリケーションを起動するステップと、前記文書が前記ヘルプコンテンツおよび文書ツールについて言及しているか否かを判別するステップと、
前記ヘルプコンテンツおよび文書ツールを提供するための前記複数のソフトウェア構成要素が、ソフトウェア構成要素のライブラリに存在するか否かを判別するステップと、
前記文書に前記ヘルプコンテンツおよび文書ツールを提供するために前記複数のソフトウェア構成要素を呼び出すステップと
をさらに実行することを特徴とする請求項５５に記載のコンピュータ読取り可能媒体。
【請求項５７】
コンピュータによって前記コンピュータ実行可能命令が実行されると、
前記複数のソフトウェア構成要素の呼出しに応答して、前記ヘルプコンテンツおよび文書ツールを前記文書に提供するステップ
をさらに実行することを特徴とする請求項５６に記載のコンピュータ読取り可能媒体。
【請求項５８】
コンピュータによって前記コンピュータ実行可能命令が実行されると、
前記文書を開くステップと、
前記文書の特定部分にコンピュータのカーソルを置くステップと、
前記カーソルの位置を囲むＸＭＬ要素のリストを生成するステップと、
使用可能なヘルプコンテンツおよび文書ツールが前記ＸＭＬ要素のリストに関連付けられているか否かを判別するステップと、
使用可能なヘルプコンテンツおよび文書ツールが前記ＸＭＬ要素のリストに関連付けられていると判別された後に、関連付けられたヘルプコンテンツおよび文書ツールの各々を呼び出すステップと、
関連付けられたヘルプコンテンツまたは文書アクションの各々を前記文書が使用するために取得するステップと
をさらに実行することを特徴とする請求項５７に記載のコンピュータ読取り可能媒体。
【請求項５９】
コンピュータによって前記コンピュータ実行可能命令が実行されると、
使用可能なヘルプコンテンツおよび文書ツールが前記ＸＭＬ要素のリストに関連付けられているか否かを判別するステップは、ソリューションのルックアップテーブルを解析して、使用可能なヘルプコンテンツおよび文書ツールが前記ＸＭＬ要素のリストにある任意のＸＭＬ要素に関連付けられているか否かを判別するステップ
をさらに実行することを特徴とする請求項５８に記載のコンピュータ読取り可能媒体。
【請求項６０】
コンピュータによって前記コンピュータ実行可能命令が実行されると、
前記文書が使用するために取得したヘルプコンテンツまたは文書アクションの各々を表示するためのグラフィカルユーザインタフェースを開始するステップと、
各ヘルプコンテンツまたは文書アクションを前記グラフィカルユーザインタフェースに表示するステップと
をさらに実行することを特徴とする請求項５９に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータで生成された文書における文脈依存ツール（ｃｏｎｔｅｘｔｕａｌｌｙ　ｓｅｎｓｉｔｉｖｅ　ｔｏｏｌｓ）およびヘルプコンテンツ（ｈｅｌｐ　ｃｏｎｔｅｎｔ）の提供に関する。
【０００２】
【従来の技術】
コンピュータソフトウェアアプリケーションは、仕事、教育およびレジャーにおいてユーザを支援するための様々な文書を、ユーザが作成できるようにする。例えば、よく利用されているワードプロセッシングアプリケーションは、手紙、記事、本、メモなどを、ユーザが作成できるようにする。スプレッドシートプログラムは、様々な英数字データを、ユーザが記憶、操作、印刷および表示できるようにする。このようなアプリケーションには、リッチ編集（ｒｉｃｈ　ｅｄｉｔｉｎｇ）、フォーマットおよび計算を含むいくつかのよく知られた長所がある。
【０００３】
しかしながら、このようなソフトウェアアプリケーションによって作成された文書は、文脈依存ツール、ヘルプコンテンツまたはサポートをユーザに提供するものではない。すなわち、ユーザがこのようなソフトウェアアプリケーションにテキストまたはデータを入力する場合、これらアプリケーションは、ユーザが入力したテキストまたはデータの文脈に基づいた役に立つツールまたは支援を、ユーザに提供しない。インターネットＷｅｂベースのアプリケーションは、ユーザがいくつかの種類のサービスを登録するために、バックエンドのＷｅｂサーバに送信される情報を、ユーザが入力する際に、Ｗｅｂベースのテンプレートの作成および開発を通じて、いくつかのビジネス上の問題を解決しようと試みる。Ｗｅｂベースのアプリケーションには、ユーザが使用している現在のＷｅｂベースのアプリケーションまたは文書で役に立つ情報または支援のための、別のＷｅｂサイトにナビゲートするときのリンクを含むことができる。しかしながら、このようなＷｅｂベースのアプリケーションは、現代のＷｅｂベースのアプリケーションがリッチ編集、フォーマットおよび計算をほとんど提供しないという点で、前述のソフトウェアアプリケーション文書に比べて不利を蒙る。
【０００４】
例えば、典型的な設定で、ユーザは、自身の家庭用コンピュータにロードされているワードプロセッシングアプリケーションを使用して、履歴書を作成することに決めたとする。ユーザが履歴書を作成する場合は、「個人情報」、「学歴」、「経験」および「課外活動」などのセクションに記入することになる。ユーザがこうしたセクションを完成させる場合には、セクションの好ましい順序に関する情報、「経験」のセクションに記入する過去の職業の好ましい数に関する情報などを含む支援を要求することができる。このような支援を受け取るためには、ユーザは、履歴書に関する書籍を読むか、またはオンライン上のインターネットベースの履歴書ヘルプサイトで情報を探さなければならない。
【０００５】
これに対して、インターネットベースの履歴書サイトに入り、Ｗｅｂベースの履歴書テンプレートを使用して履歴書を完成させることができる。ユーザは、所与のデータフィールドに特定の情報を入力すれば、文書の様々なセクションについて支援を取得することのできるサイトにナビゲートするための、インターネットＷｅｂサイトリンクが提供される。ユーザがＷｅｂベースの履歴書作成を完成させると、ユーザは、この履歴書をいくつかのＷｅｂベースの職業サービスへ提出するか、またはこのテンプレートを印刷することができる。しかしながら、履歴書のリッチ編集およびフォーマットなどの、ユーザのワードプロセッシングアプリケーションの機能は、ユーザのコンピュータベースのワードプロセッサに比べて、Ｗｅｂベースのアプリケーションに制限が与えられて、ユーザが利用できない可能性がある。
【０００６】
【発明が解決しようとする課題】
本発明は、これらおよび他の考慮すべき点に関して実施されるものである。
【０００７】
本発明は、コンピュータで生成された文書のユーザに対して文脈依存ツール、制御およびヘルプコンテンツを提供するコンピュータで生成された文書を作成、実施および使用するための、方法およびシステムを提供することにある。
【０００８】
【課題を解決するための手段】
一般に、スキーマは、文書のデータコンテンツ、データタイプおよびデータ構造を定義する文書が添付される。文書は、文書をスキーマに関連付けるように構成され、ソリューションは文書構造に関連付けられる。複数のソフトウェア構成要素は、文書のソリューションを提供するために組み立てられ、文書は、文書内の編集位置に基づいて、文書のソリューションを提供するために、複数のソフトウェア構成要素を呼び出すことができる。
【０００９】
文書が作成されると、文書を開くためのソフトウェアアプリケーションを起動して、文書を開くことを開始することができる。文書が、ソリューションに適用されるか否か判別される。ソリューションを提供するための複数のソフトウェア構成要素が、ソフトウェア構成要素のライブラリ内に存在するか否かが判別される。存在する場合には、複数のソフトウェア構成要素は、文書のソリューションを提供するために呼び出される。
【００１０】
文書を使用するために開くと、文書中の特定部分にカーソルを配置することなどによって、文書の特定部分に文書編集の焦点をあてることにより、編集の焦点の位置を囲むＸＭＬ（Ｅｘｔｅｎｓｉｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）要素のリストが生成される。使用可能なソリューションが、ＸＭＬ要素のリストに関連付けられるか否かが判別される。使用可能なソリューションが、ＸＭＬ要素のリストに関連付けられている場合には、関連付けられたソリューションの各々が呼び出され、文書により使用するために取得される。好ましくは、ソリューションは、文書中の編集位置の文脈に関連付けられたヘルプコンテンツおよび文書ツールを含む。グラフィカルユーザインタフェースは、文書により使用するために取得された各ソリューションを表示するために開始される。
【００１１】
本発明のこれらおよび他の特徴、利点および態様は、開示された実施形態の以下の詳細な説明を再検討すること、ならびに添付の図面および特許請求の範囲を参照することにより、より明確に理解することができる。
【００１２】
【発明の実施の形態】
本発明は、コンピュータで生成された「スマート」文書のユーザに文脈依存ツール、ヘルプコンテンツおよび制御を提供するための機能が付加された、コンピュータで生成された「スマート」文書の作成、実施および使用を対象とする。本発明の一実施形態によれば、文書の一部分が構成され、ユーザが、この部分にコンピュータのカーソルを置くことなどによって、この部分に入ると、文書は、文脈依存ツールおよび／またはヘルプコンテンツをユーザに提供できるソリューションを指示する。例えば、ユーザが、仕事を得る際に役立てるための履歴書を作成している場合に、ユーザは、履歴書の「学歴」セクションに自分のコンピュータのカーソルを置くことができる。本発明によれば、コンピュータのカーソルを「学歴」セクションに置くことにより、ユーザに文脈依存情報を提供することができる。文書は、ソリューション全体、例えば、履歴文書ソリューションを指示することができ、または文書の個々の部分は、ソリューションの文脈上のサブセット、例えば、履歴文書ソリューションの「経験」セクションソリューションを指示することができる。文書ツールペインを、ユーザのコンピュータ画面上において編集中の文書の隣に開くことができ、「学歴」セクションを完成させるための推奨された方法に関するコメントを表示することができる。ユーザが文書の別の部分、例えば履歴書の「目的」セクションにカーソルを移動させると、ユーザは、適切な就職目的の文例など、その文脈に関連付けられた情報を取得することができる。
【００１３】
本発明の一実施形態に従ってユーザに提供される文脈依存ツールおよびヘルプコンテンツには、ワードプロセッサ、スプレッドシート、Ｗｅｂブラウザ、テキストエディタなどを含む様々なソフトウェアアプリケーションプログラムが提供できることを理解されたい。さらに、本発明の一実施形態に従ってユーザに提供される有用な情報およびツールの種類およびコンテンツは、ユーザが使用する際にソフトウェアアプリケーションの作成者が所望した様々なツールとアクションとヘルプの情報を含むことができる。
【００１４】
図１を参照して、文書と、文書ツールおよびヘルプコンテンツを提供する関連付けられた文書ツールペインとが示された例示的なソフトウェアアプリケーション１００を示す、コンピュータ画面表示を示す。図１に示された文書１１０は、従業員が自分の年次業績評価を完成するか、または従業員のうち１人の業績評価を完成することができる、従業員年次業績評価テンプレートを示す。図１に示されたアプリケーション１００は、文書１１０を表示および編集するために使用されるワードプロセッシングアプリケーションであるが、当業者であれば理解されるように、アプリケーション１００は、スプレッドシートアプリケーション、テキスト編集アプリケーションなどの他のソフトウェアアプリケーションを含むことができる。さらに図１に示される文書１１０は、年次業績評価文書を示しているが、文書１１０は、履歴書テンプレート、遺言テンプレート、デスクトップパブリッシング文書、手紙、財務スプレッドシートなどを含む、ユーザによって編集される他の様々な文書およびテンプレートを含むことができる。
【００１５】
図１に示された例示的文書を参照すると、ワードプロセッシングアプリケーション１００は、Ｆｉｌｅ、Ｅｄｉｔ、Ｖｉｅｗ、Ｉｎｓｅｒｔ、Ｆｏｒｍａｔなどのドロップダウンメニューを介してアクセス可能な、ワードプロセッサに関連付けられた典型的な機能を提供する。文書１１０は、アプリケーション１００の作業領域内に表示され、文書ツールペイン１３５は、文書１１０の右側に示される。当然のことながら、図１に示された表示は、例として示したものにすぎず、図１に示された構成要素は、ユーザを満足させる様々な異なる方法で編成することができる。すなわち、文書ツールペインは、画面表示の下部、文書１１０の左、またはアプリケーション１００が許容できる他の配列に従って配置することができる。
【００１６】
図１に示された「スマート」文書１１０の作成および実施に関して、以下で詳細に論じるが、本発明の一実施形態に従って一般的に論じるものであって、ユーザが文書１１０の特定セクション、例えば、図１に示された「Ｏｂｊｅｃｔｉｖｅｓ」セクション１２５内にコンピュータカーソルを置くと、ユーザは、文書ツールペイン１３５内のツールおよびヘルプコンテンツが提供される。例えば、ユーザが自分のコンピュータカーソルを「Ｏｂｊｅｃｔｉｖｅｓ」セクション１２５に置くと、文書ツールペイン１３５に示される「Ｏｂｊｅｃｔｉｖｅ　Ｗｒｉｔｉｎｇ　Ｔｉｐｓ」１５５を、ユーザに提供することができる。図１に示されるように「Ｏｂｊｅｃｔｉｖｅ　Ｗｒｉｔｉｎｇ　Ｔｉｐｓ」１５５を選択すると、図１に示される業績評価文書１１０の「Ｏｂｊｅｃｔｉｖｅｓ」セクションを完成させる方法に関する有用な情報をユーザに提供する、「Ｏｂｊｅｃｔｉｖｅ　Ｗｒｉｔｉｎｇ　Ｔｉｐｓ」テキスト１６０が表示される。ユーザがカーソルを文書の別のセクション、例えば、個人情報セクション１２０に移動させると、文書ツールペイン１３５には、個人情報セクション１２０を完成させるにあたってユーザを支援するための情報が提供される。
【００１７】
ユーザを支援する有用な情報に加えて、様々な文書ツールおよびアクション１４５が提供される。例えば、「Ｓｕｂｍｉｔ　Ｒｅｖｉｅｗ」アクションでは、文書完成後に、ユーザが完成させた文書１１０を自分の上司または自分の従業員に提出することができる。「Ｏｐｅｎ　Ｌａｓｔ　Ｒｅｖｉｅｗ」アクションでは、最新の業績評価を開いて、ユーザが最新の評価で述べたとおりに自分の目標を完了したかどうかを判別することができる。ユーザが使用している文書が、例えば履歴書文書などの何らかの他の種類の文書の場合には、文書ツールペイン内の有用な情報は、「学歴」セクション、「経験」セクションおよび／または「個人情報」セクションの作成に関する情報を含むことができる。遺言文書１１０は、遺言作成に関する法的規則、遺産受取人に関する規則などに関する有用な情報に関連付けることができる。
【００１８】
ペイン１３５に示された文書アクションおよびヘルプコンテンツに加えて、ラジオボタン、テキストボックス、チェックボックス、ＡｃｔｉｖｅＸコントロール、ＸＭＬツリーコントロールなどを含む、様々な文書制御を提供することができる。例えば、ユーザが事前に作成したテキスト項目のリストから選択できるようにするためのテキストボックスを提供することができる。あるいは、ユーザが、ペイン１３５に提供されたリストボックスにテキストを入力することが可能であり、これが文書に挿入されるかまたはアプリケーションの何らかの他の機能に関してアプリケーションによって使用されることになる。ラジオボタンまたはチェックボックスは、ユーザが文書アクションまたはヘルプコンテンツの様々な選択肢から選択できるように提供される。例えば、文書が遺言の場合、「既婚」、「未婚」などを選択できるチェックボックスが提供されて、ユーザの個人的遺言および遺産概要に基づいたヘルプ情報を取得することができる。
【００１９】
図２を参照して、本発明に従って「スマート」文書１１０を作成および使用するための一般的なシステムアーキテクチャを示す。上述のように、ソフトウェアアプリケーション１００は、ユーザのコンピュータ２０上で開かれ、本発明に従って文書１１０を作成または編集する。スキーマライブラリ１０５は、コンテキスト依存機能を文書１１０に提供するために、すべての実行可能ファイルを含むように提供される。例えば、スキーマライブラリは、コンパイルおよび動的にリンクされ、コンテキスト依存機能を文書１１０に提供するためにアプリケーション１００により使用できる個々のモジュラ・ソフトウェア・ルーチンを含む、様々な構成要素を含むことができる。
【００２０】
このような構成要素は、ソフトウェアアプリケーション１１０とは別に格納された実行可能ファイルまたはルーチンを含む、いくつかのダイナミックリンクライブラリ（ｄｌｌ）を含むことができる。ｄｌｌは、文書１１０に機能を提供する必要がある場合に限り、ソフトウェアアプリケーション１００によってロードされる。さらに以下で詳細に説明するように、スキーマライブラリ１０５は、文書１１０に適用されたＸＭＬ構造に従って、コンテキスト依存機能を提供するための、いくつかのＸＭＬファイルを含むことができる。
【００２１】
ソリューションプロパティ１１５は、スキーマライブラリ１０５を含む特定のソリューションに文書を示すために、文書１１０に含まれる。ソリューション位置プロパティ１１８は、スキーマライブラリ内のソリューションプロパティの位置、またはＷｅｂベースのサーバからインターネットを介して提供されるのと同様に、分散コンピューティング環境を介して提供されるリモート位置に関する情報を、文書１１０およびアプリケーション１００に提供する。
【００２２】
本発明に従って以下で詳細に説明するように、図１に示された業績評価１１０の「Ｏｂｊｅｃｔｉｖｅｓ」セクションなどの、文書１１０の特定部分にユーザが焦点をあてると、ソリューションプロパティ１１５は、文書に、文書ツールペイン１３５に示された「Ｏｂｊｅｃｔｉｖｅｓ」セクションのヘルプソリューションを指示する。ソリューション位置１１８は、文書１１０およびアプリケーション１００に、そのソリューションを実施するのに必要な構成要素の位置、ｄｌｌまたはＸＭＬファイルを提供する。当然のことながら、例示的構成要素は、文書ツールペイン１３５を描画するための構成要素と、特定のコンテキスト、この場合は「Ｏｂｊｅｃｔｉｖｅｓ」セクションに関連付けられた情報を表示するための構成要素と、「Ｓｕｂｍｉｔ　Ｒｅｖｉｅｗ」アクション１４５などの文書アクションを実行するための構成要素を含むことができる。
【００２３】
図３および以下の考察は、本発明を実施可能な好適なコンピューティング環境の簡単かつ一般的な記述を提供することを意図するものである。本発明を、パーソナルコンピュータに関連してオペレーティングシステム上で動作するアプリケーションプログラムの一般的な文脈で説明するが、当業者であれば、本発明が他のプログラムモジュールと組み合わせても実施可能であることを理解されよう。一般にプログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実施する、ルーチン、プログラム、構成要素、データ構造などを含む。さらの当業者であれば、本発明が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭電化製品、セルラ式電話、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成で実施可能であることを理解されよう。本発明は、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される、分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートの両方のメモリ記憶デバイスに配置することができる。
【００２４】
図３を参照すると、本発明を実施するための例示的システムには、処理ユニット２１、システムメモリ２２、およびシステムメモリを処理ユニット２１に結合するシステムバス２３を含む、従来のパーソナルコンピュータ２０が含まれる。システムメモリ２２は、読取り専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。起動時などにパーソナルコンピュータ２０内の要素間で情報の転送を助ける基本ルーチンを含む基本入出力システム２６（ＢＩＯＳ）が、ＲＯＭ　２４に格納される。さらにパーソナルコンピュータ２０は、ハードディスクドライブ２７と、例えば、取外し可能ディスク２９からの読取りまたは書込みのための磁気ディスクドライブ２８と、例えば、ＣＤ−ＲＯＭディスク３１の読取りまたは他の光媒体からの読取りまたは書込みのための光ディスクドライブ３０とを含む。ハードディスクドライブ２７、磁気ディスクドライブ２８および光ディスクドライブ３０は、それぞれハードディスクドライブインタフェース３２、磁気ディスクドライブインタフェース３３、および光ドライブインタフェース３４によってシステムバス２３に接続される。ドライブおよびそれらに関連付けられたコンピュータ読取り可能媒体は、パーソナルコンピュータ２０に不揮発性記憶域を提供する。上述のコンピュータ読取り可能媒体の記述は、ハードディスク、取外し可能磁気ディスク、およびＣＤ−ＲＯＭディスクに言及するものであるが、当業者であれば、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジなどの、コンピュータによる読取りが可能な他のタイプの媒体も例示的オペレーティング環境で使用できることを理解されたい。
【００２５】
オペレーティングシステム３５、１または複数のアプリケーションプログラム１００、ワードプロセッサプログラムモジュール３７（または他のタイプのプログラムモジュール）、マニフェスト３８などのプログラムデータ、および他のプログラムモジュール（図示せず）を含むいくつかのプログラムモジュールを、ドライブおよびＲＡＭ　２５に格納することができる。
【００２６】
ユーザは、キーボード４０およびマウス４２などのポインティングデバイスを介して、パーソナルコンピュータ２０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナなどを含むことができる。これらおよび他の入力デバイスは、システムバスに結合されたシリアルポートインタフェース４６を介して処理ユニット２１に接続されるが、ゲームポートまたはＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）などの他のインタフェースによって接続することもできる。モニタ４７または他のタイプのディスプレイデバイスも、ビデオアダプタ４８などのインタフェースを介してシステムバス２３に接続される。モニタに加えて、パーソナルコンピュータは、典型的には、スピーカまたはプリンタなどの他の周辺出力デバイス（図示せず）を含む。
【００２７】
パーソナルコンピュータ２０は、リモートコンピュータ４９などの１または複数のリモートコンピュータへの論理接続を使用するネットワーク環境で動作可能である。リモートコンピュータ４９は、サーバ、ルータ、ピアデバイス、または他の共通ネットワークノードであってよく、図３にはメモリ記憶デバイス５０しか示されていないが、典型的には、パーソナルコンピュータ２０に関して述べた要素の多くまたはすべてを含む。図３に示された論理接続は、ローカルエリアネットワーク（ＬＡＮ）５１およびワイドエリアネットワーク（ＷＡＮ）５２を含む。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットでよく見られる。
【００２８】
ＬＡＮネットワーキング環境で使用される場合、パーソナルコンピュータ２０は、ネットワークインタフェース５３を介してＬＡＮ　５１に接続される。ＷＡＮネットワーキング環境で使用される場合、パーソナルコンピュータ２０は、典型的には、モデム５４またはインターネットなどのＷＡＮ　５２を介した通信を確立するための他の手段を含む。モデム５４は、内蔵または外付けであってよく、シリアルポートインタフェース４６を介してシステムバス２３に接続される。ネットワーク環境では、パーソナルコンピュータ２０に関して示されたプログラムモジュールまたはその一部を、リモートメモリ記憶デバイスに格納することができる。図示されたネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段が使用可能であることを理解されよう。
【００２９】
図４は、本発明の一実施形態にかかり、「スマート」文書１１０を作成する方法を示す流れ図である。方法３００は、ステップ３０５で始まり、ステップ３１０に進んで、ＸＭＬスキーマが文書に付加される。当業者であれば理解されるように、スキーマは、文書１１０に適用されるＸＭＬタグに関連付けられた文法および規則をセットアップして、ＸＭＬ構造を文書１１０に提供する。図１に示された文書１１０に付加されるスキーマは、文書１１０に関連付けられたタグに可能な、文法、データ型およびデータコンテンツの規則をすべて詳述することができる。例えば、名前、電子メール名、タイトルおよび従業員身分証明を含む「個人情報」セクション１２０は、「名前」ブロックに入力されるデータが「ファーストネーム」の次に「ミドルネーム」、次に「ラストネーム」の形式でなければならないことを要求するスキーマを有することができる。
【００３０】
ＸＭＬを使用する技術者であれば理解されるように、文書１１０のその部分が、例えば「名前」要素に対応するＸＭＬ構造によって注釈付けされると、文書のその部分に入力されたデータの操作は、コンテンツが文書のその部分に関して規定されたスキーマに従って入力されたものである限り、データの実際のコンテンツに関係なくソフトウェア構成要素によって実行することができる。
【００３１】
ステップ３１５で、文書１１０は、上述のようにコンテキスト依存機能を文書に提供するためのツールおよびヘルプ機能に関連付けられることになるＸＭＬ構造によって注釈付けされる。図１に示された従業員評価文書１１０に関する簡略化されたＸＭＬ構造の注釈は、次のとおりである。
【００３２】
Ｓａｍｐｌｅ　ＸＭＬ　Ｓｔｒｕｃｔｕｒｅ
＜Ｅｍｐｌｏｙｅｅ　Ｒｅｖｉｅｗ＞
＜Ｐｅｒｓｏｎａｌ　Ｉｎｆｏｒｍａｔｉｏｎ＞
＜Ｎａｍｅ＞
＜ｆｉｒｓｔ＿ｎａｍｅ＞Ｊｏｅ＜／ｆｉｒｓｔ＿ｎａｍｅ＞
＜ｌａｓｔ　ｎａｍｅ＞Ｓｍｉｔｈ＜／ｌａｓｔ　ｎａｍｅ＞
＜／Ｎａｍｅ＞
＜ｅｍａｉｌ　Ｎａｍｅ＞
＜ｅｍａｉｌ＞Ｊｏｅ＠Ａｄｄｒｅｓｓ．ｃｏｍ＜／ｅｍａｉｌ＞
＜／ｅｍａｉｌ　Ｎａｍｅ＞
＊
＊
＊
＜／Ｅｍｐｌｏｙｅｅ　Ｒｅｖｉｅｗ＞
【００３３】
文書１１０に付加されるスキーマは、ＸＭＬ文書構造に入力されるデータ型およびデータ構造規則を規定する。当然のことながら、上述のＸＭＬ構造は、本質的に簡略化されており、例示のためにのみ提供されたものである。上述のＸＭＬ構造例に関連付けられたＸＭＬスキーマサンプルは、次のとおりである。
【００３４】
Ｓａｍｐｌｅ　Ｓｃｈｅｍａ
＜ｘｓｄ：ｓｃｈｅｍａ　　　　　　　　　ｘｍｌｎｓ：ｘｓｄ＝”ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／２００１／ＸＭＬＳｃｈｅｍａ”
ｘｍｌｎｓ＝”ｕｒｎ：ｒｅｖｉｅｗＦｏｒｍ”
ｔａｒｇｅｔＮａｍｅｓｐａｃｅ＝”ｕｒｎ：ｒｅｖｉｅｗＦｏｒｍ”ｅｌｅｍｅｎｔＦｏｒｍＤｅｆａｕｌｔ＝”ｑｕａｌｉｆｉｅｄ”＞＜ｘｓｄ：ａｎｎｏｔａｔｉｏｎ＞
＜ｘｓｄ：ｄｏｃｕｍｅｎｔａｔｉｏｎ　ｘｍｌ：ｌａｎｇ＝”ｅｎ”＞
Ｔｈｅ　ｓｃｈｅｍａ　ｆｏｒ　ｔｈｅ　Ａｕｇｕｓｔ　２００１　Ｍｉｃｒｏｓｏｆｔ　ｅｍｐｌｏｙｅｅ　ｒｅｖｉｅｗ　ｆｏｒｍ．
＜／ｘｓｄ：ｄｏｃｕｍｅｎｔａｔｉｏｎ＞
＜／ｘｓｄ：　ａｎｎｏｔａｔｉｏｎ＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”Ｒｅｖｉｅｗ”　ｔｙｐｅ＝”ＲｅｖｉｅｗＴｙｐｅ”　／＞
＜ｘｓｄ：ｃｏｍｐｌｅｘＴｙｐｅ　ｎａｍｅ＝”ＥｍｐｌｏｙｅｅＭａｎａｇｅｒＲｅｓｐｏｎｓｅｓＴｙｐｅ”＞
＜ｘｓｄ：ａｌｌ＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”ＥｍｐｌｏｙｅｅＲｅｓｐｏｎｓｅ”　ｔｙｐｅ＝”ｘｓｄ：ｓｔｒｉｎｇ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”ＭａｎａｇｅｒＲｅｓｐｏｎｓｅ”　ｔｙｐｅ＝”ｘｓｄ：ｓｔｒｉｎｇ”　／＞
＜／ｘｓｄ：ａｌｌ＞
＜／ｘｓｄ：ｃｏｍｐｌｅｘＴｙｐｅ＞
＜ｘｓｄ：ｓｉｍｐｌｅＴｙｐｅ　ｎａｍｅ＝”ＲａｔｉｎｇＳｃｏｒｅ”＞
＜ｘｓｄ：ｒｅｓｔｒｉｃｔｉｏｎ　ｂａｓｅ＝”ｘｓｄ：ｄｅｃｉｍａｌ”＞
＜ｘｓｄ：ｅｎｕｍｅｒａｔｉｏｎ　ｖａｌｕｅ＝”２．５”　／＞
＜ｘｓｄ：ｅｎｕｍｅｒａｔｉｏｎ　ｖａｌｕｅ＝”３．０”　／＞
＜ｘｓｄ：ｅｎｕｍｅｒａｔｉｏｎ　ｖａｌｕｅ＝”３．５”　／＞
＜ｘｓｄ：ｅｎｕｍｅｒａｔｉｏｎ　ｖａｌｕｅ＝”４．Ｏ”　／＞
＜ｘｓｄ：ｅｎｕｍｅｒａｔｉｏｎ　ｖａｌｕｅ＝”４．５”　／＞
＜ｘｓｄ：ｅｎｕｍｅｒａｔｉｏｎ　ｖａｌｕｅ＝”５．Ｏ”　／＞
＜／ｘｓｄ：ｒｅｓｔｒｉｃｔｉｏｎ＞
＜／ｘｓｄ：ｓｉｍｐｌｅＴｙｐｅ＞
＜ｘｓｄ：ｃｏｍｐｌｅｘＴｙｐｅ　ｎａｍｅ＝ＩｌＲａｔｉｎｇＴｙｐｅｔｌ＞
＜ｘｓｄ：ａｌｌ＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”ＥｍｐｌｏｙｅｅＲａｔｉｎｇ”　ｔｙｐｅ＝”ＲａｔｉｎｇＳｃｏｒｅ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”ＥｍｐｌｏｙｅｅＣｏｍｍｅｎｔｓ”　ｔｙｐｅ＝”ｘｓｄ：ｓｔｒｉｎｇ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”ＭａｎａｇｅｒＲａｔｉｎｇ”　ｔｙｐｅ＝”ＲａｔｉｎｇＳｃｏｒｅ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”ＭａｎａｇｅｒＣｏｍｍｅｎｔｓ”　ｔｙｐｅ＝”ｘｓｄ：ｓｔｒｉｎｇ”　／＞
＜／ｘｓｄ：ａｌｌ＞
＜／ｘｓｄ：ｃｏｍｐｌｅｘＴｙｐｅ＞
＜ｘｓｄ：ｃｏｍｐｌｅｘＴｙｐｅ　ｎａｍｅ＝”ＩｄｅｎｔｉｔｙＴｙｐｅ”＞
＜ｘｓｄ：ａｌｌ＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”Ｎａｍｅ”　ｔｙｐｅ＝’１ｘｓｄ：ｓｔｒｉｎｇ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”Ａｌｉａｓ”　ｔｙｐｅ＝”ｘｓｄ：ｓｔｒｉｎｇ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”Ｔｉｔｌｅ”　ｔｙｐｅ＝”ｘｓｄ：ｓｔｒｉｎｇ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”ＥｍｐｌｏｙｅｅＩＤ”　ｔｙｐｅ＝”ｘｓｄ：ｐｏｓｉｔｉｖｅｌｎｔｅｇｅｒ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”Ｒｅｖｉｅｗｅｒ”　ｔｙｐｅ＝”ｘｓｄ：ｓｔｒｉｎｇ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”Ｄｅｐａｒｔｍｅｎｔ”　ｔｙｐｅ＝”ｘｓｄ：ｓｔｒｉｎｇ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”Ｄａｔｅ”　ｔｙｐｅ＝”ｘｓｄ：ｄａｔｅ”　／＞
＜／ｘｓｄ：ａｌｌ＞
＜／ｘｓｄ：ｃｏｍｐｌｅｘＴｙｐｅ＞
＜ｘｓｄ：ｃｏｍｐｌｅｘＴｙｐｅ　ｎａｍｅ＝”ＲｅｖｉｅｗＴｙｐｅ”　ｍｉｘｅｄ＝”ｔｒｕｅ”＞
＜ｘｓｄ：ａｌｌ＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”ＲｅｖｉｅｗＰｅｒｉｏｄ”　ｔｙｐｅ＝”ｘｓｄ：ｓｔｒｉｎｇ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”Ｉｄｅｎｔｉｔｙ”　ｔｙｐｅ＝”ＩｄｅｎｔｉｔｙＴｙｐｅ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”ＣｕｒｒｅｎｔＯｂｊｅｃｔｉｖｅｓ”
ｔｙｐｅ＝”ＥｍｐｌｏｙｅｅＭａｎａｇｅｒＲｅｓｐｏｎｓｅｓＴｙｐｅ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”ＦｕｔｕｒｅＯｂｊｅｃｔｉｖｅｓ”
ｔｙｐｅ＝”ＥｍｐｌｏｙｅｅＭａｎａｇｅｒＲｅｓｐｏｎｓｅｓＴｙｐｅ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”ＳｔｒｅｎｇｔｈｓＡｎｄＷｅａｋｎｅｓｓｅｓ”
ｔｙｐｅ＝”ＥｍｐｌｏｙｅｅＭａｎａｇｅｒＲｅｓｐｏｎｓｅｓＴｙｐｅ”　／＞
＜ｘｓｄ：ｅｌｅｍｅｎｔ　ｎａｍｅ＝”Ｒａｔｉｎｇｓ”　ｔｙｐｅ＝”ＲａｔｉｎｇＴｙｐｅ”　／＞
＜／ｘｓｄ：ａｌｌ＞
＜／ｘｓｄ：ｃｏｍｐｌｅｘＴｙｐｅ＞
＜／ｘｓｄ：ｓｃｈｅｍａ＞
ステップ３２０で、文書１１０は、関連付けられた文書スキーマおよびＸＭＬ構造と共に保存される。
【００３５】
ステップ３２５で、文書１１０内のユーザのカーソル位置に従って、文書ツールペイン１３５内のツール、制御およびアクションを表示および処理するために必要なソフトウェアプログラミングコードが作成される。ステップ３２５で作成されたコードには、すべての必要なＸＭＬファイルが含まれ、これは、ＸＳＬ（Ｅｘｔｅｎｓｉｂｌｅ　Ｓｔｙｌｅ　Ｓｈｅｅｔ　Ｌａｎｇｕａｇｅ）変換およびＸＳＬフォーマッティングオブジェクトを含むＸＳＬファイルを含む。当業者であれば理解されるように、ＸＳＬ変換には、１つのＸＭＬ文書が他のＸＭＬ文書に変換される際の特定規則を含むファイルが含まれる。当業者であれば理解されるように、ＸＭＬ文書およびＸＭＬ変換文書を含むすべてのＸＭＬファイルは、ＸＭＬ構造文書として文書１１０を処理するために作成される。
【００３６】
一実施形態によれば、ＸＭＬスキーマを、文書内のＸＭＬ構造（要素）に対応して関連付けられたソリューションまたはソリューションの文脈上のサブセットに関連付けられた、文書アクション、制御およびヘルプコンテンツのリストを定義するために作成することができる。ＸＭＬスキーマを、スキーマのインスタンスを作成するために、任意の編集ツールまたはＸＭＬスキーマ編集ツールを使用して作成することができる。ＸＭＬスキーマを、スキーマのすべてのプロパティと表示される文書アクション、制御およびヘルプコンテンツのリストとを、ＸＭＬスキーマに直接含めるために作成することができる。例示的ＸＭＬスキーマについては上述している。
【００３７】
ステップ３２５で文書１１０に関して作成される他のコードには、図１を参照しながら述べたように、コンテキスト依存機能を文書１１０に提供するためにアプリケーション１００と文書１１０とが必要とする、ｄｌｌなどの構成要素がすべて含まれる。例えば、コンピュータのカーソルがユーザによって文書１１０の特定コンテキスト内に置かれたとき、スキーマライブラリ１０５に含まれる特定のソリューションを要求するために、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ　Ｐｒｏｇｒａｍ　Ｉｎｔｅｒｆａｃｅ）の形のｄｌｌを作成することができる。すなわち、コンピュータのカーソルが「名前」部分などの文書１１０の特定のセクションまたは部分に置かれたときに、文書１１０の「名前」部分に関連付けられたソリューションプロパティ１１５を見つけるため、および文書の「名前」部分に関連付けられた文書ツール、アクションおよびヘルプコンテンツを提供するためにソリューションを呼び出すための、アプリケーションプログラムインタフェースが含まれる。
【００３８】
ステップ３２５で作成される他の例示的構成要素は、文書ツールペイン１３５を描画し、ＸＭＬ要素に関連付けられたテキスト情報を、現在コンピュータのカーソルが置かれている文書１１０内に表示するための、構成要素が含まれる。他の構成要素は、「Ｓｕｂｍｉｔ　Ｒｅｖｉｅｗ」ボタンなどのアクションを表示するための、および、ユーザが、ユーザの従業員またはユーザの上司などの第三者に評価を提出できるようにするための、モジュラ・ソフトウェア・ルーチンを含むことができる。図１を参照しながら上述したようなラジオボタン、テキストボックス、よびチェックボックスなどの制御に機能を描画して提供するために、他の構成要素を含めることもできる。本発明に従って機能を提供するのに必要な構成要素オブジェクトモデルアドインは、ステップ３２５で作成される。本明細書に記載された文書ツールおよびヘルプ機能を提供するのに必要なソフトウェア構成要素に加えて、ペイン１３５に描画されるヘルプコンテンツの実際のテキストを、対応するヘルプトピックが呼び出されたときに、配置するために組み立てる。
【００３９】
ラジオボタン、テキストボックスおよびチェックボックスなどの制御を、関連付けられたスキーマを文書に付加することなく、ペイン１３５に提供することができる。コントロールが特定のＸＭＬ要素に関連付けられていることを宣言することにより、そのコントロールを、ペイン１３５の上部の、スキーマによって規定された他のアクション、制御およびヘルプトピックより上に配置することができる。同様に、制御は、コントロールをペイン１３５内の、上述の項目を含むすべての他の項目のすぐ上に配置することもでき、これは、スキーマによって規定された個々のＸＭＬ要素ではなく、文書に関するスキーマ全体に関連付けられていることを宣言することによる。
【００４０】
上述のファイル、構成要素、構成要素アドイン、ｄｌｌ、スキーマファイル、およびＸＭＬファイルはすべてアセンブルされ、文書１１０のコンテキスト依存機能を提供する際に、アプリケーション１００が使用するために格納される。スキーマライブラリ１０５は、コンピュータのレジストリを含む様々な場所にあるコンピュータ２０のメモリに格納することができる、上述の格納された構成要素を指すポインタを含むデータベースの形式であってもよい。
【００４１】
本発明の実施形態によれば、本発明の機能を実施して文書１１０に「スマート」文書ソリューションを提供するために、ＡＰＩが提供される。ＡＰＩには、例えば、上述したように、文書１１０を開き、次にソリューションを指示するなど特定のアクションが開始されるときに要求される、プロパティおよびメソッドまたは命令が含まれる。以下のリストは、「スマート」文書ＡＰＩを実施するためのコンピュータプログラミングのサンプルコードである。以下にリスト表示されたサンプルコードは、本発明に従ってＡＰＩを実施するために作成可能なコンピュータプログラミングコードで実行できる変形形態を限定するものではない。
【００４２】
Ｓａｍｐｌｅ　Ｓｍａｒｔ　Ｄｏｃｕｍｅｎｔ　ＡＰＩ
Ｉｍｐｌｅｍｅｎｔｓ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＳｍａｒｔＤｏｃＩｎｉｔｉａｌｉｚｅ（ＢｙＶａｌ　ｄｏｃｕｍｅｎｔ　Ａｓ
Ｏｂｊｅｃｔ，　ＢｙＶａｌ　ｂｓｔｒＳｏｌｕｔｉｏｎＰａｔｈ　Ａｓ　Ｓｔｒｉｎｇ）
Ｐｒｉｖａｔｅ　Ｐｒｏｐｅｒｔｙ　Ｇｅｔ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＳｍａｒｔＤｏｃＸＭＬＴｙｐｅＣｏｕｎｔ（）　Ａｓ　Ｌｏｎｇ
Ｐｒｉｖａｔｅ　Ｐｒｏｐｅｒｔｙ　Ｇｅｔ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＳｍａｒｔＤｏｃＸＭＬＴｙｐｅＮａｍｅ（ＢｙＶａｌ
ｓｍａｒｔＤｏｃＩＤ　Ａｓ　Ｌｏｎｇ）　Ａｓ　Ｓｔｒｉｎｇ
Ｐｒｉｖａｔｅ　Ｐｒｏｐｅｒｔｙ　Ｇｅｔ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＳｍａｒｔＤｏｃＸＭＬＴｙｐｅＣａｐｔｉｏｎ（ＢｙＶａｌ
ｓｍａｒｔＤｏｃＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ　Ａｓ　Ｌｏｎｇ）　Ａｓ　Ｓｔｒｉｎｇ
Ｐｒｉｖａｔｅ　Ｐｒｏｐｅｒｔｙ　Ｇｅｔ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＣｏｎｔｒｏｌＣｏｕｎｔ（ＢｙＶａｌ
ＳｍａｒｔＤｏｃＸＭＬＴｙｐｅＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ）　Ａｓ　Ｌｏｎｇ
Ｐｒｉｖａｔｅ　Ｐｒｏｐｅｒｔｙ　Ｇｅｔ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＣｏｎｔｒｏｌＩＤ（ＢｙＶａｌ
ＳｍａｒｔＤｏｃＸＭＬＴｙｐｅＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＣｏｎｔｒｏｌＩｎｄｅｘ　Ａｓ　Ｌｏｎｇ）　Ａｓ　Ｌｏｎｇ
Ｐｒｉｖａｔｅ　Ｐｒｏｐｅｒｔｙ　Ｇｅｔ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＣｏｎｔｒｏｌＴｙｐｅＦｒｏｍＩＤ（ＢｙＶａｌ
ＣｏｎｔｒｏｌＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ
Ａｓ　Ｌｏｎｇ）　Ａｓ　Ｃ＿ＴＹＰＥ
Ｐｒｉｖａｔｅ　Ｐｒｏｐｅｒｔｙ　Ｇｅｔ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＣｏｎｔｒｏｌＮａｍｅＦｒｏｍＩＤ（ＢｙＶａｌ
ＣｏｎｔｒｏｌＩＤ　Ａｓ　Ｌｏｎｇ）　Ａｓ　Ｓｔｒｉｎｇ
Ｐｒｉｖａｔｅ　Ｐｒｏｐｅｒｔｙ　Ｇｅｔ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＩｓＣｏｎｔｒｏｌＤｙｎａｍｉｃ（ＢｙＶａｌ　ＣｏｎｔｒｏｌＩＤ
Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ　Ａｓ　Ｌｏｎｇ）
Ａｓ　Ｂｏｏｌｅａｎ
Ｐｒｉｖａｔｅ　Ｐｒｏｐｅｒｔｙ　Ｇｅｔ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＣｏｎｔｒｏｌＣａｐｔｉｏｎＦｒｏｍＩＤ（ＢｙＶａｌ
ＣｏｎｔｒｏｌＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ
Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　ｂｓｔｒＴｅｘｔ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ｂｓｔｒＸＭＬ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ
Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ）　Ａｓ　Ｓｔｒｉｎｇ
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＰｏｐｕｌａｔｅＲａｄｉｏＧｒｏｕｐ（ＢｙＶａｌ　ＣｏｎｔｒｏｌＩＤ　Ａｓ
Ｌｏｎｇ，　ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ　Ａｓ　Ｌｏｎｇ，
ＢｙＶａｌｂｓｔｒＴｅｘｔ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ｂｓｔｒＸＭＬ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ
Ｏｂｊｅｃｔ，　Ｌｉｓｔ（）　Ａｓ　Ｓｔｒｉｎｇ，　ｃｏｕｎｔ　Ａｓ　Ｌｏｎｇ，　ＩｎｉｔｉａｌＳｅｌｅｃｔｅｄ　Ａｓ　Ｌｏｎｇ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＯｎＲａｄｉｏＧｒｏｕｐＳｅｌｅｃｔＣｈａｎｇｅ（ＢｙＶａｌ
ＣｏｎｔｒｏｌＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，　ＢｙＶａｌ　Ｓｅｌｅｃｔｅｄ　Ａｓ　Ｌｏｎｇ，
ＢｙＶａｌ　Ｖａｌｕｅ　Ａｓ　Ｓｔｒｉｎｇ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＰｏｐｕｌａｔｅＩｍａｇｅ（ＢｙＶａｌ　Ｃｏｎｔｒｏｌｉｌ）　Ａｓ　Ｌｏｎｇ，
ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ
ｂｓｔｒＴｅｘｔ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ｂｓｔｒＸＭＬ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，
ＩｍａｇｅＳｒｃ　Ａｓ　Ｓｔｒｉｎｇ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＩｍａｇｅＣｌｉｃｋ（ＢｙＶａｌ　ＣｏｎｔｒｏｌＩＤ）　Ａｓ　Ｌｏｎｇ，
ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，　ＢｙＶａｌ　Ｔｅｘｔ
Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　Ｘｍｌ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ
ＸＣｏｏｒｄｉｎａｔｅ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　ＹＣｏｏｒｄｉｎａｔｅ　Ａｓ　Ｌｏｎｇ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＰｏｐｕｌａｔｅＤｏｃｕｍｅｎｔＦｒａｇｍｅｎｔ（ＢｙＶａｌ　ＣｏｎｔｒｏｌＩＤ
Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ　Ａｓ　Ｌｏｎｇ，
ＢｙＶａｌ　ｂｓｔｒＴｅｘｔ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ｂｓｔｒＸＭＬ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ
Ｏｂｊｅｃｔ，　ＤｏｃｕｍｅｎｔＦｒａｇｍｅｎｔ　Ａｓ　Ｓｔｒｉｎｇ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＰｏｐｕｌａｔｅＡｃｔｉｖｅＸＰｒｏｐｓ（ＢｙＶａｌ　ＣｏｎｔｒｏｌＩＤ　Ａｓ
Ｌｏｎｇ，　ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ
ｂｓｔｒＴｅｘｔ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ｂｓｔｒＸＭＬ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，
ＰｒｏｐＢａｇ　Ａｓ　ＳｍａｒｔＴａｇＬｉｂ．ＩＡｃｔｉｖｅＸＰｒｏｐｅｒｔｉｅｓ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＰｏｐｕｌａｔｅＣｈｅｃｋｂｏｘ（ＢｙＶａｌ　ＣｏｎｔｒｏｌＩＤ　Ａｓ　Ｌｏｎｇ，
ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ
ｂｓｔｒＴｅｘｔ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ｂｓｔｒＸＭＬ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，
Ｃｈｅｃｋｅｄ　Ａｓ　Ｂｏｏｌｅａｎ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＯｎＣｈｅｃｋｂｏｘＣｈａｎｇｅ（ＢｙＶａｌ　ＣｏｎｔｒｏｌＩＤ）　Ａｓ
Ｌｏｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，　ＢｙＶａｌ　Ｃｈｅｃｋｅｄ　Ａｓ　Ｂｏｏｌｅａｎ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＰｏｐｕｌａｔｅＬｉｓｔＯｒＣｏｍｂｏＣｏｎｔｅｎｔ（ＢｙＶａｌ
ＣｏｎｔｒｏｌＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ
Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　ｂｓｔｒＴｅｘｔ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ｂｓｔｒＸＭＬ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ
Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，　Ｌｉｓｔ（）　Ａｓ　Ｓｔｒｉｎｇ，　ｃｏｕｎｔ　Ａｓ　Ｌｏｎｇ，　ＩｎｉｔｉａｌＳｅｌｅｃｔｅｄ
Ａｓ　Ｌｏｎｇ，　ＩｓＥｄｉｔａｂｌｅ　Ａｓ　Ｂｏｏｌｅａｎ，　ＣｏｎｔｒｏｌＯｎＳａｍｅＬｉｎｅ　Ａｓ　Ｂｏｏｌｅａｎ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＯｎＬｉｓｔＯｒＣｏｍｂｏＳｅｌｅｃｔＣｈａｎｇｅ（ＢｙＶａｌ
ＣｏｎｔｒｏｌＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，　ＢｙＶａｌ　Ｓｅｌｅｃｔｅｄ　Ａｓ　Ｌｏｎｇ，
ＢｙＶａｌ　Ｖａｌｕｅ　Ａｓ　Ｓｔｒｉｎｇ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＰｏｐｕｌａｔｅＴｅｘｔｂｏｘＣｏｎｔｅｎｔ（ＢｙＶａｌ　ＣｏｎｔｒｏｌＩＤ　Ａｓ
Ｌｏｎｇ，　ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ
ｂｓｔｒＴｅｘｔ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ｂｓｔｒＸＭＬ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，
Ｖａｌｕｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＣｏｎｔｒｏｌＯｎＳａｍｅＬｉｎｅ　Ａｓ　Ｂｏｏｌｅａｎ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＯｎＴｅｘｔｂｏｘＣｏｎｔｅｎｔＣｈａｎｇｅ（ＢｙＶａｌ　ＣｏｎｔｒｏｌＩＤ
Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，　ＢｙＶａｌ　Ｖａｌｕｅ　Ａｓ　Ｓｔｒｉｎｇ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＰｏｐｕｌａｔｅＨｅｌｐＣｏｎｔｅｎｔ（ＢｙＶａｌ　ＣｏｎｔｒｏｌＩＤ　Ａｓ
Ｌｏｎｇ，　ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅＩＤ　Ａｓ　Ｌｏｎｇ，　ＢｙＶａｌ
ｂｓｔｒＴｅｘｔ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ｂｓｔｒＸＭＬ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，
Ｃｏｎｔｅｎｔ　Ａｓ　Ｓｔｒｉｎｇ）
Ｐｒｉｖａｔｅ　Ｓｕｂ　ＩＳｍａｒｔＤｏｃｕｍｅｎｔ＿ＩｎｖｏｋｅＣｏｎｔｒｏｌ（ＢｙＶａｌ　ＣｏｎｔｒｏｌＩＤ　Ａｓ　Ｌｏｎｇ，
ＢｙＶａｌ　ＡｐｐｌｉｃａｔｉｏｎＮａｍｅ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　Ｔａｒｇｅｔ　Ａｓ　Ｏｂｊｅｃｔ，　ＢｙＶａｌ　Ｔｅｘｔ
Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　Ｘｍｌ　Ａｓ　Ｓｔｒｉｎｇ，　ＢｙＶａｌ　ＬｏｃａｌｅｌＩＤ）　Ａｓ　Ｌｏｎｇ）
【００４３】
上記にリスト表示されたＡＰＩには、いくつかのプロパティおよびメソッドが含まれる。ＳｍａｒｔＤｏｃＩｎｉｔｉａｌｉｚｅメソッドは、ＡＰＩが「スマート」文書機能を文書１１０に提供するように要求されると実行される、ルーチンおよび命令を含む。ＳｍａｒｔＤｏｃＸＭＬＴｙｐｅＣｏｕｎｔプロパティは、ソリューションに関連付けられたいくつかのＸＭＬ要素の種類を含む。ＳｍａｒｔＤｏｃＸＭＬＴｙｐｅＮａｍｅプロパティは、「スマート」文書ソリューションに関連付けられたＸＭＬ要素の種類に関する一意の識別子を含む。ＳｍａｒｔＤｏｃＸＭＬＴｙｐｅＣａｐｔｉｏｎプロパティは、メニューまたはヘルプペイン１３５などのペインに含めることが可能なＸＭＬ要素に関連付けられたキャプションを含む。
【００４４】
ＣｏｎｔｒｏｌＣｏｕｎｔプロパティは、特定のＸＭＬ要素タイプに関する「スマート」文書ソリューションに関連付けられたいくつかの制御を含む。ＣｏｎｔｒｏｌＩＤプロパティは、制御の一意の識別子を含む。ＣｏｎｔｒｏｌＴｙｐｅＦｒｏｍＩＤプロパティは、例えばラジオボタン、テキストボックスおよびチェックボックスなどの関連付けられたソリューションと共に使用可能な制御の種類を含む。ＣｏｎｔｒｏｌＮａｍｅＦｒｏｍＩＤプロパティは、所与のアプリケーションプログラム１００によって内部的に使用するために各制御に関連付けられた名前を戻す。
【００４５】
ＰｏｐｕｌａｔｅＲａｄｉｏＧｒｏｕｐメソッドは、メニューまたはヘルプペイン１３５などのペイン内にラジオコントロールボタンを配置するために実行されるルーチンおよび命令を含む。ＯｎＲａｄｉｏＧｒｏｕｐＳｅｌｅｃｔＣｈａｎｇｅメソッドは、ラジオグループ（ラジオボタン）が選択または選択解除されると実行されるルーチンおよび命令を含む。
【００４６】
ＰｏｐｕｌａｔｅＩｍａｇｅメソッドは、ヘルプペイン１３５内に配置されるイメージなどの、ソリューションに関連付けられたイメージを配置するために実行されるルーチンおよび命令を含む。ＩｍａｇｅＣｌｉｃｋメソッドは、ユーザがイメージを選択すると実行されるルーチンおよび命令を含む。
【００４７】
ＰｏｐｕｌａｔｅＤｏｃｕｍｅｎｔＦｒａｇｍｅｎｔメソッドは、テキストまたはデータとのユーザインタフェースを配置するために実行されるルーチンおよび命令を含む。ＰｏｐｕｌａｔｅＡｃｔｉｖｅＸＰｒｏｐｓメソッドは、文書ソリューションに関連付けられたＡｃｔｉｖｅＸ機能を取得するために実行されるルーチンおよび命令を含む。
【００４８】
ＰｏｐｕｌａｔｅＣｈｅｃｋｂｏｘメソッドは、ヘルプペイン１３５などのユーザインタフェースにチェックボックス制御を提供するためのルーチンおよび命令を含む。ＯｎＣｈｅｃｋｂｏｘＣｈａｎｇｅメソッドは、チェックボックスコントロールがユーザによって選択または選択解除されると実行されるルーチンおよび命令を含む。
【００４９】
ＰｏｐｕｌａｔｅＬｉｓｔＯｒＣｏｍｂｏＣｏｎｔｅｎｔメソッドは、ペイン１３５などのユーザインタフェースにリストボックスコントロールを配置するために実行されるルーチンおよび命令を含む。ＯｎＬｉｓｔＯｒＣｏｍｂｏＳｅｌｅｃｔＣｈａｎｇｅメソッドは、リストボックスコントロールの項目を選択するときに実行されるルーチンおよび命令を含む。
【００５０】
ＰｏｐｕｌａｔｅＴｅｘｔｂｏｘＣｏｎｔｅｎｔメソッドは、ペイン１３５などのユーザインタフェースにテキストボックスを配置するためのルーチンおよび命令を含む。ＯｎＴｅｘｔｂｏｘＣｏｎｔｅｎｔＣｈａｎｇｅメソッドは、ペイン１３５などのユーザインタフェース内にあるテキストボックスコントロールでのコンテンツの変更に関連付けられたイベントを処理するために実行されるルーチンおよび命令を含む。
【００５１】
ＰｏｐｕｌａｔｅＨｅｌｐＣｏｎｔｅｎｔメソッドは、必要なテキストまたはデータと共にペイン１３５内にヘルプコンテンツフィールドを配置するためのルーチンおよび命令を含む。ＩｎｖｏｋｅＣｏｎｔｒｏｌメソッドは、ラジオボタン、テキストボックス、またはチェックボックスなどのコントロールが選択または選択解除されると実行されるルーチンおよび命令を含む。
【００５２】
さらに図４を参照すると、ステップ３３０で、文書１１０がクライアントサーバオペレーションで動作できるかどうかが判別される。すなわち、コンテキスト依存機能をアプリケーション１１０に提供する構成要素、あるいはそれらの構成要素の更新または変更を、コンピュータ２０とは別のリモートサーバ位置に格納することができる。文書が、アプリケーションおよび文書のオペレーションに必要な構成要素をリモートサーバ位置から取得できる場合には、方法は、ステップ３３５に進み、コンピュータ２０でユーザによって実行されるクライアント側アクションに応答するために、サーバコードがサーバ位置に書き込まれる。すなわち、本発明のコンテキスト依存機能を提供するために必要なサーバベースのデータおよびアプリケーション構成要素を取得するために、コンピュータ２０とリモートサーバ４９とを対応させるためのアプリケーションプログラミングインタフェースが作成される。アプリケーションが、データおよびアプリケーション構成要素用のリモートサーバを指示することが望ましい場合には、ソリューションＵＲＬなどのソリューション位置識別子が、必要なデータおよびアプリケーション構成要素を取得するために、アプリケーションがリモートサーバ上の位置を指示するように追加される。
【００５３】
ステップ３４０において、様々なソリューションおよび機能を文書１１０に提供するために使用されることになる構成要素、ｄｌｌ、スキーマファイルおよびＸＭＬファイルのリストを識別するために、上述したすべてのプログラミング構成要素のマニフェストが作成される。個々の様々な構成要素によって提供された機能を取得するために、文書が構成要素のマニフェストを指示するように、文書１１０にポインタが追加される。ステップ３５０において、すべてのファイル、コードおよび文書１１０への変更が保存され、ステップ３９０において文書作成方法が終了する。したがって、文書１１０は、ユーザが開いて使用する状態になる。
【００５４】
図５は、文書１１０を開いて使用することに関するステップを示す図である。例示の目的でのみ、従業員業績評価文書１１０について、本発明の一実施形態に従って作成および実施された「スマート」文書を開くことに関するステップを参照しながら説明する。方法４００は、開始ステップ４０５で始まり、ステップ４１０に進んで、アプリケーション１００がユーザによって起動される。当業者であれば理解されるように、アプリケーション１００は、アプリケーションを選択するかまたはアプリケーション１００で作成された文書１１０を選択することによって起動可能である。
【００５５】
ステップ４１５において、ユーザは、アプリケーション１００に矛盾しない方法で開くための文書１１０を選択する。ステップ４２０において、文書１１０がソリューションについて言及しているか否かが判別される。すなわちステップ４２０において、上述のように、文脈依存ツールおよびヘルプ情報を文書に提供するための１または複数のソリューションを指すポインタによって、文書１１０が注釈付けされているか否かが判別される。文書１１０が１または複数のソリューションを指示しているか否かを判別するためのチェックの一部として、上述のように、文書にスキーマが付加されているか否かも判別される。文書がソリューション、例えば、ユーザの従業員評価文書１１０を作成する際のアシスタンスをユーザに提供するためのソリューションについて言及している場合に、方法は、ステップ４２５に進み、アプリケーション１００は、スキーマライブラリ１０５を呼び出して、文書１１０によって言及されたソリューションがスキーマライブラリ１０５に格納されているか否かを判別する。スキーマライブラリにおいて、判別に、スキーマライブラリ内のどの構成要素が必要であるか、すなわちどの構成要素がソリューションＩＤに関連付けられるかの判別が含まれる。例えば、文書１１０は、文書１１０のＸＭＬ構造を管理する規則を定義するために付加されるスキーマを有するが、このスキーマは、特定のソリューションを参照せずに作成される。
【００５６】
ステップ４３０において、ソリューションがスキーマライブラリに格納されているか否かが判別される。当然のことながら、文書１１０には複数のソリューションを付加することができる。例えば、第１のソリューションは、特定のユーザが文書１１０を完成させるための文脈依存情報を提供するために有用な情報およびアクションを含むことができる。第２のソリューションは、ユーザの上司に情報を提供するために文書１１０に付加され、その結果、上司に提供された文脈依存情報が、従業員の評価文書の各セクションを評価する方法に関する管理者情報を与えることになる。
【００５７】
文書１１０が複数のソリューションについて言及している場合、この文書に関して複数のソリューションが使用できる旨をユーザに通知するために、図６に示されるダイアログボックス５００などのプロンプトを、ユーザに提供することができる。ユーザは、文書が開いた後にユーザに所望の機能を提供するために、ソリューションリストから１つのソリューションを選択することができる。
【００５８】
ステップ４３５において、文書１１０が開いた後にソリューションがユーザに提供されることを、ユーザが実際に望むか否かが判別される。当然のことながら、ダイアログボックス５００と同様のダイアログボックスをユーザに提示して、ユーザがヘルプコンテンツおよびツール機能を望むか否かを、ユーザに問い合わせることができる。ユーザは、様々な機会に文書１１０を完成させることができ、ここでは追加のヘルプ機能またはアクション機能を望まなくてよい。望む場合には、ユーザは、文書１１０が開くときに必ずソリューションを受け取るように選択することができる。同様に、ユーザは、文書１１０を開くたびに、アプリケーション１００を介して文書１１０にソリューションへの更新をチェックさせるように選択することもできる。
【００５９】
ユーザがソリューションを辞退すると、方法はステップ４５５に進み、文書はアプリケーション１００によって要求および実施された通常の手順に従って、「スマート」文書ソリューションなしに開く。ユーザが文書１１０によって言及されたソリューションの機能を望むと、方法はステップ４４０に進み、アプリケーション１００および文書１１０により使用するためのソリューションがロードされる。当業者であれば理解されるように、ソリューションのロードには、文書１１０から、ソリューションに関連付けられスキーマライブラリ１０５に格納されたすべての必要なファイル、ｄｌｌ、構成要素アドインおよびＸＭＬファイルへの、アプリケーション１００を介した呼出しが含まれる。
【００６０】
文書１１０から呼び出されると、呼び出された各ファイルは、コンピュータのオペレーティングシステムを介してアプリケーション１００に登録され、各ファイルに関連付けられた機能を提供するために、呼び出された各ファイルとアプリケーション１００および文書１１０との間のパスが確立される。例えば、文書ツールペイン１３５を描画するために使用される特定のｄｌｌに、アプリケーション１００および文書１１０との適切な通信用のレジストリキーを割り当てなければならない場合、この登録プロセスは、ステップ４４０のソリューションのロード時に実行される。ステップ４４５において、「スマート」文書１１０が開かれ、図１に示したようにユーザのコンピュータ画面上に表示される。
【００６１】
再度ステップ４２０に戻り、文書がソリューションに言及していない場合、方法はステップ４５０に進み、スキーマが文書に付加されたか否かが判別される。文書がスキーマに付加されているが、特定のソリューションに言及していない場合、方法はステップ４３０に進み、文書１１０に付加されたスキーマに関連付けることのできるソリューションが存在するか否かのスキーマライブラリの「チェック」が実行される。すなわち、文書１１０において、たとえ何のソリューションについても言及していない場合であっても、スキーマライブラリは、ソリューションを有することができ、これは、たとえ文書１１０が当初はソリューションについて言及するために作成されていない場合でも、文書１１０により使用することのできる文書１１０の作成に続き、コンピュータ２０のユーザによって取得される。
【００６２】
ソリューションが、文書１１０用のスキーマライブラリに存在する場合、方法はステップ４３５に進み、その後上記のように各ステップに進む。スキーマが文書１１０に付加されていない場合、方法はステップ４５５に進み、文書は「スマート」文書ソリューションなしに開く。
【００６３】
ステップ４３０に戻り、文書１１０によって言及されたソリューションに関連付けられたか、または付加されたスキーマに関連付けられたスキーマライブラリに、ソリューションが見つからない場合、方法はステップ４６０に進み、ユーザがソリューションをダウンロードしたいか否かが判別される。ステップ４６０において、アプリケーション１００によってユーザに「プロンプト」が与えられ、ユーザが一定のヘルプおよびアクション機能をユーザの文書１１０にダウンロードすれば、文書１１０がさらに効率良く働くか、またはさらに役立つものになることが通知される。ユーザには、図７に示されたダイアログボックス６００などのダイアログボックスの形で「プロンプト」が与えられる場合がある。いくつかの方法に従ってダウンロードされる所望のソリューションを含む構成要素をユーザが望むか否かをユーザに尋ねるために、ユーザに対していくつかの照会を実行することができる。ユーザがソリューション機能および構成要素のダウンロードを辞退すると、方法はステップ４５５に戻り、上述のように、文書は「スマート」文書ソリューションなしに開く。
【００６４】
ユーザがユーザに提案されたソリューションのダウンロードを望む場合、方法はステップ４６５に進む。ステップ４６５において、文書１１０に所望のソリューションを提供するのに必要な構成要素が、リモートのＷｅｂベースサーバなどの何らかのリモートソースから、ユーザのコンピュータ２０にダウンロードされる。リモートソースの位置を突き止めるために、アプリケーション１００は、文書１１０からのソリューション位置ポインタ１１８を使用して、必要なソリューション構成要素の位置を突き止めてこれを取得する。ステップ４７０において、ダウンロードされたソリューションが、クライアント側のスキーマライブラリ１０５にロードされ、このソリューションが上述のようにロードされて、その結果文書１１０にソリューションの機能が含まれることになる。
【００６５】
図８は、文書１１０が「スマート」文書ソリューション付きで開かれた後に、文書ツールペイン１３５に何を表示するかを決定するための方法を示す流れ図である。図８を参照しながら示されるステップの説明では、文書１１０は、ロードされて実行中の「スマート」文書ソリューション付きで開かれている。例えば、ユーザがコンピュータのカーソルを、文書１１０の「Ｏｂｊｅｃｔｉｖｅｓ」セクション１２５などの特定の位置に置いたと考えてみる。
【００６６】
方法７００は、開始ステップ７０５で始まり、ステップ７１０に進んで、カーソルを囲むＸＭＬ要素のリストが生成される。ＸＭＬ階層内のカーソルの位置が突き止められ、カーソルが配置された位置に到達するためのＸパス表示が決定される。例えば、上述の簡略化されたＸＭＬコードを参照すると、カーソルは「電子メール」タグ内および「従業員評価」タグ内のより大きなＸＭＬツリー内部に配置することができる。
【００６７】
ステップ７１５において、どのツールおよびヘルプコンテンツを文書ツールペイン１３５に表示させるかが決定される。これを決定するために、アプリケーション１００は、クライアントコンピュータ２０に格納されたルックアップテーブルに入り、これは、どのＸＭＬ要素が、それらＸＭＬ要素に関連付けられたどの特定のツール、ヘルプ、コンテンツ、制御などを有するかに関する情報を含む。例えば、カーソルが「個人情報」セクション１２０内の「電子メール名」要素に置かれると、アプリケーション１００は、ルックアップテーブルに入り、どの特定のツールまたはヘルプコンテンツが電子メール名要素に関連付けられているかを判別する。
【００６８】
各要素に関連付けられた各文書アクション、ヘルプ項目および制御は、アプリケーション１００がＸＭＬ要素に関連付けられたアクション、ヘルプ項目またはツールの位置を容易に突き止められるように適用された各ＸＭＬ要素に関連付けられた一意の識別（ＩＤ）と共に配置される。ステップ７２０において、いずれかのアクション、ヘルプ項目または制御が動的であるか否かが判別される。制御は、文脈または文脈に関する背景情報に基づいて、様々に表示することができる。評価文書１１０の「Ｏｂｊｅｃｔｉｖｅｓ」セクションは、セクションが完成したときに「Ｓｕｂｍｉｔ　Ｒｅｖｉｅｗ」ボタンに関連付けることができる。他方で、セクションが完成しない場合、文書は「Ｏｂｊｅｃｔｉｖｅｓ」セクションが完成しなければ提出されるべきではないため、「Ｓｕｂｍｉｔ　Ｒｅｖｉｅｗ」ボタンをペイン１３５に表示しないことができる。したがって、この場合「Ｓｕｂｍｉｔ　Ｒｅｖｉｅｗ」ボタンは、ステップ７２０で動的であるとして識別可能であり、方法はステップ７２５に進む。ステップ７２５において、文書１１０は、アプリケーション１００を介して「Ｓｕｂｍｉｔ　Ｒｅｖｉｅｗ」ボタンを表す構成要素を呼び出し、その構成要素に、例えば「Ｏｂｊｅｃｔｉｖｅｓ」要素が完成したか否かのカーソル位置の文脈を提供する。
【００６９】
アクション、ヘルプコンテンツ、またはコントロールが静的であるか動的であるかを判別した後、ステップ７３０において、文書ツールペイン１３５のコンテンツが、図１に示したようにユーザのコンピュータ画面上の文書１１０の隣に描画される。ステップ７３５において、カーソルが新しい文脈に移動するか否かが判別される。例えば、ユーザが「Ｏｂｊｅｃｔｉｖｅｓ」セクション１２５への入力を完了した後、ユーザは、カーソルを「個人情報」セクション１２０に移動して、そのセクションを完成させることができる。カーソルが移動しない場合、方法はステップ７９０に進んで終了する。すなわち、カーソルが現在の文脈に留まっている限り、文書ツールペイン１３５のコンテンツには追加の変更が実施されない。カーソルが文書内の新しい文脈に移動すると、方法はステップ７１０に戻り、カーソルを含むＸＭＬ要素の新しいリストが生成され、方法は、カーソルの新しい位置および文脈に関連付けられた文書ツールペイン１３５に新しいコンテンツを提供するために、前述のように続行される。
【００７０】
再度図１を参照して、文書ツールペイン１３５に描画されるツールおよびヘルプコンテンツについて説明する。図１に示された特定のテキストおよび制御は、例示のために示したものに過ぎず、上述のようにカーソル位置の文脈によって変化する。名前１４０は、文書ツールペイン１３５に表示されたアクションおよびツールに関連付けられた、文書ＸＭＬ要素の名前である。名前は、例えば、従業員業績評価用紙などの、文書に付加されたスキーマを表すものであるか、またはカーソルが現在置かれているＸＭＬ要素を表すものであってもよい。例えば、カーソルが「Ｏｂｊｅｃｔｉｖｅｓ」セクションに置かれた場合、名前１４０は「ＯｂｊｅｃｔｉｖｅｓＳｅｃｔｉｏｎ」として描画しなおすことができる。文書アクション１４５は、カーソルコンテキストに基づいて、およびアクションが静的であるか動的であるかに基づいて表示される。上述のように、例えば「Ｓｕｂｍｉｔ　Ｒｅｖｉｅｗ」アクションは、文書１１０のすべての必須セクションが完了していない場合、文書アクションペイン１３５には表示されない、動的アクションとすることができる。折りたたまれた表示（ａ　ｃｏｌｌａｐｓｅｄ　ｄｉｓｐｌａｙ）では、「Ｌａｓｔ　Ｙｅａｒｓ　Ｏｂｊｅｃｔｉｖｅｓ」ヘルプトピック１５５が表示される。「＋」を選択するとヘルプトピックを展開し、その中に格納された追加のサブトピックを表示する。「Ｏｂｊｅｃｔｉｖｅ　Ｗｒｉｔｉｎｇ　Ｔｉｐｓ」ヘルプトピックが展開表示で表示され、ヘルプトピックより下位にある使用可能な全コンテンツ１６０が示される。文書１１０内のＸＭＬ要素が、関連付けられた「スマート」文書アクションまたはツールを有していない場合、そのＸＭＬ要素は、文書ツールペイン１３５内に表示または識別されない。
【００７１】
ヘルプトピックおよびツールは、重ねることが可能であるが、これは、サブヘルプトピックおよびサブアクションをヘルプトピックおよび文書ツール内に含めることを意味する。カーソルが入れ子により複数の要素内にある場合、文書ツールペイン１３５内のセクション数は、２よりも多くなる場合がある。この場合、重ねられた要素は、重ねた順に表示され、一番外側の要素が文書ツールペイン１３５の一番上になり、一番内側の要素が文書ツールペイン１３５の一番下になる。要素、アクション、ツールおよびヘルプコンテンツが１ページに収まりきらない場合、図１に示されるように、文書ツールペイン１３５全体に渡るスクロールバーが提供される。アクションおよびヘルプコンテンツは、ｄｌｌまたは文書１１０にそれを提供する構成要素が、アプリケーション１００からの呼出しに応答して自分の名前を戻す順序でリスト表示される。一実施形態によれば、アクション、コントロール、またはヘルプトピックに関連付けられていないＸＭＬ要素は、ユーザに表示されない。ただし所望であれば、すべてのＸＭＬ要素をペイン１３５内に表示して、文書１１０のＸＭＬ構造が完成されたことをユーザに気付かせることができる。
【００７２】
したがって、文書１１０が開かれ、「スマート」文書ソリューションが上述のようにロードおよび実施された後、文書１１０のユーザは、文書に入力し、文書ツールペイン１３５に提供された「スマート」文書機能のヘルプによって文書を完成させることができる。ユーザが、ＸＭＬ構造のタグのついた文書の様々なセクションを通ってコンピュータのカーソルを移動させていくと、ユーザに、文書のその部分に関連付けられた有用な情報およびツールが提供される。
【００７３】
当業者であれば、本発明において、本発明の範囲または精神を逸脱することなく、様々な修正または変形形態が実行可能であることが明らかであろう。本明細書で開示された本発明の詳述および実施を考慮すれば、当業者には本発明の他の実施形態が明らかになろう。
【図面の簡単な説明】
【図１】本発明の一実施形態にかかり、文書と関連付けられた文脈依存ツールとヘルプコンテンツとを表示するソフトウェアアプリケーションのグラフィカルユーザインタフェースのコンピュータ画面表示を示す図である。
【図２】本発明の一実施形態と共に使用するための、クライアント側のソフトウェアアーキテクチャを示す構成図である。
【図３】本発明の例示的オペレーティング環境を提供する、コンピュータと関連付けられた周辺デバイスとネットワークデバイスとを示す構成図である。
【図４】本発明の一実施形態にかかり、文脈依存ツールとヘルプコンテンツとを提供する文書を作成するための方法を示す流れ図である。
【図５】本発明の一実施形態に従って作成された文書を開くための方法を示す流れ図である。
【図６】ユーザに複数の文書ソリューションを提供するための、コンピュータで生成されたダイアログボックスを示す図である。
【図７】本発明に従って作成されたアプリケーションに構成要素をダウンロードすることによりユーザを支援するための、コンピュータで生成されたダイアログボックスを示す図である。
【図８】本発明の一実施形態にかかり、文書ツールペインにどのコンテンツを表示するかを決定する方法を示す流れ図である。
【符号の説明】
２０　　コンピュータ
１００　　ソフトウェアアプリケーション
１０５　　スキーマライブラリ
１１０　　文書
１１５　　ソリューションプロパティ
１１８　　ソリューション位置プロパティ
【図１】
2004046828.tif 000003
【図２】
2004046828.tif 000004
【図３】
2004046828.tif 000005
【図４】
2004046828.tif 000006
【図５】
2004046828.tif 000007
【図６】
2004046828.tif 000008
【図７】
2004046828.tif 000009
【図８】
2004046828.tif 000010