(57)【要約】  １つの例においては、ドキュメントレンダリングデバイスは、ドキュメントツリーのソースノードのスタイルプロパティが、そのドキュメントツリーのターゲットノードに対して適用され得るかどうかを決定することにより、ドキュメントツリーからドキュメントを作成することができる。ドキュメントレンダリングデバイスは、コンポーネントを親子関係の形で階層的に配列しているドキュメントを記述する複数のノードを有するドキュメントツリーを記憶することができる。ドキュメントレンダリングデバイスは、ドキュメントツリーの子コンポーネントを表現するターゲットノードが、ターゲットノードに対するスタイルプロパティの適用を許可するかどうかを記述するスタイリングアクセス許可を識別することができる。ドキュメントレンダリングデバイスは、スタイリングアクセス許可に基づいて、ターゲットノードのための継承判定を実行して、ターゲットノードが、親コンポーネントを表現するソースノードからスタイルプロパティを継承するかどうかを決定することができる。ドキュメントレンダリングデバイスは、継承判定に基づいて、ターゲットノードをレンダリングして、ドキュメントのドキュメントコンポーネントを作成することができる。
2018508899.tif 000002
【特許請求の範囲】
【請求項１】
ドキュメントコンポーネントを親子関係の形で階層的に配列しているドキュメントを記述する複数のノードを有するドキュメントツリーを記憶するように構成されたメモリと、
前記ドキュメントツリーの子コンポーネントを表現するターゲットノードが、前記ターゲットノードに対するスタイルプロパティの適用を許可するかどうかを記述するスタイリングアクセス許可を識別し、
前記スタイリングアクセス許可に基づいて、前記ターゲットノードのための継承判定を実行して、前記ターゲットノードが、親コンポーネントを表現するソースノードから前記スタイルプロパティを継承するかどうかを決定し、
前記継承判定に基づいて、前記ターゲットノードをレンダリングして、前記ドキュメントのドキュメントコンポーネントを作成する
ように構成された少なくとも１つのプロセッサを有する処理ユニットと、
ユーザに対して前記ドキュメントコンポーネントを表示するように構成されたディスプレイ画面と
を備えているドキュメントレンダリングデバイス。
【請求項２】
前記少なくとも１つのプロセッサは、さらに、前記ターゲットノードのためのデフォルトプロパティアクセス許可を示すスタイリングデフォルトを識別するように構成されている、請求項１に記載のドキュメントレンダリングデバイス。
【請求項３】
前記少なくとも１つのプロセッサは、さらに、前記ターゲットノードの前記スタイルプロパティのためのプロパティアクセスの例外を示す、プロパティの例外を識別するように構成されている、請求項１に記載のドキュメントレンダリングデバイス。
【請求項４】
前記少なくとも１つのプロセッサは、さらに、前記スタイルプロパティのためのデフォルト値のアクセス許可を示すプロパティデフォルトを識別するように構成されている、請求項１に記載のドキュメントレンダリングデバイス。
【請求項５】
前記少なくとも１つのプロセッサは、さらに、前記スタイルプロパティの値のための値アクセスの例外を示す、値の例外を識別するように構成されている、請求項１に記載のドキュメントレンダリングデバイス。
【請求項６】
前記少なくとも１つのプロセッサは、さらに、前記スタイルプロパティの値のための連続した値の範囲を識別するように構成されている、請求項１に記載のドキュメントレンダリングデバイス。
【請求項７】
プラグインと、前記ドキュメントツリーを含むデータコンテンツセットとのうちの少なくとも一方から、前記スタイリングアクセス許可を記述するスタイルシートをインポートするように構成された通信インターフェース
をさらに備えている、請求項１に記載のドキュメントレンダリングデバイス。
【請求項８】
ドキュメントレンダリングアプリケーションを実行する一連の命令を記憶するメモリを有するコンピューティングデバイスであって、
ドキュメントコンポーネントを親子関係の形で階層的に配列しているドキュメントを記述する複数のノードを有するドキュメントツリーを処理し、
前記ドキュメントツリーが、前記ドキュメントツリーのスタイルプロパティのための値の適用を許可するかどうかを記述する値のアクセス許可を識別し、
前記値のアクセス許可に基づいて、前記ドキュメントツリーの子コンポーネントを表現するターゲットノードのための継承判定を実行して、前記ターゲットノードが、親コンポーネントを表現するソースノードから前記スタイルプロパティの前記値を継承するかどうかを決定し、
前記継承判定に基づいて、前記ターゲットノードをレンダリングして、前記ドキュメントのドキュメントコンポーネントを作成し、
ユーザに対して前記ドキュメントを表示する
ように構成されたコンピューティングデバイス。
【請求項９】
方法は、
前記ターゲットノードのためのデフォルトプロパティアクセス許可を示すスタイリングデフォルトを識別するステップ
をさらに含む、請求項８に記載のコンピューティングデバイス。
【請求項１０】
方法は、
前記ターゲットノードの前記スタイルプロパティのためのプロパティアクセスの例外を示す、プロパティの例外を識別するステップ
をさらに含む、請求項８に記載のコンピューティングデバイス。
【請求項１１】
方法は、
前記スタイルプロパティのためのデフォルト値のアクセス許可を示すプロパティデフォルトを識別するステップ
をさらに含む、請求項８に記載のコンピューティングデバイス。
【請求項１２】
方法は、
前記スタイルプロパティの値のための値アクセスの例外を示す、値の例外を識別するステップ
をさらに含む、請求項８に記載のコンピューティングデバイス。
【請求項１３】
方法は、
前記スタイルプロパティの値のための連続した値の範囲を識別するステップ
をさらに含む、請求項８に記載のコンピューティングデバイス。
【請求項１４】
マシン実装された方法であって、
ドキュメントコンポーネントを親子関係の形で階層的に配列しているドキュメントを記述する、複数のノードを有するドキュメントツリーを処理するステップと、
前記ドキュメントツリーの子コンポーネントを表現するターゲットノードが、前記ターゲットノードに対するスタイルプロパティの適用を許可するかどうかを記述するスタイリングアクセス許可を識別するステップと、
前記スタイリングアクセス許可に基づいて、前記ターゲットノードのための継承判定を実行して、前記ターゲットノードが、親コンポーネントを表現するソースノードからスタイルプロパティを継承するかどうかを決定するステップと、
前記継承判定に基づいて、前記ターゲットノードをレンダリングして、前記ドキュメントのドキュメントコンポーネントを作成するステップと、
ユーザに対して前記ドキュメントを表示するステップと
を含む方法。
【請求項１５】
前記継承判定に基づいて、前記ターゲットノードのための制限されたプロパティを識別するステップと、
前記制限されたプロパティのためのソースノードスタイルプロパティの処理を省略するステップと
をさらに含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権情報
[0001]  本出願は、２０１５年３月１８日に出願した米国仮特許出願第６２／１３５，１６１号、および、２０１６年３月１２日に出願した米国非仮特許出願第１５／０６８，５６５号からの優先権を主張するものであり、これらの特許出願の内容は、その全体が、参照により本明細書に組み込まれている。
【背景技術】
【０００２】
[0002]  コンピューティングデバイスは、ドキュメントとして、ユーザに対するプレゼンテーションのためのマークアップ言語において記述されるデータコンテンツセットをレンダリングすることができる。マークアップ言語は、ハイパーテキストマークアップ言語など、ユーザに対して提示されるテキストから注釈を分離するテキストドキュメントに注釈を付けることを容易にする言語である。データコンテンツセットは、複数のノードを有するドキュメントツリーとしてドキュメントを記述することができる。各ノードは、ドキュメントのドキュメントコンポーネントを記述することができる。異なる著者は、ドキュメントの異なるドキュメントコンポーネントを作成することができる。 
【発明の概要】
【０００３】
[0003]  この概要は、詳細な説明の形で、さらに以下で説明される簡略化された形式で概念の選択を導入するために提供される。この概要は、特許請求の範囲の主題の重要な特徴もしくは絶対不可欠な特徴を識別することも意図してもおらず、特許請求の範囲の主題についての範囲を限定するために使用されることも意図してもいない。
【０００４】
[0004]  以下で考察される例は、ドキュメントツリーのソースノードのスタイルプロパティが、そのドキュメントツリーのターゲットノードに適用され得るかどうかを決定することにより、ドキュメントツリーからドキュメントを作成することに関する。ドキュメントレンダリングデバイスは、親子関係においてコンポーネントが階層的に配列されているドキュメントを記述する、複数のノードを有するドキュメントツリーを記憶することができる。ドキュメントレンダリングデバイスは、ドキュメントツリーの子コンポーネントを表現するターゲットノードが、ターゲットノードに対するスタイルプロパティの適用を許可するかどうかを記述するスタイリングアクセス許可を識別することができる。ドキュメントレンダリングデバイスは、スタイリングアクセス許可に基づいて、ターゲットノードについての継承判定を実行して、ターゲットノードが、親コンポーネントを表現するソースノードからスタイルプロパティを継承するかどうかを決定することができる。ドキュメントレンダリングデバイスは、継承判定に基づいて、ターゲットノードをレンダリングして、ドキュメントのドキュメントコンポーネントを作成することができる。 
【０００５】
[0005]  上記で列挙された利点および特徴と、他の利点および特徴とが取得され得るやり方を説明するために、より詳細な説明が、提示され、また添付の図面の中で例証されるその特定の例を参照することにより、レンダリングされることになる。これらの図面が、典型的な例を示すだけであり、またそれゆえに、その範囲を限定するようには考えられるべきではないことを理解して、実装形態は、添付の図面の使用を通して、さらなる特異性および詳細を用いて記述され、また説明されるであろう。
【図面の簡単な説明】
【０００６】
【図１】[0006]ブロック図の形で、コンピューティングデバイスの１つの例を示す図である。
【図２】[0007]ブロック図の形で、ドキュメントレンダリングプロセスの１つの例を示す図である。
【図３】[0008]ブロック図の形で、カスケードレベル階層構造の１つの例を示す図である。
【図４】[0009]ブロック図の形で、カスケードスタイルシートアーキテクチャの１つの例を示す図である。
【図５】[0010]フローチャートの形で、ドキュメントを作成する方法の１つの例を示す図である。
【図６】[0011]フローチャートの形で、継承判定基準を伝達するための方法の１つの例を示す図である。
【図７】[0012]フローチャートの形で、カスケードスタイルシートを処理するための方法の１つの例を示す図である。
【発明を実施するための形態】
【０００７】
[0013]  例が、以下で、詳細に考察される。特定の実装形態が、考察されるが、これは例証の目的のためだけに行われることを理解すべきである。当業者なら、他のコンポーネントおよび構成が、本開示の主題の精神および範囲を離れることなく、使用され得ることを認識するであろう。それらの実装形態は、ドキュメントレンダリングデバイス、コンピューティングデバイス、またはマシン実装された方法とすることができる。
【０００８】
[0014]  一例においては、ドキュメントレンダリングデバイスは、ドキュメントツリーのソースノードのスタイルプロパティが、そのドキュメントツリーのターゲットノードに適用され得るかどうかを決定することにより、ドキュメントツリーからドキュメントを作成することができる。ドキュメントレンダリングデバイスは、親子関係において、コンポーネントが階層的に配列されているドキュメントを記述する、複数のノードを有するドキュメントツリーを記憶することができる。ドキュメントレンダリングデバイスは、ドキュメントツリーの子コンポーネントを表現するターゲットノードが、ターゲットノードに対するスタイルプロパティの適用を許可するかどうかを記述するスタイリングアクセス許可を識別することができる。ドキュメントレンダリングデバイスは、スタイリングアクセス許可に基づいて、ターゲットノードについての継承判定を実行して、ターゲットノードが、親コンポーネントを表現するソースノードからスタイルプロパティを継承するかどうかを決定することができる。ドキュメントレンダリングデバイスは、継承判定に基づいて、ターゲットノードをレンダリングして、ドキュメントのドキュメントコンポーネントを作成することができる。
【０００９】
[0015]  子コンポーネントを表現するターゲットノードの内部でスタイリングアクセス許可を作成することにより、ドキュメントの著者は、親コンポーネントからのスタイリスティックブリードからその子コンポーネントを保護することができる。ドキュメントの著者は、子コンポーネントの特定のスタイルプロパティを分離して、スタイリングのために使用可能であり、またはスタイリングから保護されるようにすることができる。より粒度の細かいレベルの上では、著者は、スタイルプロパティのためのプロパティ値の特定の範囲を指定することができる。それゆえに、それぞれがドキュメントのドキュメントコンポーネントを作成する幾人かの著者を有する協調環境においては、主要ドキュメントの著者は、ドキュメントの全体のスタイルのまとまりを維持することができる。追加して、著者は、より高い順序のドキュメントコンポーネントが、より低い順序のドキュメントコンポーネントの個別のスタイルを上書きすることを防止することができる。
【００１０】
[0016]  ウェブデザイナーは、親子関係において階層的にドキュメントのウェブページを配列することができる。複数のノードを有するドキュメントツリーは、ドキュメントおよびコンポーネントのウェブページを表現することができる。親ページは、一般的に、ホストと呼ばれ、またはドキュメントツリーにおいてソースノードによって表現されることができる。子ページは、一般的に、ドキュメントツリーにおいてターゲットノードによって表現されることができる。これらのページのスタイリングに関して、スタイルは、合成方法に応じて完全に制限、または完全に許可されることができる。
【００１１】
[0017]  ドキュメントレンダリングデバイスは、カスケードスタイルシートを使用して、複数の要素を通してスタイルプロパティを適用することができ、スタイルルールを照合している。カスケードと継承として、スタイルシートは、複数の要素を通してプロパティ値を伝搬させることができる。カスケードスタイルシートは、ディスプレイ画面、紙、音声出力、他のメディアなど、様々な出力デバイスを通して、ハイパーテキストマークアップ言語または拡張可能マークアップ言語を用いて記述されるように、構造化されたドキュメントのレンダリングを記述するための言語構造である。
【００１２】
[0018]  カスケードにより、複数のスタイルシートは、ドキュメントのプレゼンテーションに影響を及ぼすことができるようになる可能性がある。スタイルプロパティを記述する異なる宣言が、同じスタイルプロパティの組合せのための値を設定するときに、ドキュメントレンダリングデバイスは、カスケードスタイルシートを使用して、競合を解決することができる。スタイルシートは、そのスタイルシートが、他のスタイルシートの中のスタイルプロパティとの競合を解決するためのシート階層構造を示すカスケードレベルを有することができる。反対に、スタイルシートが、スタイルプロパティのための値を設定することに失敗するときに、ドキュメントレンダリングデバイスは、継承と、スタイルプロパティの初期値とを使用して、値を見出すことができる。
【００１３】
[0019]  ドキュメントレンダリングデバイスは、スタイルシートのソースに基づいて、または他の判断基準により、カスケードレベルを決定することができる。それゆえに、例えば、ウェブブラウザによって課されるスタイル選択は、プラグインにより、またはダウンロードされているウェブページによって変更されることもある。カスケードスタイルシートのための要素スタイリングアクセス制御言語を使用して、スタイルシート著者は、スタイリングをページの特定の要素だけに制限して、例えば、他のスタイルシートからの思いがけないスタイリングを防止することができる。構成されたシナリオにおいては、スタイルシート著者は、子によって定義されるルールに基づいて、子要素をスタイリングするホストアクセス許可を得ることができる。
【００１４】
[0020]  カスケードスタイルシートは、現在、スタイルシートの内部のスタイル「分離」を提供することができない。セレクタを経由して適用されるスタイルは、ドキュメントの内部で適用される可能性がある。特定性および順序により、どのプロパティが適用されるかを制御することができるが、個別の要素は、スタイリングされることから「保護されていない」可能性がある。
【００１５】
[0021]  多数のデザイナーが、ウェブサイトなどのドキュメントの上で協力するときに、彼らは、独立して作業することができる。彼らのそれぞれのスタイルシートが、一緒にされるときに、これらのスタイルシートは、過度に包括的なセレクタ、または過度に特有のセレクタに起因して、互いに競合する可能性があり、スタイリング「ブリード（広がり）」の取り消しを引き起こす。著者は、ドキュメントの内部のターゲット要素のためのプロパティスタイリングに対する１組の強制を記述したいと思う場合がある。ｉｆｒａｍｅハイパーテキストマークアップ言語（HTML: Hypertext Markup Language）要素を経由して２つのドキュメントを一緒にし、またはシャドウ−ドキュメントオブジェクトモデル（DOM: document object model）においてドキュメントに要素ツリーを追加することができる構成されたウェブページの場合には、望ましくないスタイリング「ブリード」を防ぐことは、スタイルが、自然に通常「ブリードする」場合にはさらに重要になる。他の場合には、現在の規則は、スタイル「ブリード」が、制御された状況下で有用である場合でさえも、そのようなスタイル「ブリード」を防止する可能性がある。
【００１６】
[0022]  強化されたスタイル制御により、スタイルシート著者は、与えられた要素に適用する、または適用しないスタイルを制御することができるようになる。強化されたスタイル制御は、ローカルなスタイルシートルール、または境界を越えるスタイルシートルールのいずれかについて、様々な粒度のレベルで制御を提供することができる。強化されたスタイル制御は、要素レベルにおけるプロパティの全適用または適用なし、要素単位で特定のプロパティをスタイリングすること、あるいはプロパティレベルで特定のプロパティ値をスタイリングすることを可能にすることができる。
【００１７】
[0023]  「＞＞＞」シャドウＤＯＭ境界コンビネータの動作を修正することにより、スタイルシートは、「境界」スタイリングに関してコンビネータをアクセス許可制御の支配下に置くことができる。スタイルシートは、「境界」スタイリング制御を使用して特定のシナリオにおいてスタイル「ブリード」を許可しながら、ｉｆｒａｍｅ境界に適用されるようにコンビネータを拡張することができる。
【００１８】
[0024]  シャドウＤＯＭのための現在のスタイリングは、デフォルトで、スタイルの完全「ブリード」を可能にすることができる。子コンポーネントは、親コンポーネントが、子コンポーネントの上で実行することができるアクションに関する権限を有することができる。強化されたスタイリスティック制御が有効であるようにするために、子コンポーネントは、スタイリスティックルールに影響を及ぼす、またはスタイリスティックルールを変更し得る、子コンポーネントへのアクセスを無効にすることができる。スタイルシートは、ターゲットノードが、ターゲットノードに対するスタイルプロパティの適用を許可するかどうかを記述するスタイリングアクセス許可を構築することができる。スタイリングアクセス許可は、ターゲットノードにおいて、スタイルプロパティに対するアクセスを拒否し、または許可するスタイリングデフォルトを有することができる。スタイルシートは、ソースノードがアクセスすることができるスタイルプロパティを示す、プロパティの例外をリストアップすることができる。スタイルシートは、異なるプロパティの例外セレクタを使用して、異なる粒度の制御を適用することができる。
【００１９】
[0025]  要素レベルにおいて、カスケードスタイルシートプロパティは、セレクタによってマッチされる要素にスタイリスティック制御を適用することができる。例えば、セレクタは、「ａｌｌｏｗｅｄ：  ａｌｌ  ｌｏｃａｌ」を定義して、ローカル著者定義に対して許可される、要素のデフォルトアクセス許可を設定することができる。セレクタは、「ａｌｌｏｗｅｄ：  ａｌｌ  ｂｏｕｎｄａｒｙ」を定義して、境界を越えるアプリケーションに対して許可される、要素のデフォルトアクセス許可を設定することができる。セレクタは、「ａｌｌｏｗｅｄ：  ｎｏｎｅ  ｂｏｕｎｄａｒｙ」を定義して、境界を越えるアプリケーションに対して制限される、要素のデフォルトアクセス許可を設定することができる。セレクタは、「ａｌｌｏｗｅｄ：  ｎｏｎｅ  ｌｏｃａｌ  ｂｏｕｎｄａｒｙ」を定義して、ローカル著者と境界を越えるアプリケーションに対して制限される、要素のデフォルトアクセス許可を設定することができる。セレクタは、「ａｌｌｏｗｅｄ：  ａｕｔｏ」を定義して、ローカル著者に対して許可される、要素のデフォルトアクセス許可と、境界を越えるアプリケーションのためのアプリケーション依存アクセス許可とを、設定することができる。
【００２０】
[0026]  スタイリスティック制御は、シンタックスを提供して、デフォルトアクセス許可によって定義されるデフォルトに対する例外として個別のプロパティと、プロパティ値とを定義することができる。デフォルトが定義されない場合、デフォルトアクセス許可は、自動デフォルトに戻ることができる。例えば、セレクタは、「ａｌｌｏｗｅｄ：  ａｌｌ  ｍｙ−ｅｘｃｅｐｔｉｏｎｓ  ｌｏｃａｌ」を定義して、例外のリストを用いて、ローカル著者定義に対して許可される、要素のデフォルトアクセス許可を設定することができる。セレクタは、「ａｌｌｏｗｅｄ：  ｎｏｎｅ  ｍｙ−ｅｘｃｅｐｔｉｏｎｓ  ｌｏｃａｌ」を定義して、例外のリストを用いて、境界を越えるアプリケーションに対して制限される、要素のデフォルトアクセス許可を設定することができる。例えば、リストされた例外により、
＠ａｌｌｏｗｅｄ  ｍｙ−ｅｘｃｅｐｔｉｏｎｓ  ｛ 
ｂａｃｋｇｒｏｕｎｄ  ｎｏｎｅ； 
ｃｏｌｏｒ  ｎｏｎｅ；
ｂｏｒｄｅｒ  ｎｏｎｅ；
｝
を示すことができる。
【００２１】
[0027]  さらに、スタイルアクセス許可は、識別子名のカンマで分離されたリストを使用して、ルールを組み合わせることができる。セレクタは、「ａｌｌｏｗｅｄ：  ｃｏｌｏｒ−ｅｘｃｅｐｔｉｏｎｓ，  ｂｏｘ−ｍｏｄｅｌ−ｅｘｃｅｐｔｉｏｎｓ；」を定義して、ホスティングコンポーネントに応じて、境界を越えるアプリケーションが、アプリケーション依存になるようにするために要素のデフォルトアクセス許可を設定することができる。第１の例外により、
＠ａｌｌｏｗｅｄ  ｃｏｌｏｒ−ｅｘｃｅｐｔｉｏｎｓ  ｛ 
Ｃｏｌｏｒ  ａｌｌ； 
｝ 
＠ａｌｌｏｗｅｄ  ｂｏｘ−ｍｏｄｅｌ−ｅｘｃｅｐｔｉｏｎｓ  ｛ 
ｄｉｓｐｌａｙ  ｎｏｎｅ； 
｝
を示すことができる。
両方のプロパティの例外は各ルールからマージされ、その競合は、リストされた順序に基づいて解決されてもよい。
【００２２】
[0028]  宣言の適用可能性を、特定のターゲットドメインだけを含めるように指定することができる。例えば、セレクタは、「ａｌｌｏｗｅｄ：  ｄｅｆｓ  ｂｏｕｎｄａｒｙ  ｎｏｎｅ」を定義して、宣言の内部の許可を指定することができる。宣言により、
＠ａｌｌｏｗｅｄ  ｄｅｆｓ  ｛
＠ｄｏｃｕｍｅｎｔ  ｄｏｍａｉｎ−ｏｆ−ａｐｐｌｉｃａｂｉｌｉｔｙ．ｃｏｍ  ｛
ｄｉｓｐｌａｙ  ｎｏｎｅ；
ｂａｃｋｇｒｏｕｎｄ−ｃｏｌｏｒ  ａｌｌ；
ｖｉｓｉｂｉｌｉｔｙ  ｎｏｎｅ  ｛ｈｉｄｄｅｎ；｝
｝
｝
を示すことができる。
【００２３】
[0029]  より粒度の細かい制御により、カスケードの形で各レベルにおけるアクセスを許可、または制限するアクセス許可を適用することができる。最終的に、セレクタのシンタックスにより、自然ルールの特異性が、ドキュメントの中でマッチされるあらゆる要素に最終結果を適用することができる。次いで、ターゲットノードは、さらなるスタイルシートが評価されるときに、要素レベルで最終のアクセス許可されたフラグを適用することができる。
【００２４】
[0030]  関数値「ｏｒ」は、列挙されたタイプを取り扱うことができる。例えば、このインスタンスにおけるシンタックスにより、以下のように示すことができる。
＠ａｌｌｏｗｅｄ  ｂｌｏｃｋｙ−ｅｘｃｅｐｔｉｏｎｓ  ｛
ｄｉｓｐｌａｙ：  ｏｒ（ｉｎｌｉｎｅ，  ｂｌｏｃｋ，  ｉｎｌｉｎｅ−ｂｌｏｃｋ，  ｒｕｎ−ｉｎ）；
｝
【００２５】
[0031]  代わりに、関数値は、値の範囲をリストすることができる。例えば、ターゲットノードは、以下のシンタックスを使用して、ディスプレイ値のサブセットの内部の変化を許可することができる。
＠ａｌｌｏｗｅｄ  ｂｌｏｃｋｙ−ｅｘｃｅｐｔｉｏｎ  ｛
ｄｉｓｐｌａｙ：  ｂｎｆ（ｂｌｏｃｋ  ｜  ｉｎｌｉｎｅ−ｂｌｏｃｋ  ｜  ｉｎｌｉｎｅ）；
｝
【００２６】
[0032]  図１は、データレンダリングデバイスとしての役割を果たすことができる例示のコンピューティングデバイス１００のブロック図を示すものである。コンピューティングデバイス１００は、ハードウェアと、ソフトウェアと、ファームウェアと、システムオンチップ技術とのうちの１つまたは複数を組み合わせて、データレンダリングデバイスを実装することができる。コンピューティングデバイス１００は、バス１１０と、処理ユニット１２０と、メモリ１３０と、データストレージ１４０と、入力デバイス１５０と、出力デバイス１６０と、通信インターフェース１７０とを含むことができる。バス１１０、または他のコンポーネント相互接続は、コンピューティングデバイス１００のコンポーネントの間の通信を可能にすることができる。
【００２７】
[0033]  処理ユニット１２０は、１組の命令を解釈し、また実行する少なくとも１つの従来のプロセッサまたはマイクロプロセッサを含むことができる。少なくとも１つのプロセッサは、ドキュメントツリーの子コンポーネントを表現するターゲットノードが、ターゲットノードに対するスタイルプロパティの適用を許可するかどうかを記述するスタイリングアクセス許可を識別するように構成することができる。少なくとも１つのプロセッサはまた、ターゲットノードのためのデフォルトプロパティアクセス許可を示すスタイリングデフォルトを識別するように構成されてもよい。少なくとも１つのプロセッサは、さらに、ターゲットノードのスタイルプロパティのためのプロパティアクセスの例外を示す、プロパティの例外を示すように構成されてもよい。少なくとも１つのプロセッサは、さらに、スタイルプロパティのためのデフォルト値のアクセス許可を示すプロパティデフォルトを識別するように構成されてもよい。少なくとも１つのプロセッサは、ドキュメントツリーが、ドキュメントツリーのスタイルプロパティのための値の適用を許可するかどうかを記述する値のアクセス許可を識別することができる。少なくとも１つのプロセッサは、さらに、スタイルプロパティの値のための値アクセスの例外を示す、値の例外を識別するように構成されてもよい。少なくとも１つのプロセッサは、さらに、スタイルプロパティの値のための連続した値の範囲を識別するように構成されてもよい。少なくとも１つのプロセッサは、継承判定に基づいて、制限されたプロパティを識別するように構成されてもよい。
【００２８】
[0034]  少なくとも１つのプロセッサは、追加して、継承判定に基づいて、制限されたプロパティを識別するとすぐに、制限されたプロパティのためのソースノードスタイルプロパティの処理を省略するように構成されてもよい。少なくとも１つのプロセッサは、さらに、スタイリングアクセス許可に基づいて、ターゲットノードのための継承判定を実行して、ターゲットノードが、親コンポーネントを表現するソースノードからスタイルプロパティを継承するかどうかを決定するように構成されてもよい。少なくとも１つのプロセッサは、さらに、値のアクセス許可に基づいて、ドキュメントツリーの子コンポーネントを表現するターゲットノードのための継承判定を実行して、ターゲットノードが、親コンポーネントを表現するソースノードからスタイルプロパティの値を継承するかどうかを決定するように構成されてもよい。少なくとも１つのプロセッサは、継承判定に基づいて、ターゲットノードをレンダリングして、ドキュメントのドキュメントコンポーネントを作成することができる。少なくとも１つのプロセスは、さらに、ドキュメントツリーによって表現されるドキュメントの中へとドキュメントコンポーネントを挿入するように構成されてもよい。
【００２９】
[0035]  メモリ１３０は、プロセッサ１２０による実行のための情報および命令を記憶するランダムアクセスメモリ（RAM）または別のタイプのダイナミックデータストレージとすることができる。メモリ１３０はまた、プロセッサ１２０による命令の実行中に使用されるテンポラリ変数または他の中間情報を記憶することもできる。メモリ１３０は、一連の命令を記憶して、ドキュメントレンダリングアプリケーションを実行するように構成されてもよい。メモリ１３０は、ドキュメントコンポーネントが親子関係の形で階層的に配列されているドキュメントを記述する複数のノードを有するドキュメントツリーを記憶するように構成されてもよい。メモリ１３０は、著者カスケードレベルにおける著者スタイルシートとしてスタイリングアクセス許可を記述するスタイルシートを記憶するように構成されてもよい。
【００３０】
[0036]  データストレージ１４０は、プロセッサ１２０のための静的情報と命令とを記憶する従来のＲＯＭデバイス、または別のタイプのスタティックデータストレージを含むことができる。データストレージ１４０は、例えば、デジタルビデオディスクなど、磁気的または光学的な記録媒体や、その対応するドライブなど、任意のタイプの有形マシン読取り可能媒体を含むことができる。有形マシン読取り可能媒体は、信号とは対照的に、マシン読取り可能コードまたは命令を記憶する物理的媒体である。本明細書において説明されるようにコンピュータ読取り可能媒体の上に命令を記憶していることは、伝搬が、命令を転送するのに対して、その上に命令を記憶しているコンピュータ読取り可能媒体と共に、起こる可能性があるなど、命令を記憶するので、命令が伝搬されている、または送信されていることとは区別可能である。それゆえに、その他の方法で指摘されない限り、コンピュータ読取り可能媒体／その上に命令を記憶している媒体に対する言及は、この形態、または類似した形態において、データが記憶され、または保持され得る有形の媒体のことを言及している。データストレージ１４０は、１つまたは複数のプロセッサによって実行されるときに、１つまたは複数のプロセッサが、本方法を実行するようにさせる方法を詳述する１組の命令を記憶することができる。データストレージ１４０はまた、データコンテンツセットと、スタイルシートとを記憶するためのデータベースまたはデータベースインターフェースとすることもできる。
【００３１】
[0037]  入力デバイス１５０は、ユーザが、キーボード、マウス、音声認識デバイス、マイクロフォン、ヘッドセット、タッチ画面１５２、タッチパッド１５４、ジェスチャ認識デバイス１５６などのコンピューティングデバイス１００に対して情報を入力することを可能にする１つまたは複数の従来のメカニズムを含むことができる。出力デバイス１６０は、ディスプレイ画面１６２、プリンタ、１つまたは複数のスピーカ１６４、ヘッドセット、バイブレータ、またはメモリ、磁気ディスク、光ディスクなどの媒体、および対応するディスクドライブを含めて、ユーザに対して情報を出力する１つまたは複数の従来のメカニズムを含むことができる。ディスプレイ画面１６２は、ユーザに対してドキュメントコンポーネントを表示するように構成されてもよい。
【００３２】
[0038]  通信インターフェース１７０は、コンピューティングデバイス１００が、他のデバイスまたはネットワークと通信することを可能にする任意のトランシーバのようなメカニズムを含むことができる。通信インターフェース１７０は、ネットワークインターフェースまたはトランシーバインターフェースを含むことができる。通信インターフェース１７０は、ワイヤレスインターフェース、有線インターフェース、または光インターフェースとすることができる。通信インターフェース１７０は、プラグインと、ドキュメントツリーを含むデータコンテンツセットとのうちの少なくとも一方からスタイリングアクセス許可を記述するスタイルシートをインポートするように構成されてもよい。通信インターフェース１７０は、ユーザカスケードレベルにおけるユーザスタイルシートとしてスタイリングアクセス許可を記述するスタイルシートをインポートするように構成されてもよい。
【００３３】
[0039]  コンピューティングデバイス１００は、プロセッサ１２０が、例えば、メモリ１３０、磁気ディスク、光ディスクなど、コンピュータ読取り可能媒体の中に含まれる命令のシーケンスを実行することに応じて、そのような機能を実行することができる。そのような命令は、データストレージ１４０など、別のコンピュータ読取り可能媒体から、または通信インターフェース１６０を経由して別個のデバイスからメモリ１３０の中に読み込まれてもよい。
【００３４】
[0040]  図２は、ブロック図の形で、ドキュメントレンダリングプロセス２００の１つの例を示すものである。ドキュメントレンダリングデバイスは、ドキュメントツリー２１０としてデータコンテンツセットを体系化するマークアップ言語において書かれたデータコンテンツセットを処理することができる。ドキュメントツリー２１０は、１組の１つまたは複数のノードを有することができる。ドキュメントツリー２１０のノードは、ソースノード２１２、またはターゲットノード２１４とすることができる。ソースノード２１２は、ターゲットノード２１４のためにドキュメントツリーの内部でコンテキストまたは構造を提供することができる。ノードは、ドキュメントツリー２１０の中のより低位のノードのためのソースノード２１２とすることができ、またドキュメントツリー２１０の中のより高位のノードのためのターゲットノード２１４とすることができる。ドキュメントレンダリングデバイスは、ドキュメントツリー２１０をドキュメント２３０の中へとレンダリングする２２０ことができる。ドキュメントツリー２１０の各ノードは、ドキュメント２３０を構成するドキュメントコンポーネント２３２へとレンダリングされ得る２２０。例えば、ドキュメントコンポーネント２３２は、グラフ、テキストピース、オーディオクリップ、ビデオ、アプレット、メニュー、またはフレームとすることができる。
【００３５】
[0041]  ドキュメントレンダリングデバイスは、セットスタイルプロパティを記述する１組の１つまたは複数のスタイルシートに基づいて、各ドキュメントコンポーネント２３２をフォーマットすることができる。ドキュメントレンダリングデバイスは、いくつかのソースのうちの任意の１つを経由してスタイルシートを導入することができる。ドキュメントレンダリングデバイスは、１組のカスケードスタイルシートを使用して、複数のスタイルシートから競合するプロパティの間で選択することができる。より高位のカスケードレベルからのスタイルシートのスタイルプロパティは、より低位のカスケードレベルからのスタイルシートの競合するスタイルプロパティを上書きすることができる。例えば、高いカスケードレベルを有するスタイルシートが、赤色のカラーを有するようにテキストを記述し、また低いカスケードレベルを有するスタイルシートが、緑色のカラーを有するようにテキストを記述する場合、レンダリングされたドキュメントのテキストは、赤色のカラーを有する。ドキュメントレンダリングデバイスは、スタイルシートのソースに基づいて、カスケードレベルを割り当てることができる。
【００３６】
[0042]  図３は、ブロック図の形で、カスケードレベル階層構造３００の１つの例を示すものである。最低のカスケードレベルにおいて、ドキュメントレンダリングデバイスは、通常ユーザエージェントカスケードレベル３０２において、ブラウザなどのユーザエージェントアプリケーションからユーザエージェントスタイルシートを受信することができる。より高位のカスケードレベルにおいて、ドキュメントレンダリングデバイスは、通常ユーザカスケードレベル３０４において、ユーザインターフェースアドインなどのユーザアプリケーションからユーザスタイルシートを受信することができる。ドキュメントレンダリングデバイスは、通常著者カスケードレベル３０６において、ウェブページなどのデータコンテンツセットから著者スタイルシートを受信することができる。ドキュメントレンダリングデバイスは、通常オーバーライドカスケードレベル３０８において、アプリケーションなどのアプリケーションスクリプトからオーバーライドスタイルシートを受信することができる。ドキュメントレンダリングデバイスは、通常アニメーションカスケードレベル３１０において、アニメーションからアニメーションスタイルシートを受信することができる。
【００３７】
[0043]  スタイルシートは、重要というプロパティ階層構造インジケータラベルを使用して、通常カスケードレベルの上部で、優先順位を付け直された順序のカスケードレベルを作成することができる。重要というプロパティ階層構造インジケータラベルは、テキスト文字列「！ｉｍｐｏｒｔａｎｔ」を使用して記述されることもある。通常カスケードレベルの上で、ドキュメントレンダリングデバイスは、重要著者カスケードレベル３１２においてデータコンテンツセットから重要著者スタイルシートを受信することができる。ドキュメントレンダリングデバイスは、重要オーバーライドカスケードレベル３１４においてアプリケーションスクリプトから重要オーバーライドスタイルシートを受信することができる。ドキュメントレンダリングデバイスは、重要ユーザカスケードレベル３１６においてユーザアプリケーションから重要ユーザスタイルシートを受信することができる。ドキュメントレンダリングデバイスは、重要ユーザエージェントカスケードレベル３１８においてユーザエージェントアプリケーションから重要ユーザエージェントスタイルシートを受信することができる。最高のカスケードレベルにおいては、ドキュメントレンダリングデバイスは、移行スタイルシートを受信して、移行アニメーションカスケードレベル３２０においてユーザエージェントアプリケーションからプロパティ値を移行することができる。
【００３８】
[0044]  図４は、ブロック図の形で、カスケードスタイルシートアーキテクチャ４００の１つの例を示すものである。カスケードスタイルシート４０２は複数のターゲットノードリスティング４０４を有することができ、それぞれが、ドキュメントに対して、ターゲットノードがターゲットノードにスタイルプロパティを適用することを許可するか、または制限するかを記述するスタイリングアクセス許可を有する。ターゲットノードリスティング４０４は、ターゲットノードのためのデフォルトプロパティアクセス許可を示すスタイリングデフォルト４０６を設定することができる。デフォルトプロパティアクセス許可により、ドキュメントツリーの中の各ソースノードに対して、プロパティの例外４０８において明示的に指定されない限り、ターゲットノードの中の任意のスタイルプロパティを変更することを制限、または許可することを示すことができる。プロパティの例外４０８は、デフォルトプロパティアクセス許可とは異なるアクセス許可を有するスタイルプロパティを記述することができる。例えば、スタイリングデフォルト４０６により、ソースノードに対して、ターゲットノードがスタイルプロパティを適用することを制限することを示す場合、このターゲットノードのためのプロパティの例外４０８により、テキストのカラーが、ソースノードによって変更されることを可能にすることができる。
【００３９】
[0045]  追加して、それぞれのプロパティの例外４０８は、スタイルプロパティのためのデフォルト値のアクセス許可を示すプロパティデフォルト４１０を有することができる。値のアクセス許可は、スタイルプロパティのための値の適用が、許可されるかどうかを記述する。デフォルト値のアクセス許可により、ソースノードに対して、値の例外４１２において明示的に指定されない限り、ターゲットノードの中の特定のスタイルプロパティを変更することを制限、または許可することを示すことができる。値のアクセス許可は、スタイルプロパティの値のための値アクセスの例外を示すことができる。例えば、プロパティの例外４０８により、ターゲットノードが、ターゲットノードのテキストのカラーを変更することをソースノードに対して一般に制限することを示す場合に、値の例外４１２は、テキストのカラーが、ソースノードによって青色または緑色に変更されることを可能にすることができる。代わりに、ターゲットノードは、スタイルプロパティの値のための連続した値の範囲４１４を設定することができる。例えば、ターゲットノードは、ソースノードが、ドキュメントコンポーネントの幅を４０ピクセルと、５０ピクセルとの間にあるように設定することができることを規定することができる。さらに、ターゲットノードリスティング４０４は、カスケードスタイルシート４０２が、複数のノードを通して使用されるときに、インスタンスにおいてソースノードの例外４１６をリストすることができる。ソースノードの例外４１６は、スタイリングデフォルト４０６とは異なるアクセス許可を有するソースノードを記述することができる。
【００４０】
[0046]  図５は、フローチャートの形で、ドキュメントを作成する方法５００の１つの例を示すものである。ドキュメントレンダリングデバイスは、データコンテンツセットに適用されるようにフォーマッティングを記述するスタイルプロパティを有するスタイルシートを受信することができる（ブロック５０２）。ドキュメントレンダリングデバイスが、全体のドキュメントの一部分としてスタイルシートを受信する場合（ブロック５０４）、ドキュメントレンダリングデバイスは、著者カスケードレベルにおける著者スタイルシートとしてスタイリングアクセス許可を記述するスタイルシートを読み取ることができる（ブロック５０６）。ドキュメントレンダリングデバイスは、著者カスケードレベルにおける著者スタイルシートをドキュメントレンダリングデバイスのメモリに記憶することができる（ブロック５０８）。ドキュメントレンダリングデバイスが、レンダリングアプリケーションのためのプラグインの一部分としてスタイルシートを受信する場合（ブロック５０４）、ドキュメントレンダリングデバイスは、ユーザカスケードレベルにおけるユーザスタイルシートとしてスタイリングアクセス許可を記述するスタイルシートをインポートすることができる（ブロック５１０）。ドキュメントレンダリングデバイスは、ユーザカスケードレベルにおけるユーザスタイルシートをドキュメントレンダリングデバイスのメモリに記憶することができる（ブロック５０８）。ドキュメントレンダリングデバイスは、ドキュメントコンポーネントが、親子関係の形で階層的に配列されているドキュメントを記述する複数のノードを有するドキュメントツリーを処理することができる（ブロック５１２）。ドキュメントレンダリングデバイスは、ドキュメントコンポーネントからドキュメントを作成することができる（ブロック５１４）。ドキュメントレンダリングデバイスは、ユーザに対して、ドキュメントの中でドキュメントコンポーネントを表示することができる（ブロック５１６）。
【００４１】
[0047]  図６は、フローチャートの形で、ドキュメントコンポーネントを作成するための継承判定基準を伝達するための方法６００の１つの例を示すものである。カスケードスタイルシートは、ドキュメントツリーのターゲットノードのためのスタイリングアクセス許可を設定することができる（ブロック６０２）。カスケードスタイルシートは、ターゲットノードのためのデフォルトプロパティアクセス許可を示すスタイリングデフォルトを設定することができる（ブロック６０４）。カスケードスタイルシートは、ターゲットノードのスタイルプロパティのためのプロパティアクセスの例外を示す、プロパティの例外を設定することができる（ブロック６０６）。スタイルプロパティが、連続した値の範囲を有する場合（ブロック６０８）、カスケードスタイルシートは、スタイルプロパティの値のための連続した値の範囲を設定することができる（ブロック６１０）。スタイルプロパティが、離散的な値の範囲を有する場合（ブロック６０８）、カスケードスタイルシートは、スタイルプロパティのためのデフォルト値のアクセス許可を示すプロパティデフォルトを設定することができる（ブロック６１２）。カスケードスタイルシートは、スタイルプロパティの値のための値アクセスの例外を示す、値の例外を設定することができる（ブロック６１４）。
【００４２】
[0048]  図７は、フローチャートの形で、カスケードスタイルシートを処理するための方法７００の１つの例を示すものである。ドキュメントレンダリングデバイスは、レンダリングするためのターゲットノードを選択することができる（ブロック７０２）。ドキュメントレンダリングデバイスは、ドキュメントツリーの子コンポーネントを表現するターゲットノードが、ターゲットノードに対するスタイルプロパティの適用を許可するかどうかを記述するスタイリングアクセス許可を識別することができる（ブロック７０４）。ドキュメントレンダリングデバイスは、ターゲットノードのためのデフォルトプロパティアクセス許可を示すスタイリングデフォルトを識別することができる（ブロック７０６）。ドキュメントレンダリングデバイスは、ターゲットノードのスタイルプロパティのためのプロパティアクセスの例外を示す、プロパティの例外を識別することができる（ブロック７０８）。ドキュメントレンダリングデバイスは、ドキュメントツリーが、ドキュメントツリーのスタイルプロパティのための値の適用を許可するかどうかを記述する値のアクセス許可を識別することができる（ブロック７１０）。スタイルプロパティが、連続した値の範囲を有する場合（ブロック７１２）、ドキュメントレンダリングデバイスは、スタイルプロパティの値のための連続した値の範囲を識別することができる（ブロック７１４）。スタイルプロパティが、離散的な値の範囲を有する場合（ブロック７１２）、ドキュメントレンダリングデバイスは、スタイルプロパティのためのデフォルト値のアクセス許可を示すプロパティデフォルトを識別することができる（ブロック７１６）。ドキュメントレンダリングデバイスは、スタイルプロパティの値のための値アクセスの例外を示す、値の例外を識別することができる（ブロック７１８）。ドキュメントレンダリングデバイスは、スタイリングアクセス許可または値のアクセス許可に基づいて、子コンポーネントを表現するターゲットノードに対する継承判定を実行して、ターゲットノードが、親コンポーネントを表現するソースノードからのスタイルプロパティから値を継承することができるかどうかを決定することができる（ブロック７２０）。ドキュメントレンダリングデバイスが、継承判定に基づいて、制限されたプロパティを識別する場合（ブロック７２２）、ドキュメントレンダリングデバイスは、制限されたプロパティに対するソースノードスタイルプロパティの処理を省略することができ、処理リソースが保たれる（ブロック７２４）。ドキュメントレンダリングデバイスは、継承判定に基づいて、ターゲットノードをレンダリングして、ドキュメントのドキュメントコンポーネントを作成することができる（ブロック７２６）。ドキュメントレンダリングデバイスは、ドキュメントの中へとドキュメントコンポーネントを挿入することができる（ブロック７２８）。
【００４３】
[0049]  主題は、構造的特徴および／または方法論的動作に特有の言語で説明されてきているが、添付の特許請求の範囲における主題は、必ずしも、上記で説明された特定の特徴または動作だけに限定されるとは限らないことを理解すべきである。もっと正確に言えば、上記で説明された特定の特徴および動作は、特許請求の範囲を実装するための例示の形態として開示される。
【００４４】
[0050]  本発明の範囲内の例はまた、コンピュータ実行可能な命令またはデータ構造を搬送し、またはその上に記憶するためのコンピュータ読取り可能ストレージ媒体を含むこともできる。そのようなコンピュータ読取り可能ストレージ媒体は、汎用コンピュータまたは専用コンピュータによってアクセスされ得る任意の使用可能な媒体とすることができる。例として、また限定するものではないが、そのようなコンピュータ読取り可能ストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気データストレージ、あるいはコンピュータ実行可能な命令もしくはデータ構造の形態で、望ましいプログラムコード手段を搬送し、または記憶するために使用され得る任意の他の媒体を備えていることができる。上記の組合せもまた、コンピュータ読取り可能ストレージ媒体の範囲内に含められるべきである。
【００４５】
[0051]  例はまた、分散型コンピューティング環境において実行される可能性もあり、ここでは、タスクは、通信ネットワークを通して（ハードワイヤードリンク、ワイヤレスリンクによるか、またはそれらの組合せによるかのいずれかで）リンクされるローカル処理デバイスおよびリモート処理デバイスによって実行される。
【００４６】
[0052]  コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに、ある種の機能または機能のグループを実行するようにさせる、命令とデータとを含んでいる。コンピュータ実行可能命令はまた、スタンドアロン環境またはネットワーク環境においてコンピュータによって実行されるプログラムモジュールを含んでもいる。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装するルーチンと、プログラムと、オブジェクトと、コンポーネントと、データ構造などとを含む。コンピュータ実行可能命令と、関連するデータ構造と、プログラムモジュールとは、本明細書において開示される方法の工程を実行するためのプログラムコード手段の例を表す。そのような実行可能命令、または関連するデータ構造の特定のシーケンスは、そのような工程の中で説明される機能を実装するための対応する動作の例を表す。
【００４７】
[0053]  上記説明は、特定の詳細を含むことができるが、それらは、どのようなやり方でも特許請求の範囲を限定するように解釈されるべきではない。説明された例の他の構成は、本開示の範囲の一部分である。例えば、本開示の原理は、それぞれの個別のユーザに適用されることもあり、ここでは、各ユーザは、そのようなシステムを個別に展開することができる。これにより、各ユーザは、たとえ多数の可能性のあるアプリケーションのうちの任意の１つが、本明細書において説明される機能を使用していないとしても、本開示の利点を利用することができるようになる。電子デバイスの複数の例は、それぞれ、様々な可能性のあるやり方で、コンテンツを処理することができる。実装形態は、必ずしも、すべてのエンドユーザによって使用される１つのシステムの中にあるとは限らない。それに応じて、与えられた任意の特定の例ではなくて、添付の特許請求の範囲と、それらの法による均等物とだけが、本発明を規定するべきである。
【図１】
2018508899.tif 000003
【図２】
2018508899.tif 000004
【図３】
2018508899.tif 000005
【図４】
2018508899.tif 000006
【図５】
2018508899.tif 000007
【図６】
2018508899.tif 000008
【図７】
2018508899.tif 000009
【国際調査報告】
2018508899.tif 000010