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