(57)【要約】ＤＨＴＭＬビューおよびＸＳＬＴを使用してＸＭＬを作成する方法およびシステムを説明する。ユーザがＤＨＴＭＬビューと対話するのを可能にする様々なユーザインターフェースをＤＨＴＭＬビューの中で自動的に、または半自動的に提供することができる。一部が「ドキュメント内」インターフェースと呼ばれるインターフェース群により、ユーザが、ＤＨＴＭＬビューと対話し、そのＤＨＴＭＬビューに関連するデータを記述する対応するＸＭＬドキュメントにその対話が自動的に行われることが可能になる。様々なドキュメント内インターフェースの提示は、ＸＭＬスキーマ（ＸＭＬドキュメントは、そのインスタンスである）だけでなく、ＸＭＬドキュメントをＤＨＴＭＬビューに変換するのに利用されたＸＳＬ−Ｔ（ＸＳＬＴ変換）も考慮することによって行われる。さらに、クリスタルの概念が導入され、ＤＨＴＭＬビューとの対話を対応するＸＭＬドキュメントに直接に返すようにマップするのに使用される。基本的形態で、クリスタルは、１つまたは複数のビヘイビア、および関連するＸＳＬ−Ｔを含む。クリスタルは、ＸＭＬをＤＨＴＭＬビューに変換するのに使用される。クリスタルのビヘイビアは、データ形状に特有である、またはデータ形状に依存するように定義され、データ形状は、ＸＭＬドキュメントによって定義される。ビヘイビアは、必ずしも何らかのスキーマ、データ、またはタグに依存するわけではない。データ形状に依存する性質のため、クリスタルは、ＸＭＬによって定義される形状以外、互いに全く関係を有さない様々なＸＭＬドキュメントで再使用するためにパッケージ化することができる。ビヘイビアは、ＸＳＬ−Ｔによって生成されたＤＨＴＭＬタグに付加することができる。ビヘイビアは、ＤＨＴＭＬビューとのユーザ対話が、ＸＭＬドキュメントに直接に返るようにマップされるのを確実にする。このようにして、ユーザによってＤＨＴＭＬビューに対して行われた変更を反映するようにＸＭＬドキュメントを作成することができる。
2004501450.tif 000002
【特許請求の範囲】
【請求項１】
ユーザインターフェース（ＵＩ）を提供する方法であって、
少なくとも１つのＸＳＬＴ変換（ＸＳＬ−Ｔ）を使用してＸＭＬドキュメントからＤＨＴＭＬドキュメントをレンダリングするステップ、および
前記ＤＨＴＭＬドキュメントをレンダリングするのに使用された前記ＸＳＬ−Ｔに少なくともある程度、基づいてユーザインターフェースを提示するステップ　を含むことを特徴とする方法。
【請求項２】
前記提示するステップが、前記ユーザインターフェースを自動的に提示するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ユーザインターフェースが、コンテキストブロックを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記ユーザインターフェースが、ドキュメント内ユーザインターフェースを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記ユーザインターフェースが、アクセラレータを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記ユーザインターフェースが、コンテキストブロック、ドキュメント内ユーザインターフェース、およびアクセラレータのうちの１つまたは複数を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記提示するステップが、いくつかのユーザインターフェースからどのユーザインターフェースを提示するかを決定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記決定するステップが、
ドキュメントの中におけるユーザのアクションを確認するステップ、および
前記確認したユーザのアクションに基づいてユーザインターフェースを提示するステップを含むことを特徴とする請求項７に記載の方法。
【請求項９】
コンピュータによって実行されたとき、請求項１に記載の方法を実施するコンピュータ可読命令を有することを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項１０】
ユーザインターフェースを提供する方法であって、
１つにＸＳＬ−Ｔファイルが含まれる複数のパラメータを考慮するステップ、および
前記考慮したパラメータに基づき、ＸＭＬドキュメントから前記ＸＳＬ−ＴファイルによってレンダリングされたＤＨＴＭＬビューとユーザが対話できるようにするのに十分なユーザインターフェースをレンダリングするステップを含むことを特徴とする方法。
【請求項１１】
１つのパラメータが、特定のドキュメントの中におけるユーザの位置を含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
１つのパラメータが、ユーザの選択に対応するＸＭＬスキーマの一部分を含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
１つのパラメータが、生成するのが望ましい１つまたは複数のＵＩタイプを含むことを特徴とする請求項１０に記載の方法。
【請求項１４】
前記パラメータが、
特定のドキュメントの中におけるユーザの位置と、
ユーザの選択に対応するＸＭＬスキーマの一部分と、
生成するのが望ましい１つまたは複数のＵＩタイプとを含むことを特徴とする請求項１０に記載の方法。
【請求項１５】
前記複数のパラメータを前記考慮するステップが、ＸＳＬ−Ｔファイルの中の１つまたは複数の構成体を考慮するステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１６】
前記複数のパラメータを前記考慮するステップが、複数のユーザインターフェースから、どのユーザインターフェースが、ドキュメント内ユーザインターフェースによって機能が提供されるのにより適しているかを特定するステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１７】
前記ユーザが、前記ユーザインターフェースをエンゲージするのに基づき、前記ＸＭＬドキュメントの構造を変更するステップをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１８】
前記ユーザインターフェースが、ドキュメント内ユーザインターフェースを含むことを特徴とする請求項１０に記載の方法。
【請求項１９】
コンピュータによって実行されたとき、請求項１０に記載の方法を実施するコンピュータ可読命令を有することを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項２０】
ユーザインターフェースを提供する方法であって、
ＤＨＴＭＬビューの中で選択を行うステップ、
前記選択に基づいてＸＭＬドキュメントの中の対応する選択を決定するステップ、
前記ＸＭＬドキュメントの中の前記対応する選択に基づき、ＸＭＬスキーマの対応する部分を決定するステップ、
前記ＸＭＬスキーマ部分に基づき、行われることが可能な１つまたは複数のタイプのアクションを決定するステップ、
様々な決定されたアクションタイプに関して行われることが可能な１つまたは複数の動作をもたらすステップ、および
前記ＤＨＴＭＬビューをレンダリングしたＸＳＬ−Ｔファイルから、ユーザに対して表示することができ、前記１つまたは複数の動作を実施するのに使用することができるユーザインターフェースタイプを決定するステップを含むことを特徴とする方法。
【請求項２１】
前記選択を行うステップが、ドキュメント内の特定のエリアにカーソルを移動するステップを含むことを特徴とする請求項２０に記載の方法。
【請求項２２】
前記アクションタイプが、ユーザが、自身で選択したドキュメントの一部分を操作することができる仕方に対応することを特徴とする請求項２０に記載の方法。
【請求項２３】
前記ユーザインターフェースが、ドキュメント内ユーザインターフェースを含むことを特徴とする請求項２０に記載の方法。
【請求項２４】
前記ユーザに対して決定されたインターフェースタイプのドキュメント内ユーザインターフェースを表示するステップをさらに含むことを特徴とする請求項２０に記載の方法。
【請求項２５】
前記表示したユーザインターフェースを介するユーザ入力に基づいて前記ＸＭＬドキュメントの構造を操作するステップをさらに含むことを特徴とする請求項２４に記載の方法。
【請求項２６】
コンピュータによって実行されたとき、請求項２０に記載の方法を実施するコンピュータ可読命令を有することを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項２７】
ＸＭＬドキュメントを操作する方法であって、
ＸＭＬドキュメントをＤＨＴＭＬビューに変換するための１つまたは複数のビヘイビアおよびＸＳＬＴ変換をそれぞれが含む１つまたは複数のクリスタルを定義するステップ、
前記１つまたは複数のクリスタルを使用してＸＭＬドキュメントからＤＨＴＭＬビューをレンダリングするステップ、
前記ＤＨＴＭＬビューとのユーザ対話を可能にするステップ、および
前記１つまたは複数のビヘイビアを介して前記ＤＨＴＭＬビューの中におけるユーザ対話を前記ＸＭＬドキュメントにマップするステップ
を含むことを特徴とする方法。
【請求項２８】
前記１つまたは複数のビヘイビアが、データ形状に依存することを特徴とする請求項２７に記載の方法。
【請求項２９】
前記１つまたは複数のビヘイビアが、前記ＸＭＬドキュメントによって定義されたデータ形状に依存するデータ形状であることを特徴とする請求項２７に記載の方法。
【請求項３０】
前記１つまたは複数のビヘイビアが、前記ＸＭＬドキュメントがインスタンスであるＸＭＬスキーマとは独立に機能するように構成されることを特徴とする請求項２７に記載の方法。
【請求項３１】
前記１つまたは複数のビヘイビアが、使用されることが可能なＸＭＬタグとは独立に機能するように構成されることを特徴とする請求項２７に記載の方法。
【請求項３２】
前記ビヘイビアが、２進コードとして実装されることを特徴とする請求項２７に記載の方法。
【請求項３３】
前記クリスタルが、異なるＸＭＬドキュメントにわたって再使用可能であることを特徴とする請求項２７に記載の方法。
【請求項３４】
コンピュータによって実行されたとき、請求項２７に記載の方法を実施するコンピュータ可読命令を有することを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項３５】
コンピュータによって実行されたとき、前記コンピュータが、
ＸＭＬドキュメントをＤＨＴＭＬビューに変換するための１つまたは複数のビヘイビアおよびＸＳＬＴ変換をそれぞれが含む複数のクリスタルを提供するステップ、
前記クリスタルの１つまたは複数を使用してＸＭＬドキュメントからＤＨＴＭＬビューをレンダリングするステップ、
少なくとも１つのビヘイビアを少なくとも１つのＤＨＴＭＬタグに付加するステップ、
前記少なくとも１つのＤＨＴＭＬタグに関連するＤＨＴＭＬビューとユーザが対話したのを確認するステップ、および
前記少なくとも１つのＤＨＴＭＬタグに関連する前記ビヘイビアを使用して、ユーザ対話を前記ＸＭＬドキュメントに返すようにマップし、前記ＸＭＬドキュメントの中で関連する構造上の変更を行うステップ
を実行させるコンピュータ可読命令を有することを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項３６】
前記ビヘイビアが、２進コードとして実装されることを特徴とする請求項３５に記載の１つまたは複数のコンピュータ可読媒体。
【請求項３７】
前記ビヘイビアが、データ形状に依存することを特徴とする請求項３５に記載の１つまたは複数のコンピュータ可読媒体。
【請求項３８】
前記ビヘイビアが、ＸＭＬスキーマに依存しないことを特徴とする請求項３５に記載の１つまたは複数のコンピュータ可読媒体。
【請求項３９】
ＸＭＬドキュメントを操作する方法であって、
ＸＭＬドキュメントからレンダリングされたＤＨＴＭＬビューの中のＤＨＴＭＬタグに１つまたは複数のビヘイビアを関連付けるステップ、および
前記ＤＨＴＭＬタグに関連するＤＨＴＭＬビューと対話するユーザに応答して、前記１つまたは複数のビヘイビアを使用してユーザ対話を前記ＸＭＬドキュメントにマップし、前記ＸＭＬドキュメント上で構造上の変更を行うステップ
を含むことを特徴とする方法。
【請求項４０】
前記１つまたは複数のビヘイビアが、データ形状に依存することを特徴とする請求項３９に記載の方法。
【請求項４１】
前記１つまたは複数のビヘイビアが、データ形状に依存し、前記データ形状が、前記ＸＭＬドキュメントによって定義されることを特徴とする請求項３９に記載の方法。
【請求項４２】
前記１つまたは複数のビヘイビアが、ＸＭＬスキーマとは独立であることを特徴とする請求項３９に記載の方法。
【請求項４３】
前記１つまたは複数のビヘイビアが、データ値とは独立であることを特徴とする請求項３９に記載の方法。
【請求項４４】
前記１つまたは複数のビヘイビアが、（ａ）ＸＭＬスキーマおよび（ｂ）データ値の１つまたは複数とは独立であることを特徴とする請求項３９に記載の方法。
【請求項４５】
ＸＭＬをＤＨＴＭＬにレンダリングするための少なくとも１つのビヘイビアおよびＸＳＬ−Ｔをそれぞれが含み、前記ビヘイビアが、データ形状に依存し、ＸＭＬスキーマとは独立の共通データ形状とともに使用されるように構成された１つまたは複数のクリスタルを含むコンピュータ可読媒体上で実現されることを特徴とするソフトウェア。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、ダイナミックハイパーテキストマークアップ言語（ＤＨＴＭＬ）を使用してエクステンシブルマークアップ言語（ＸＭＬ）ドキュメントを作成することに関する。
【０００２】
（発明の背景）
エクステンシブルマークアップ言語（ＸＭＬ）は、ますます、データを転送するための好ましいフォーマットになりつつある。ＸＭＬは、それを使用して表現することができるデータの点で極めて豊かなタグベースの階層言語である。例えば、ＸＭＬを使用して半構造化されたデータ（ワードプロセッシングドキュメントで見られるような）から一般的に構造化されたデータ（テーブルに含まれるもののような）までの範囲にわたるデータを表現することができる。ＸＭＬは、ビジネス−ビジネス間の通信およびクライアント−サーバ間の通信を含む多くのタイプの通信に十分適している。
【０００３】
ＸＭＬによって表現することができるデータの幅は広いため、データ、またはデータを含む構造を操作するのにユーザが使用できるデータとのユーザインターフェースを提供したいと望むとき、困難が生じる。ＸＭＬ環境を除いた、ユーザインターフェース問題に対する従来の手法は、異なるタイプのデータ（例えば、ドキュメント、表形式のデータ）に対して異なるＵＩ技術を使用することである。この手法は、ＸＭＬを使用して、ユーザが、構造化されたデータと構造化されていないデータの両方に遭遇し、その両方と対話することを望む場合、明らかに最良ではない。ユーザが、ＸＭＬドキュメントを操作できるようにする問題を解決するいくつかの試みが行われてきたが、今のところ、その試みは、極めて柔軟性を欠き、ＸＭＬおよびＸＳＬ−Ｔに隠された十分な能力を理解していない。ＸＳＬ−Ｔは、ＸＭＬをダイナミックＨＴＭＬ、つまりＤＨＴＭＬに変換するのに使用することが可能な変換である。ＸＭＬ、ＸＳＬＴ、およびＸＳＤに関するさらなる情報については、読者は、Ｗ３Ｃの作業であり、Ｗ３Ｃ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ　Ｃｏｎｓｏｒｔｉｕｍ）から入手可能な以下のドキュメントを参照されたい。ＸＭＬ　Ｓｃｈｅｍａ　Ｐａｒｔ　０、Ｐｒｉｍｅｒ，　Ｅｘｔｅｎｓｉｂｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ（ＸＭＬ）　１．０，　ＸＭＬ　Ｓｃｈｅｍａ　Ｐａｒｔ　１、Ｓｔｒｕｃｔｕｒｅ，　ａｎｄ　ＸＳＬ　Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ（ＸＳＬＴ）　Ｖｅｒｓｉｏｎ　１．０。
【０００４】
例えば、ＸＭＬドキュメント１００、ＸＳＬＴ変換（ＸＳＬ−Ｔ）１０２、結果のＤＨＴＭＬドキュメント１０４、およびＸＭＬスキーマまたはＸＳＤファイル１０６を示す図１を考慮されたい。ＸＭＬドキュメント１００は、ツリーの各ノードが対応するＸＭＬタグであるツリー状の構造として表すことができる。ＸＭＬドキュメント１００は、ＸＳＤ１０６によって規定されるＸＭＬスキーマに準拠しなければならない。ＸＳＬ−Ｔ１０２は、１つまたは複数のテンプレートを利用してＸＭＬドキュメントツリーを異なるタイプのツリーに、この場合は、ＤＨＴＭＬツリーに変換する変換プロセスである。ＤＨＴＭＬドキュメント１０４は、ＸＭＬツリーの中で記述されるデータを表示する。ＸＳＬ−Ｔは、ソフトウェア開発者が定義することができる方法でＤＨＴＭＬを介してデータを提示できるようにするテンプレートの集まりに過ぎない。
【０００５】
例えば、いくつかのフィールド、すなわち、「件名」、「宛先」等を有することが可能な電子メールメッセージを検討する。これらのフィールドのそれぞれは、タグとしてＸＭＬで表現することが可能である。例えば、「件名」フィールドは、ＸＭＬタグ「ｓｕｂｊ」として表現することが可能である。ＸＳＬ−Ｔが、現行のノードを様々なテンプレートにマッチさせ、どれかを選択し、そのテンプレートモードの中でマッチするノードを見つけることができるエンジンを作成する。電子メールのＸＭＬ表現を変換するＸＳＬ−Ｔは、「ｓｕｂｊ」タグにマッチするテンプレートを含むことが可能である。次に、そのテンプレートが、「ｓｕｂｊ」タグに関連するストリングをリストするが、ユーザに対して最終的に表示されるＤＨＴＭＬのストリングの前に語「件名：」を入れることが可能である。これは、ＸＳＬ−Ｔを使用して行われることが可能な変換プロセスの非常に簡単な例に過ぎない。また、ＸＳＬ−Ｔを使用して、ＸＭＬドキュメントで表現された情報に情報を追加することもできる。例えば、ＸＳＬ−Ｔを使用して様々な見出し、またはその他の情報を追加し、その見出しの下の付随するデータが、ＸＭＬドキュメントから来ることが可能である。したがって、基本的に、ＸＳＬ−Ｔは、ＸＭＬによって記述されたデータをＤＨＴＭＬプレゼンテーションに変換する極めて堅固で、柔軟性のある方法を提供する。ＸＳＬ−Ｔで明らかなことは、結果のＤＨＴＭＬ構造が、対応するＸＭＬツリー構造にほとんど似ていない点であることである。なお、ＸＭＬツリー構造はＤＨＴＭＬを提供するのにＸＳＬＴによって使用されたデータを含んでいる。
【０００６】
したがって、ＸＭＬからＤＨＴＭＬへの移行は、ＸＳＬ−Ｔを介して達せられる。これは、一般に、ＸＭＬで記述されたデータが、ユーザに対するプレゼンテーション形式に変換される一方向変換である。プレゼンテーション形式（例えば、ＤＨＴＭＬ）を介してデータと対話することができるユーザ体験を保つことは、極めて重要である。ＸＭＬからＤＨＴＭＬへの変換は、かなり簡単であるが、柔軟性があり、ＸＳＬ−Ｔの十分な能力を理解する仕方でこの変換の逆（すなわち、ＤＨＴＭＬをＸＭＬに変換する）となる明確な変換は、存在しない。つまり、この問題に対する単純な解決策は存在するが、ＸＳＬ−Ｔの堅固な性質、および対応するＸＭＬツリーとＤＨＴＭＬツリーの違いが、逆変換解決策を試みるのを極めて困難にしている。
【０００７】
ユーザが、データをＤＨＴＭＬドキュメントに入力することができるようにし、次に、このドキュメントが、ＸＭＬドキュメントにコピーして戻されるいくつかの解決策が存在する。しかし、この解決策では、ユーザが、データを表現するＸＭＬツリーの構造を変更できるようにはならない。さらに、ＤＨＴＭＬの変更を所与として、ＸＭＬツリーのある程度の操作を可能にすることができるハードコード化された解決策が存在するが、この解決策のハードコード化された性質により、この解決策は、使用の対象となるデータおよびＸＭＬタグに非常に特定されたものとなっている。例えば、ＸＳＬ−Ｔテンプレートの１つが、新しい行を追加するなどのテーブルに対する構造をユーザが変更することが可能なハードコード化された解決策を含んでいる。この場合、このハードコード化された解決策は、この解決策の定義が行われた特定の対象であるテーブルに関連してしか使用することができない。開発者が、異なるテーブルに対してこのハードコード化された解決策を使用することを希望する場合、開発者は、プログラムの解決策を物理的に変更してそれらの状況に適用しなければならない。ユーザフレンドリなビューを介して任意のＸＭＬの作成を可能にする解決策も存在するが、ＤＨＴＭＬおよびＸＳＬ−Ｔを介するものではない。例としての製品には、ＡｒｂｏｒｔｅｘｔのＡｄｅｐｔ　Ｅｄｉｔｏｒ、ＳｏｆｔＱｕａｄのＸＭｅｔａｌ、ＩＮＲＩＡのＴｈｏｔ、およびＦｒａｍｅＭａｋｅｒのＦｒａｍｅｍａｋｅｒ　ｆｏｒ　ＳＧＭＬが含まれる。
【０００８】
したがって、本発明は、ユーザが、ＤＨＴＭＬドキュメントを操作できるようにし、その操作が、柔軟性があり、反復可能な仕方でＤＨＴＭＬプレゼンテーションのデータを表現するＸＭＬツリーに移し戻すユーザインターフェースを提供することに関連する関心からなされた。
【０００９】
（発明の概要）
ＤＨＴＭＬビューを使用してＸＭＬを作成する方法およびシステムを説明する。ユーザが、ＤＨＴＭＬビューと対話し、関連するＤＨＴＭＬツリーの値（例えば、テキストまたはプロパティ）を変更することができるようにする様々なユーザインターフェースが、ＤＨＴＭＬビューの中で自動的に、または半自動的に提供される。値の変更は、関連するＸＭＬ構造の変更に翻訳される。変換、例えば、ＸＳＬ−Ｔが、その変更されたＸＭＬ構造に適用され、次にＸＭＬ構造が、ユーザの対話を反映するようにＤＨＴＭＬビューを変更する。一部が「ドキュメント内」インターフェースと呼ばれるインターフェース群により、ユーザは、ＤＨＴＭＬビューと対話することができ、そのＤＨＴＭＬビューに関連するデータを記述する対応するＸＭＬドキュメントに自動的に値の変更が行われるようにさせることができる。様々な「ドキュメント内」インターフェースのプレゼンテーションが、ＸＭＬスキーマ（ＸＭＬドキュメントは、そのインスタンスである）だけでなく、ＸＭＬドキュメントをＤＨＴＭＬビューに変換するのに利用されたＸＳＬ−Ｔ（ＸＳＬＴ変換）も考慮することによって行われる。
【００１０】
さらに、クリスタルの概念が導入され、ＤＨＴＭＬビューの変更を、対応するＸＭＬドキュメントに直接マップし戻すのに使用される。基本的形態で、クリスタルは、１つまたは複数のビヘイビアおよび関連するＸＳＬ−Ｔを含む。図示する例では、ビヘイビアは２進コードとして実装される。上記２進コードはＸＳＬ−Ｔによって生成されたＤＨＴＭＬタグに関連付けられるか、または、付加される。クリスタルを使用して、ＸＭＬをＤＨＴＭＬビューに変換する。クリスタルのビヘイビアは、データ形状特有、またはデータ形状依存であるように定義される。データ形状はＸＭＬドキュメントによって定義される。このビヘイビアは、必ずしも、何らかのスキーマ、データ、またはタグに依存するわけではない。データ形状に依存する性質を持つため、クリスタルは様々なＸＭＬドキュメントで再使用するために、パッケージ化することができる。これらのドキュメントは、ＸＭＬによって定義された形状以外は、互いに全く関係を有さない。
【００１１】
ビヘイビアは、ＸＳＬ−Ｔによって生成されたＤＨＴＭＬタグに付加することができる。ＤＨＴＭＬビューとのユーザの対話を、ＸＭＬドキュメントに直接に反映するようにマップすることがビヘイビアにより確実になる。このようにして、ユーザによってＤＨＴＭＬビューに行われた変更を反映するようにＸＭＬドキュメントを作成することができる。
【００１２】
（好適実施形態の詳細な説明）
概要
ＤＨＴＭＬビューを使用してＸＭＬを作成する方法およびシステムを説明する。一実施形態では、ユーザが、ＤＨＴＭＬビューと対話して関連するＤＴＨＭＬツリーの値（例えば、テキストまたはプロパティ）を変更することができるようにする様々なユーザインターフェースが、ＤＨＴＭＬビューの中で自動的に、または半自動的に提供されることが可能である。値の変更は、関連するＸＭＬ構造の変更に翻訳される。変換、例えば、ＸＳＬ−Ｔが、変更されたＸＭＬ構造に適用され、次にＸＭＬ構造が、ユーザの対話を反映するようにＤＨＴＭＬビューを変更する。一部が「ドキュメント内」インターフェースと呼ばれるインターフェース群により、ユーザは、ＤＨＴＭＬビューと対話することができ、そのＤＨＴＭＬビューに関連するデータを記述する対応するＸＭＬドキュメントでその対話を反映させることができる。この変更は、ＸＭＬをＤＨＴＭＬに変換するのに利用されたＸＳＬ−Ｔの複雑さに関わらず行うことができる。様々なドキュメント内インターフェースのプレゼンテーションは、ＸＭＬスキーマ（ＸＭＬドキュメントはそのインスタンスである）だけでなく、ＸＭＬドキュメントをＤＨＴＭＬビューに変換するのに利用されたＸＳＬ−Ｔ（ＸＳＬＴ変換）も考慮することによって行われる。
【００１３】
別の実施形態では、クリスタルの概念が導入される。基本的形態で、クリスタルは、１つまたは複数のビヘイビア、および関連するＸＳＬ−Ｔを含む。クリスタルは、ＸＭＬをＤＨＴＭＬビューに変換するのに使用される。クリスタルのビヘイビアは、データ形状がＸＭＬドキュメントによって定義されて、データ形状に特有である、またはデータ形状に依存するように定義される。ビヘイビアは、必ずしも何らかのスキーマ、データ、またはタグに依存するわけではない。データ形状に依存する性質のため、クリスタルは、ＸＭＬによって定義された形状以外、互いに全く関係を有さない様々なＸＭＬドキュメントで再使用するためにパッケージ化することができる。説明する実施形態では、ビヘイビアは、ＸＳＬ−Ｔによって生成されたＤＨＴＭＬタグに付加される。ビヘイビアにより、ＤＨＴＭＬビューとのユーザ対話が、ＸＭＬドキュメントに直接に返るようにマップされることが確実になる。このようにして、ユーザによってＤＨＴＭＬビューに行われた変更を反映するようにＸＭＬドキュメントを作成することができる。クリスタルは、データ形状に依存し、スキーマには依存しないので、形状がＸＭＬドキュメントによって定義されると、異なるスキーマに属するＸＭＬの断片を作成するためにクリスタルを使用することができる。つまり、それらの断片は、単に同じ形状を共有している。
【００１４】
本明細書では、以下の用語を使用する。
【００１５】
スキーマ　特定のタイプのＸＭＬドキュメントに関するスキーマを記述するファイル（例えば、ＸＳＤファイル）；スキーマは、通常、ＸＭＬドキュメントを表現するＸＭＬツリーの形状を定義する事前定義されたタグおよび属性を含む。スキーマは、各ＸＭＬドキュメントが準拠しなければならない構造を提供する；ＸＭＬドキュメントを編集している間、スキーマは、インスタンス化されたＤＯＭ（ドキュメントオブジェクトモデル）（ＸＤＲ　ＤＯＭ）を介してアクセス可能である。あるいは、関係のある情報をスキーマから獲得して、使用のためにキャッシュに入れることができる。
【００１６】
ＸＭＬドキュメント　ＸＭＬスキーマのインスタンス。理論上、１つのスキーマに対して、そのスキーマをインスタンス化する無限数のドキュメントが存在することが可能である。ドキュメントを編集している間、ドキュメントの初期バージョンと最終バージョンがともに、同一のスキーマに属するが、ドキュメント自体は、異なっている。処理中、ＸＭＬドキュメントは、インスタンス化されたＤＯＭ（ＸＭＬ　ＤＯＭ）を介してインスタンス化される。
【００１７】
ＸＳＬＴ変換　ＸＭＬドキュメントをＨＴＭＬビューに変換するＸＭＬファイル；各ＸＭＬドキュメントに関して、同一のドキュメントに対してそれぞれが異なるＨＴＭＬビューを作成する任意の数のＸＳＬＴ変換が存在することが可能である。ＸＳＬ−Ｔファイルは、ＸＭＬドキュメントの中の要素にマッチする１つまたは複数のテンプレートから成る。アプリケーション作成者によって最初に作成されたＸＳＬ−Ｔファイルが、編集モードで適用された際にＮｅｔＤｏｃｓによってＮｅｔＤｏｃｓ編集認知のＸＳＬ−Ｔに変換される。この変換は、テンプレートを複数のテンプレートに分割し、アプリケーション開発者によって追加されたＮｅｔＤｏｃｓ特有のヒントに基づいて適切なビヘイビア（以下を参照）を追加することが可能である。ＸＭＬドキュメントを編集している間、変換されたＸＳＬ−Ｔは、インスタンス化されたＤＯＭ（ＸＳＬ−Ｔ　ＤＯＭ）を介してＮｅｔＤｏｃｓにとってアクセス可能である。
【００１８】
ＤＨＴＭＬビュー　これは、ＸＭＬドキュメントに対して適用されたＸＳＬＴ変換の結果である。ＤＨＴＭＬツリーは、データを表示するためのビジュアルキューだけでなく、ビヘイビアも含む。このビヘイビアは、ＸＳＬＴ変換によって導入される。ＸＳＬＴ変換の作成者によって導入されたビヘイビアが存在するのが可能である一方で、ＮｅｔＤｏｃｓが変換を適用する際にＮｅｔＤｏｃｓによって導入されるビヘイビアが存在する。ＮｅｔＤｏｃｓによって導入されるビヘイビアは、以下を行うための論理を保持する。
変更されたＨＴＭＬリーフノードの値をＸＭＬ　ＤＯＭにコピーする
ＨＴＭＬドキュメントにおけるカーソル位置に基づき、その編集コンテキストでどのような編集サービスが利用可能であるかを判定する。編集コンテキストは、ＸＳＤコンテキスト、およびビューのその部分を生成するのに適用されたＸＳＬ−Ｔテンプレートに関連してＨＴＭＬコンテキストによって決定される。サービスは、ユーザに知らされ、
事前定義されたＵＩ構造（例えば、テーブル、グリッド、カレンダコントロール、ラベル）に関する定位置（編集エリアの中）で、
ＮｅｔＤｏｃｓ　ＣｏｎｔｅｘｔＢｌｏｃｋエリアの中で適切なＸＭＬ編集コンテキストブロックをイネーブルにする。
選択された編集サービスに基づいてＸＭＬ　ＤＯＭの構造を変更する
ＸＭＬ　ＤＯＭに対する変更によって影響を受けたビューの部分だけをリフレッシュすることによってＨＴＭＬビューを増分式に更新する。
【００１９】
例としてのコンピュータ環境
以下に説明する実施形態は、様々なコンピュータシステムに関連して使用することができる。コンピュータシステムは、本明細書では、何らかのタイプのプロセッサ、すなわち、マイクロプロセッサ、および何らかのタイプのオペレーティングシステムを含む任意のコンピュータデバイスと見なすことができる。したがって、コンピュータシステムは、限定するものではなく、従来のデスクトップコンピュータ、より能力の高いサーバ、セル電話機などの様々なハンドヘルドデバイス、ポケットヘルドコンピュータデバイス等を含むものと解釈することができる。
【００２０】
図２は、本明細書で説明する実施形態を実施するのに使用することができる例としてのコンピュータシステムを示している。コンピュータ１３０は、１つまたは複数のプロセッサまたはプロセッサユニット１３２と、システムメモリ１３４と、システムメモリ１３４からプロセッサ１３２までを含む様々なシステム構成要素を結合するバス１３６とを含む。バス１３６は、様々なバスアーキテクチャの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、グラフィック専用高速バス（Ａｃｃｅｌｅｒａｔｅｄ　Ｇｒａｐｈｉｃｓ　Ｐｏｒｔ）、およびプロセッサバスまたはローカルバスを含むいくつかのタイプのバス構造の任意のものの１つまたは複数を表す。システムメモリ１３４は、読取り専用メモリ（ＲＯＭ）１３８およびランダムアクセスメモリ（ＲＡＭ）１４０を含む。始動時中などにコンピュータ１３０内部の要素間で情報の転送を助ける基本ルーチンを含む基本入力／出力システム（ＢＩＯＳ）１４２が、ＲＯＭ１３８の中に記憶されている。
【００２１】
コンピュータ１３０は、ハードディスク（図示せず）に対して読取りおよび書込みを行うためのハードディスクドライブ１４４と、取外し可能な磁気ディスク１４８に対して読取りおよび書込みを行うための磁気ディスクドライブ１４６と、ＣＤ　ＲＯＭまたはその他の光媒体などの取外し可能な光ディスク１５２に対して読取りおよび書込みを行うための光ディスクドライブ１５０とをさらに含む。ハードディスクドライブ１４４、磁気ディスクドライブ１４６、および光ディスクドライブ１５０は、ＳＣＳＩインターフェース１５４または他の何らかの適切なインターフェースでバス１３６に接続される。以上のドライブおよび関連するコンピュータ可読媒体は、コンピュータ１３０のためのコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性ストーレッジを提供する。本明細書で説明する例としての実施形態は、ハードディスク、取外し可能な磁気ディスク１４８、および取外し可能な光ディスク１５２を使用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）などのコンピュータがアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体も、例としての動作環境で使用できることが、当分野の技術者には理解されよう。
【００２２】
オペレーティングシステム１５８、１つまたは複数のアプリケーションプログラム１６０、その他のプログラムモジュール１６２、およびプログラムデータ１６４を含むいくつかのプログラムモジュールをハードディスク１４４、磁気ディスク１４８、光ディスク１５２、ＲＯＭ１３８、またはＲＡＭ１４０の上に記憶することができる。ユーザは、キーボード１６６およびポインティングデバイス１６８などの入力デバイスを介してコンピュータ１３０にコマンドおよび情報を入力することができる。その他の入力デバイス（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ等が含まれることが可能である。以上の入力デバイス、およびその他の入力デバイスは、バス１３６に結合されたインターフェース１７０を介して処理装置１３２に接続される。また、モニタ１７２、またはその他のタイプの表示デバイスも、ビデオアダプタ１７４などのインターフェースを介してバス１３６に接続される。モニタに加えて、パーソナルコンピュータは、通常、スピーカやプリンタなどの他の周辺出力デバイス（図示せず）も含む。
【００２３】
コンピュータ１３０は、一般に、遠隔コンピュータ１７６などの１つまたは複数の遠隔コンピュータに対する論理接続を使用するネットワーク化された環境で動作する。遠隔コンピュータ１７６は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードであることが可能であり、通常、コンピュータ１３０に関連して前述した要素の多く、またはすべてを含むが、メモリ記憶デバイス１７８だけを図２で示している。図２に描いた論理接続は、ローカルエリアネットワーク（ＬＡＮ）１８０およびワイドエリアネットワーク（ＷＡＮ）１８２を含む。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
【００２４】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１３０は、ネットワークインターフェース、つまりネットワークアダプタ１８４を介してローカルネットワーク１８０に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１３０は、通常、インターネットなどのワイドエリアネットワーク１８２を介して通信を確立するためにモデム１８６またはその他の手段を含む。内部または外部にあることが可能なモデム１８６は、シリアルポートインターフェース１５６を介してバス１３６に接続される。ネットワーク化された環境では、パーソナルコンピュータ１３０に関連して描いたプログラムモジュール、またはこのプログラムモジュールの部分が、遠隔メモリ記憶デバイスの中に記憶されることが可能である。図示したネットワーク接続は、例としてのものであり、コンピュータ間で通信リンクを確立する他の手段も使用できることが理解されよう。
【００２５】
一般に、コンピュータ１３０のデータプロセッサは、コンピュータの様々なコンピュータ可読記憶媒体の中に様々な時点で記憶された命令でプログラミングされる。プログラムおよびオペレーティングシステムは、通常、例えば、フロッピー（登録商標）ディスクまたはＣＤ−ＲＯＭで配布される。フロッピー（登録商標）ディスクまたはＣＤ−ＲＯＭから、プログラムおよびオペレーティングシステムは、コンピュータの２次メモリの中にインストールまたはロードされる。実行時に、プログラムおよびオペレーティングシステムは、少なくとも一部がコンピュータの１次電子メモリの中にロードされる。本明細書で説明する発明は、以上のタイプ、およびその他の様々なタイプのコンピュータ可読記憶媒体を、そのような媒体が、マイクロプロセッサまたはその他のデータプロセッサに関連して以下に説明するステップを実施するための命令またはプログラムを含んでいるときに含む。また、本発明は、以下に説明する方法および技術に従ってプログラミングされているときにコンピュータ自体を含む。
【００２６】
例示のため、オペレーティングシステムなどのプログラムおよびその他の実行可能なプログラム構成要素は、本明細書では、別々のブロックとして図示しているが、そのようなプログラムおよび構成要素は、様々な時点でコンピュータの異なる記憶構成要素の中に存在し、コンピュータのデータプロセッサによって実行されることを認識されたい。
【００２７】
例としての実施形態
以下で述べる本発明の方法およびシステムは、上記の参照により組み込まれる刊行物で態様が説明される実施形態に関連して使用するように構成される。この実施形態は、基本的に、アプリケーションプログラムによって提供される複数の異なる機能にナビゲートすることができる単一のナビゲート可能なウインドウを有する単一のアプリケーションプログラムを提供する。それらの機能は、拡張可能であり、インターネットなどのネットワークを介して拡張することができる。
【００２８】
ユーザインターフェースを生成するためのスキーマおよびＸＳＬ−Ｔの使用
ユーザが、何らかの形でドキュメントの値またはプロパティの１つまたは複数の操作を介してドキュメントを変更する目的で、ＤＨＴＭＬドキュメントと対話する際、その操作が、ＤＨＴＭＬドキュメントの背後のデータの構造を記述するＸＭＬドキュメントに対して整合性のある形で行われることが重要である。ＤＨＴＭＬの背後のデータ構造を記述するＸＭＬドキュメントを操作するため、ＤＨＴＭＬにおけるユーザ対話をＸＭＬドキュメントにおける変更に変換する手立てが必要である。これは、ＸＳＬ−Ｔによって提供される変換機能の逆を見出す問題である。
【００２９】
一実施形態では、説明する実施形態は、ユーザが、ＤＨＴＭＬドキュメントを操作する、またはＤＨＴＭＬドキュメントと対話するのを可能にする適切なユーザインターフェース（ＵＩ）をＤＨＴＭＬ内で自動的に（またはアプリケーション開発者によって何らかのヒントが与えられて半自動的に）生成することによってこの問題に対処する。ＵＩのプレゼンテーションは、ＸＭＬスキーマだけでなく、ＤＨＴＭＬを提供するのに利用されたＸＳＬ−Ｔ変換も考慮に入れる。これは、ＸＭＬドキュメントに何を追加することができ、何を追加することができないかを判定するのにＸＭＬスキーマだけを見る他のＸＭＬ作成解決策からの相当な脱却である。したがって、ＵＩにより、ＤＨＴＬＭビューとのユーザ対話（例えば、構造を追加および／または削除する）をＸＭＬドキュメントに直接に移し戻すことができる。
【００３０】
ユーザがドキュメントと対話するのを可能にするためにユーザに提示することができる多数の様々な可能なタイプのＵＩが存在する。いくつかの例には、限定するものではなく、ユーザのコンテキストに基づいてウインドウに自動的に追加されるコンテキストブロックが含まれる。コンテキストブロックは、上記の参照によって組み込まれる「Ｔａｓｋ　Ｓｅｎｓｉｔｉｖｅ　Ｍｅｔｈｏｄｓ　Ａｎｄ　Ｓｙｓｔｅｍｓ　Ｆｏｒ　Ｄｉｓｐｌａｙｉｎｇ　Ｃｏｍｍａｎｄ　Ｓｅｔｓ」という名称の出願でより詳細に述べられている。その他の形態のＵＩには、ユーザがドキュメントと対話するのを可能にするドキュメント自体の中の装飾であるいわゆるウィジェットが含まれることが可能である。例えば、ドキュメントがテーブルを含む場合、ユーザがクリックして、行または列を追加または削除することができる、または列の中でアイテムを動かすことができるテーブルの周囲の追加の装飾が存在することが可能である。別のタイプのＵＩは、キーボードを介して対話を可能にするアクセラレータである。例えば、「Ｃｏｎｔｒｏｌ−Ｌ」が押された場合、何らかのタイプの事前定義されたアクションが実施される。
【００３１】
この説明する実施形態では、どのＵＩをユーザに提示するか、またいつ提示するかを決定する決定プロセスが行われる。つまり、特定のドキュメントにおいてユーザが何を行っているか、またユーザが、ドキュメントの中でどこにいるかに依存して、いくつかの異なるＵＩ選択肢が存在する可能性がある。本発明の手法は、いくつかの異なるパラメータを利用し、またそのパラメータの分析に基づき、どのＵＩをユーザに提示してユーザがＤＨＴＭＬビューと対話できるようにするかに関する決定を行う。説明する実施形態では、以下のパラメータを使用することができる。
【００３２】
ユーザが、特定のＤＨＴＭＬドキュメントの中でどこにいるかの選択。これが、ユーザが特定のＸＭＬドキュメントの中でどこにいるかに翻訳される。というのは、選択は、最初、ＤＨＴＭＬ側で開始してＸＭＬ側で対応を有するからである；
ユーザの選択に対応するＸＭＬスキーマの部分；
生成することが望ましいＵＩタイプ；および
ＸＳＬ−Ｔファイル
【００３３】
ＸＳＬ−Ｔファイルの中で、結果のＤＨＴＭＬの中のある構造を示唆することが可能なある構成体が存在する。例えば、ＸＳＬ−Ｔファイルが、「ｘｓｌ：それぞれに関する」構成体（すなわち、各顧客に関して、あるアクションをとる）を含むことが可能である。この構成体は、テーブルまたは段落などのＤＨＴＭＬの中の反復構造を示唆するものである。つまり、数名の顧客が存在する場合には、あるアクションを繰り返すことにより、あるタイプの構造が反復して定義される。これらのＸＳＬ−Ｔ構成を考慮することにより、ユーザに対して表示することができる、あるＵＩタイプを特定することができる。
【００３４】
一例が、テーブル編集である。例えば、費用がオプションである場合、このスキーマによれば、最初、テーブルの中で費用が存在しないことが可能である。ＸＳＬ−Ｔは、各費用を提示する「それぞれに関する」構成体を有するが、ＸＭＬ　ｄｏｃの中には全く存在しないので、何も表示されない。ＵＩは、この場合、費用を追加するためのコンテキストブロックを生成しなければならない。
【００３５】
第１の費用が作成されると、ＸＳＬＴ変換を再び適用することにより、テーブルが閲覧可能になる。この時点で、費用に関連する「それぞれに関する」が存在するというＸＳＬ−Ｔヒント、および複数の費用を追加することができるというスキーマ情報に基づき、「費用追加」をコンテキストブロックとして表示せず、追加の費用を新しい行としてテーブルに追加する機能を引き継ぐ適切なｉｎ−ｄｏｃ　ＵＩを追加する決定がなされる。
【００３６】
どのＵＩを表示してユーザがドキュメントと対話することができるようにするかという問題に対処する際、ユーザに提示される全体的な外観を可能な限り整理されたものにすることが望ましい。例えば、ＤＨＴＭＬビューと対話するためにユーザがエンゲージすることができる独自のエンゲージ可能ボタンをそれぞれが備えた多数の異なるコンテキストブロックが、ユーザに提示されることが可能である。ただし、これは望ましくない。というのは、そうすることにより、コンテキストブロックエリアが乱雑になるからである。ドキュメント自体に特有であるドキュメント内の「ドキュメント内」ＵＩ（例えば、ウィジェットＵＩ）を有する方がより理想的である。「ドキュメント内」ＵＩは、ドキュメントの一部分の中で現れ、ドキュメントの一部分とのユーザ対話を可能にするＵＩである。例えば、組み込まれた描画を有するＷｏｒｄドキュメントを考慮されたい。ユーザが、組み込まれた描画の上でクリックしたとき、その描画が、クリックしてその描画を操作することができる１つまたは複数のボタン、例えば、描画を回転させる回転ボタンを含むフレームの中で現れることが可能である。組み込まれた描画に関連するボタンは、「ドキュメント内」ＵＩと見なされる。
【００３７】
これらのタイプのＵＩを提供するため、説明する実施形態は、ＸＳＬ−Ｔファイルを検査して、「ドキュメント内」ＵＩによって機能を提供させるのにどのＵＩ候補がより適しているかを明らかにする。
【００３８】
例えば、スキーマが、複数の費用が許容されることを指定し、またＸＳＬ−Ｔが、費用に関する「それぞれに関する」構成体を有する場合、費用がマッチされた後、ＸＳＬ−Ｔによって導入された第１の要素を見ることにより、どの種類の役立つＵＩを追加するかを判定することが可能である。ＤＨＴＭＬ　ＴＡＢＬＥが作成された場合、ＤＨＴＭＬ　ＴＡＢＬＥは、テーブル編集ウィジェットで装飾されなければならないが、ＳＰＡＮが存在する場合には、コンテキストブロックを生成し、ｉｎ−ｄｏｃ　ＵＩは生成しない。
【００３９】
つまり、前述したコンテキストブロックは、「ドキュメント内」ではない。というのは、これらのコンテキストブロックは、ユーザがドキュメントに対して作業することができるドキュメントエリアに隣接して配置されたペイン内で提供されるからである。説明する実施形態の１つの目的は、ドキュメント部分を特に装飾し、ドキュメント自体とのユーザ対話を可能にする「ドキュメント内」ＵＩとして組み込むための最良の候補であるＵＩを、以下で述べる分析に基づいて特定することである。
【００４０】
どのＵＩをユーザに提示するかの分析においてＸＳＬ−Ｔを考慮に入れることなく、提示するのが可能なＵＩは、ドキュメント内ＵＩではないと考えよう。コンテキストブロックは、この例では、最も一般的なＵＩ構成体である。しかし、ＤＨＴＭＬで作成されたテーブルがあることが分かっている場合には、コンテキストブロックをｉｎ−ｄｏｃ構成体で置き換えることができる。ＸＳＬ−Ｔを検査することにより、どのようなＤＨＴＭＬ構成体が、ＸＳＬＴ変換によって生成されるかを見出すことができる。つまり、ＸＳＬ−Ｔを考慮することなしでは、一般的なＵＩ、例えば、コンテキストブロックＵＩだけが生成される可能性が高い。例えば、ユーザが、テーブルを含むＤＨＴＭＬドキュメントの中で作業している場合、ユーザが、様々な「ドキュメント外」ＵＩの操作を介してそのテーブルを操作する、例えば、行、列等を追加することができるようにするコンテキストブロックを提供することができる。ＸＳＬ−Ｔを考慮することにより、生成されたＵＩを改良することができ、またコンテキストブロック、またはコンテキストブロックによって提供される機能の少なくとも一部分を他のタイプのドキュメント内ＵＩで置き換えることができる。したがって、ＸＳＬ−Ｔが、ＵＩの改良のために使用される。
【００４１】
図３は、この説明する実施形態によるＵＩ生成方法におけるステップを説明する流れ図である。ステップ３００が、ＤＨＴＭＬドキュメントの中で選択を行う。このステップは、ユーザがカーソルをドキュメント内の特定のエリアに移動することによって実施される。ステップ３０２が、ユーザの選択に基づき、ＸＭＬドキュメントの中で対応する選択を決定する。例えば、ユーザが、ＸＭＬドキュメントの特定の断片を表示するのに使用されるテーブルの特定の一部分を選択した場合には、このステップが、そのユーザの選択に対応するＸＭＬドキュメントの正確な断片を決定する。ＸＭＬドキュメントの中の選択に基づき、ステップ３０４が、その選択に対応するＸＭＬスキーマの中の適切な場所、ならびにその選択から取られることが可能な様々なタイプのアクションを決定する。この様々なタイプのアクションは、ユーザが、自分で選択したドキュメントの部分を操作することができる様々な仕方に対応する。次に、ステップ３０６が、その様々なアクションタイプに関して行われることが可能な適切な動作をもたらす。例えば、ユーザが、テーブルの中で作業している場合、このステップは、行または列を追加する、あるいは行または列を削除するための動作をもたらすことが可能である。動作が、ステップ３０６によってもたらされると、ステップ３０８が、ＸＳＬ−Ｔファイルから、ユーザに対してどのタイプのＵＩを表示するかを判定する。ＸＳＬ−Ｔがこのプロセスで考慮されない場合には、利用可能なＵＩが、コンテキストブロック（すなわち、「ドキュメント内」ＵＩではなく）として提示される。ＸＳＬ−Ｔを使用することにより、説明する実施形態は、生成されるコンテキストブロックの数を少なくし、代わりに、そうでなければ、コンテキストブロックによって提供されることになる機能を再配置する「ドキュメント内」ＵＩを生成することにより、コンテキストブロックの生成を改良する。
【００４２】
クリスタルを使用するＸＭＬ構造の操作
ＸＭＬの利点の１つは、豊富にデータを記述できることであったことを思い起こされたい。ＸＭＬは、その性質のため、多種多様なバリエーションのデータを提供することができる。このため、データと対話するためのＵＩ解決策（ＸＳＬ−Ｔを使用してＤＨＴＭＬで表示される）は、ハードコード式で、個々のスキーマに特有であった。これは、ＸＳＬ−Ｔを介してハードコード化された解決策を提供できる容易さの表れである。
【００４３】
説明する一実施形態では、ＤＨＴＭＬビューとの対話が、ＸＭＬファイルまたはＸＭＬツリーに直接に返るようにマップされるのを可能にするクリスタルの概念が導入される。有利には、クリスタルは、ＸＭＬスキーマとは独立に、様々なデータ形式に対して機能するように構成される。これは、データが、ＸＭＬツリーによって定義された特定の形状を有する場合、その特定の形状のために構成された特定のクリスタルを使用してＤＨＴＭＬをレンダリングすることができ、またＤＨＴＭＬビューとのユーザ対話が、ＸＭＬツリーに直接に返るようにマップされるのを確実することができるのを意味する。クリスタルは、データ形状によって提供される特定のデータに拘らず、またデータを含めるのに使用されるスキーマまたはタグにも拘らない。
【００４４】
例えば、ＸＭＬドキュメント４００、クリスタル４０２、および結果のＤＨＴＭＬドキュメント４０４を示す図４を考慮されたい。１つの基本的形態では、クリスタルは、１つまたは複数のビヘイビア４０６、およびＸＭＬをＤＨＴＭＬに変換するのに利用される基本ＸＳＬ−Ｔ４０８を含む。ビヘイビアは、この特定の例では、ＸＳＬ−Ｔによって生成されるＤＨＴＭＬタグに関連付けられる、または付加される２進コードとして実装される。例えば、ＸＭＬドキュメント４００のすぐ下に示している階層ツリーを考慮されたい。この階層ツリーは、メモリの中で維持されるＸＭＬツリーの一部分を表す。この例では、ツリーは、「製品」ルートノード、および「製品」ルートノードの子である「製品１」ノードを有する。「製品１」ノードの下には、「名前」、「量」、および「価格」とラベル付けされた３つの子ノードが存在する。したがって、このＸＭＬツリーは、様々な製品を購入するのに利用される購入注文の一部分を表す。クリスタル４０２によってレンダリングされた際、結果のＤＨＴＭＬビューが、４１０で示されている。このＤＨＴＭＬビューは、ビヘイビアがＤＨＴＭＬタグに関連付けられたツリーとしてビュー４１０のすぐ上に示されている。ＤＨＴＭＬビューは、基本的には、ＸＭＬドキュメントによって提供されるデータを含むテーブルである。次に、ユーザが、対応する量および価格を有する追加の製品を追加することによって購入注文を変更することを所望するものと想定する。過去には、この問題の解決策は、ＸＭＬに特定の「製品タグ」を追加し、次に、それに応じて、ＤＨＴＭＬビューに追加する機能をハードコードすることであったであろう。これは、ＸＭＬドキュメントのスキーマおよびタグに特定で結び付いた非常に柔軟性を欠いた解決策である。説明する例では、ＸＭＬドキュメントの変更は、クリスタル４０２に関連する１つまたは複数のビヘイビアを介して行われる。具体的には、この特定のＸＭＬツリー構造に関して定義されたビヘイビアは、ＸＭＬドキュメントに行うことができる変更、およびＸＳＬ−Ｔの適用を使用して、その変更をＤＨＴＭＬビューにマップするマッピングを含む。このビヘイビアは、データ形状に依存し、スキーマまたはデータに依存するものではない。
【００４５】
これをＤＨＴＭＬビュー４０４の下に示されるＤＨＴＭＬツリー構造で図４に図示している。図４では、「製品」ノードに対応するノードが、ビヘイビアで装飾されて示されている。このビヘイビアは、ユーザが、適切なＵＩ（テーブルに付加されたドキュメント内「製品追加」ボタン４１１などの）を介してＤＴＨＭＬビューと対話し、ユーザによって行われた定義された変更が、適切なＸＭＬツリーに返るようにマップされるようにするのを可能にする２進コードである。ユーザが、ＤＨＴＭＬビューと対話する際、ＸＭＬツリーが、構造上、操作され（適切なタグおよび構造を追加することによるなど）、次に、ＤＨＴＭＬビューを再表示するようにＸＳＬ−Ｔが呼び出される。
【００４６】
購入注文の例では、ユーザが、新しい行をテーブル４１０に追加する「製品追加」ボタン４１１をクリックすることによってＤＨＴＭＬビューテーブルに新しい製品を追加するものと想定する。この例では、新しい製品が追加されたとき、ビヘイビア、つまり２進コードが、その変更をＸＭＬツリーに返るようにマップし、ＸＭＬツリーに構造上の変更を行うことによってその変更を組み込む。この特定の例では、構造上の変更は、新たに追加された製品を表すようにブランチをＸＭＬツリーに追加することを含む。この追加されたブランチが、「製品」ＸＭＬツリー上の破線のブランチとして示されている。
【００４７】
製品ＸＭＬツリーのすぐ下に示されている第２のＸＭＬツリー４１２を考慮されたい。このツリーは、「アドレス」ＸＭＬツリーであり、アドレス帳に表れることが可能なアドレスに関連している。このデータは、製品ＸＭＬツリーに関連するデータとは極めて異なる。実際、これらのデータ間で関係は全く存在しない。ただし、アドレスＸＭＬツリーは、すぐ上に現れるＸＭＬツリーと同じ形状を有することに留意されたい。説明する実施形態では、同様なクリスタルを使用して、名前、ストリート、および郵便番号に関するエントリを含むＤＨＴＭＬアドレス帳をレンダリングすることができる。クリスタルは、ラベル付けの目的でわずかに異なるＸＳＬ−Ｔを含む可能性があるが、製品ＸＭＬツリーの構造を操作するのに上記の例で利用されたのと全く同じビヘイビアを含むことが可能である。この点で、アドレステーブル上でユーザインターフェースボタン４１１が提供され、製品テーブルに関連するユーザインターフェースボタンと同じビヘイビアを含む。したがって、ユーザが、自身のアドレス帳にエントリを追加したとき、ＤＨＴＭＬ「アドレス」タグに関連するビヘイビア、つまり２進コードにより、ＤＨＴＭＬビューに行われたあらゆる変更が、対応するＸＭＬドキュメントに直接に返るようにマップされるのが確実になる。
【００４８】
クリスタルは、有利には、データの形状に特有であり、ＸＭＬドキュメントが含む可能性があるスキーマまたは特定のデータに必ずしも依存しないビヘイビアを含む事前パッケージ化されたソフトウェアコンテナであることが可能である。この手法は、ＸＳＬ−Ｔが提供する堅牢性から自然に生じる複雑なＸＳＬＴ変換を扱うのに非常によく適している。ＤＨＴＭＬツリーの中にビヘイビアを組み込み、関連付けることにより、複雑なＸＳＬＴ変換を扱うことに関連する問題が、ＸＭＬ作成に関する限り、解決される。この手法は、極めて高い柔軟性を有し、過去の解決策のように１つのスキーマまたは特定のデータに全く結び付いていない。また、この手法は、ユーザがＤＨＴＭＬドキュメントを操作することに応答してどのように基礎のＸＭＬが操作されるかに関して気を配ることなく、複雑なＸＳＬ−Ｔを開発する能力をアプリケーション開発者に提供する。さらに、この手法は、データ形状に特有であり、スキーマまたはデータには特有でないビヘイビアを有するクリスタルを利用するため、様々なクリスタルの設計が合わせられている形状に対応する形状を有するあらゆるＸＭＬドキュメントにわたってクリスタルを再使用することができる。
【００４９】
図５は、前述した実施形態による方法におけるステップを示す流れ図である。ステップ５００が、１つまたは複数のビヘイビアをそれぞれが含む複数のクリスタルを定義している。説明する実施形態では、ビヘイビアは２進コードとして実装される。ビヘイビアは、データ形状に特有であり、スキーマまたは特定のデータには依存しない。ステップ５０２が、クリスタルの１つまたは複数を使用してＸＭＬドキュメントからＤＨＴＭＬビューをレンダリングする。ステップ５０４が、少なくとも１つのビヘイビアをＤＨＴＭＬタグに付加する。このビヘイビアは、ＤＨＴＭＬビューに行われたあらゆる変更が、そのＤＨＴＭＬビューの中のデータを含むＸＭＬドキュメントに返るようにマップされ、ＸＭＬドキュメントが適切に変更されるのを確実にする。ステップ５０６は、ＵＩを介するユーザ入力に基づき、何らかの形でＤＨＴＭＬビューと対話する。このステップは、ユーザが、ＤＨＴＭＬビューの中で何らかのタイプの構造、例えば、テーブルと対話することによって実施されることが可能である。ＤＨＴＭＬビューとのユーザ対話に応答して、ステップ５０８が、このビヘイビアを使用してユーザの対話をＸＭＬドキュメントに返すようにマップし、そのデータを含むＸＭＬツリーにおいて適切な構造上の変更を行う。例えば、破線で示される「製品」ノードからの図４のＸＭＬブランチは、ＤＨＴＭＬビューの中で提供される購入注文に新しい製品を追加するユーザの結果であることが可能である。
【００５０】
例
前述の手法には、非常に柔軟性があり、アプリケーションを提供するのにアプリケーション開発者が便利に使用することができる。独立のソフトウェアベンダ（ＩＳＶ）が、エンドユーザのためにアプリケーションを開発し、購入注文を構成することを望んでいるものと想定する。ＩＳＶは、購入注文のための適切なＸＭＬスキーマを選択することができ、ＸＭＬスキーマは、購入注文が含むことが可能なタグのタイプを定義する。ＩＳＶは、ＩＳＶによって定義された仕方でＤＨＴＭＬで購入注文を提示することが可能な適切なＸＳＬ−Ｔを書く必要がある。場合により、ＩＳＶは、購入注文を特定の会社に特有にすることを望む。ＸＳＬ−Ｔは、ＩＳＶがこれを行う手立てを提供する。つまり、各ＩＳＶは、ＩＳＶに特有の仕方で異なるようにデータを提示することを望む可能性がある。したがって、ＩＳＶはそれぞれ、同じスキーマを使用するが、それぞれがその他とは非常に異なる可能性があるスキーマの多数の異なるインスタンスが、存在することが可能である。前述したクリスタルベースの実施形態の１つの目的は、ＩＳＶがＸＭＬに基づいてアプリケーションを開発するのが非常に容易であるべきであるということである。したがって、ＩＳＶは、ＸＳＬ−Ｔを書くとき、複数の異なるクリスタルによって提供される様々なビヘイビアを組み込むことができる。これらのクリスタルは、ＩＳＶがクリスタルを定義することに気を配る必要がないように事前定義される。ＩＳＶは、単に自らのデータ形状に適切なクリスタルを選択することができ、ＸＳＬ−Ｔでクリスタルを組み込むことができる。次に、ＸＭＬがＤＨＴＭＬに変換されるとき、ＤＨＴＭＬビューとのユーザ対話を基礎のＸＭＬドキュメントにマップすることができる。
【００５１】
本発明を構造上の特徴および／または方法上のステップに特有の言い回しで説明してきたが、頭記の特許請求の範囲で定義される本発明は、説明した特定の特徴またはステップに必ずしも限定されないことを理解されたい。むしろ、特定の特徴およびステップは、請求する発明を実施する好ましい形態として開示している。
【図面の簡単な説明】
【図１】
ＸＭＬドキュメント、ＸＳＬＴ変換、ＤＨＴＭＬビュー、およびＸＳＤまたはスキーマを示すハイレベルブロック図である。
【図２】
説明する実施形態を実施するのに利用することができるコンピュータシステムを示すハイレベルブロック図である。
【図３】
１つの説明する実施形態による方法におけるステップを説明する流れ図である。
【図４】
ＤＨＴＭＬビューに対する変更が、どのように対応するＸＭＬドキュメントに返るようにマップされるかの一態様を示すブロック図である。
【図５】
１つの説明する実施形態による方法におけるステップを説明する流れ図である。
【図１】
2004501450.tif 000003
【図２】
2004501450.tif 000004
【図３】
2004501450.tif 000005
【図４】
2004501450.tif 000006
【図５】
2004501450.tif 000007
【国際公開パンフレット】
2004501450.tif 000008
2004501450.tif 000009
2004501450.tif 000010
2004501450.tif 000011
2004501450.tif 000012
2004501450.tif 000013
2004501450.tif 000014
2004501450.tif 000015
2004501450.tif 000016
2004501450.tif 000017
2004501450.tif 000018
2004501450.tif 000019
2004501450.tif 000020
2004501450.tif 000021
2004501450.tif 000022
2004501450.tif 000023
2004501450.tif 000024
2004501450.tif 000025
2004501450.tif 000026
2004501450.tif 000027
2004501450.tif 000028
2004501450.tif 000029
2004501450.tif 000030
2004501450.tif 000031
2004501450.tif 000032
2004501450.tif 000033
2004501450.tif 000034
2004501450.tif 000035
2004501450.tif 000036
2004501450.tif 000037
2004501450.tif 000038
2004501450.tif 000039
2004501450.tif 000040
2004501450.tif 000041
2004501450.tif 000042
2004501450.tif 000043
2004501450.tif 000044
【国際公開パンフレット（コレクトバージョン）】
2004501450.tif 000045
2004501450.tif 000046
【国際公開パンフレット（コレクトバージョン）】
2004501450.tif 000047
2004501450.tif 000048
【国際調査報告】
2004501450.tif 000049
2004501450.tif 000050