JP2007535747A - ドキュメントに選択可能なまたは/および順序付け可能なパーツを定義する方法およびシステム - Google Patents
ドキュメントに選択可能なまたは/および順序付け可能なパーツを定義する方法およびシステム Download PDFInfo
- Publication number
- JP2007535747A JP2007535747A JP2007510681A JP2007510681A JP2007535747A JP 2007535747 A JP2007535747 A JP 2007535747A JP 2007510681 A JP2007510681 A JP 2007510681A JP 2007510681 A JP2007510681 A JP 2007510681A JP 2007535747 A JP2007535747 A JP 2007535747A
- Authority
- JP
- Japan
- Prior art keywords
- package
- document
- parts
- xml
- markup
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/114—Pagination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/131—Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
- Document Processing Apparatus (AREA)
Abstract
Description
本明細書では、モジュール形式のコンテンツフレームワークおよびドキュメントフォーマットについて説明する。フレームワークおよびフォーマットでは、ドキュメント中心のコンテンツの構成、パッケージ化、配布、および表示のためのビルディングブロックの一式を定義する。これらのビルディングブロックは、ソフトウェアおよびハードウェアシステムによるドキュメントの生成、交換、および表示を、信頼性が高く一貫性のある形で行えるようにするドキュメントフォーマットのための、プラットフォーム依存性のないフレームワークを定義する。このフレームワークおよびフォーマットは、自由度が高く、拡張性のある方式で設計されている。様々な実施形態においては、取り込めるコンテンツの種類、コンテンツの提示方法、またはコンテンツの取り扱いのためクライアントをビルドするプラットフォームに関して、なんら制約はない。
以下の説明では、一般的フレームワークを取りあげる。独立した主要な小見出しは、「パッケージモデル」、「構成パーツ:セレクタおよびシーケンス」、「記述的メタデータ」、「物理的モデル」、「物理的マッピング」、および「バージョン管理および拡張性」である。それぞれの主要な小見出しは、1つまたは複数の関連する小見出しを持つ。
このセクションでは、パッケージモデルについて説明し、パッケージおよびパーツ、ドライバ、関係、パッケージ関係、および開始パーツを説明する小見出しが用意される。
例示され、説明されているモデルでは、コンテンツは1つのパッケージ内に保持される。パッケージは、関連するパーツのコレクションを保持する論理エンティティである。パッケージの目的は、ドキュメントのすべての断片(または他の種類のコンテンツ)を集めて、プログラマおよびエンドユーザが簡単に取り扱える1つのオブジェクトにまとめることである。例えば、図2を考察すると、これは、ドキュメントを表すXMLマークアップパーツ202、ドキュメント内で使用されるフォントを記述するフォントパーツ204、ドキュメントのページを記述する多数のページパーツ206、およびドキュメント内の画像を表す画像パーツ208を含む多数のパーツからなる、ドキュメントを保持するパッケージ200を例示している。ドキュメントを表すXMLマークアップパーツ202は、パッケージのコンテンツ全体を解析することなく、検索および参照を容易に行えるという点で有益である。これは、以下においてさらに明白になる。
例示され、説明されている実施形態では、パーツは、共通プロパティ(例えば、名前)および複数バイトからなるストリームを含む。これは、ファイルシステム内のファイル、またはHTTPサーバ上のリソースに類似している。コンテンツに加えて、それぞれのパーツは、いくつかの共通パーツプロパティを持つ。これらは、名前−パーツの名前と、コンテンツタイプ−パーツ内に格納されているコンテンツのタイプを含む。パーツは、さらに、後述するように、1つまたは複数の関連付けられた関係(relationship)を持つ。
・ この階層は、スラッシュで区切られた複数のセグメントからなる。
text/xml
text/plain;charset="us-ascii"
多くの場合、パーツは他のパーツへの参照を含む。単純な例として、マークアップファイルとイメージの2つのパーツを含むコンテナを考える。マークアップファイルでは、マークアップファイルが処理されるときに関連するイメージが識別され特定できるように、イメージへの参照を保持するようにしたい。コンテンツタイプおよびXMLスキーマの設計者は、URIを使用して、これらの参照を表すことができる。これを可能にするために、パーツ名の世界とURIの世界との間のマッピングを定義する必要がある。
/markup/page.xml
/images/picture.jpeg
/images/other_picture.jpeg
・リーダーがフォルダ内に少なくとも1つのパーツを見つけると(前述のパッケージ関係の1つを介して)、そのフォルダ内でよく知られているパーツ名に関する規約を使用して、他のパーツを見つけることができる。
本明細書で説明されているファイルフォーマットは、異なるアプリケーション、異なるドキュメントタイプなどにより使用されることができ、そのうち多くのものが衝突する用途、衝突するフォーマットなどを持つ。1つまたは複数のドライバを使用して、ファイルフォーマットの相違、通信プロトコルの相違など様々な衝突を解決する。例えば、ばらばらのファイルおよび複合ファイルなど様々なファイルフォーマット、http、ネットワーク、および無線プロトコルなど、様々な通信プロトコルがある。各種ドライバ群は、様々なファイルフォーマットおよび通信プロトコルを抽象化して、単一のモデルにまとめたものである。異なるシナリオ、異なる顧客要件、異なる物理的構成などに対し、複数のドライバを用意することができる。
パッケージ内のパーツは、そのパッケージ内の他のパーツへの参照を含むことができる。しかし、一般に、これらの参照は、参照する側のパーツ内で、そのパーツのコンテンツタイプに特有の方法で、つまり、任意のマークアップまたはアプリケーション固有の符号化によって表現される。これは、実際に、そのような参照を含むパーツのコンテンツタイプを認識しないリーダーからのパーツ間の内部リンクを非表示にする。
「パッケージ関係」は、パッケージ内のよく知られているパーツを見つけるために使用される。この方法を用いると、パッケージ内のパーツを見つける際に命名規約に依存しなくてすみ、異なるペイロードの同一のパーツ名の間で、衝突がないことが保証される。
パッケージレベルの一例においては、よく知られているパーツはパッケージ「start」パーツである。これは、パッケージが開かれたときに通常処理されるパーツである。これは、パッケージに格納されているドキュメントコンテンツの論理ルートを表す。パッケージの開始パーツは、よく知られているパッケージ関係に従うことにより特定される。一実施例においては、この関係は、「http://mmcf-start-part-PLACEHOLDER」という名前を持つ。
説明されているフレームワークでは、セレクタおよびシーケンスというパーツから高次の構造を構築するための2つの機構を定義する。
例示され説明されている実施形態においては、構成パーツは、少数のXML要素を使用して記述され、すべて共通構成名前空間(common composition namespace)から取り出される。例えば、以下を考察する。
パッケージの構成ブロック(Composition Block)は、パッケージの開始パーツから到達可能なすべての構成パーツ(セレクタまたはシーケンス)の集合を含む。パッケージの開始パーツがセレクタでもシーケンスでもない場合、構成ブロックは空であると考えられる。開始パーツが構成パーツの場合、それらの構成パーツ内の複数の子<item>が、再帰的にトラバースされて、構成パーツの有向非巡回グラフを生成する(非構成パーツに遭遇するとトラバースが停止する)。このグラフが、構成ブロックである(さらに、実施形態により、パッケージが有効であるためには、非巡回グラフでなければならない)。
上で比較的簡単なXML文法を確立したが、以下では、コンテンツタイプに基づき選択を行えるような情報を表す手段について説明する。つまり、上述のXMLは、組み立てられ1つの構成にまとめられるパーツをリーダーが特定するのに十分な情報を与える。しかし、構成の性質に関する詳細をリーダーに知らせるほど十分ではない。例えば、2つのパーツを構成する選択が与えられたとすると、リーダーはどのような基準(例えば、言語、用紙サイズなど)に基づいてその選択を行うのか?その答えは、これらの規則は構成パーツのコンテンツタイプに関連付けられているということである。したがって、言語に基づいて表現を選択するのに使用されるセレクタパーツは、用紙サイズに基づいて表現を選択するセレクタパーツと異なる関連付けられたコンテンツタイプを持つ。
Application/XML+Sequence-SOMETHING
これらのコンテンツタイプの中のSOMETHINGは、選択またはシーケンスの性質、例えば、ページサイズ、色、言語、リーダーデバイス上の常駐ソフトウェアなどを示す単語で置き換えることができる。このフレームワークにおいては、こうすると、すべての種類のセレクタおよびシーケンスを創作することができ、それぞれ非常に異なる意味を持ち得る。
一実施形態においては、記述的メタデータパーツは、パッケージのライターまたは作成者に、パッケージのリーダーが高い信頼度で発見できるようにするプロパティの値を保存する手段を提供する。これらのプロパティは、通常、コンテナ内の個々のパーツに関する情報だけでなくをパッケージ全体の追加的情報を記録するために使用される。例えば、パッケージ内の記述的メタデータパーツは、パッケージの著者、キーワード、要約などの情報を保持することが可能である。
一実施形態によれば、記述的メタデータパーツは、コンテンツタイプを持ち、以下の規則に従う関係の対象となる。
以下に、プロパティの名前、プロパティの型、および説明を含む、ドキュメントコアプロパティの表を示す。
物理的モデルにより、ライターおよびリーダーによるパッケージの様々な使用法が定義される。このモデルは、ライター、リーダー、およびそれらの間のパイプの3つのコンポーネントに基づく。図6は、ライターおよびリーダーが連携してパッケージに関する通信を行ういくつかの実施例を示す図である。
ストリーミング消費
ネットワーク接続アクセスを使用したライターとリーダーとの間の通信は瞬間的なものではないため、パッケージの連続的な作成および消費に対応することが重要である。特に、この実施形態によれば、パッケージのすべてのビットがパイプを通して送り込まれる前に、リーダーが受け取るデータ(例えば、パーツ)の解釈および処理を開始できるように物理的パッケージフォーマットを設計することが推奨される。この機能は、ストリーミング消費(streaming consumption)と呼ばれる。
ライターがパッケージの作成を開始しても、パッケージに入れられるものを常に知っているとは限らない。一実施例では、アプリケーション側でプリントスプールファイルパッケージのビルドを開始する場合、アプリケーション側では、パッケージに入れる必要のあるページの数がわからない場合がある。他の実施例では、動的にレポートを生成しているサーバ上のプログラムには、レポートを完全に生成するまでは、レポートの長さまたはレポートに含まれる画像の数はわからない。このようなライターを許容するために、物理的パッケージにより、他のパーツがすでに追加されていた場合に、ライターがその後にパーツを動的に追加できるようにしなければならない(例えば、ライターは作成を開始するといくつのパーツが作成されるかをあらかじめ記述しておくように要求されてはならない)。さらに、物理的パッケージを使用することで、ライターはそのパーツの最終的な長さを知らなくてもパーツのコンテンツの書き込みを開始できなければならない。つまり、これらの要件によりストリーミング作成が可能になるのである。
高度にパイプライン化されているアーキテクチャでは、ストリーミング作成およびストリーミング消費は、特定のパッケージに対して同時に実行することが可能である。物理的パッケージを設計する際に、ストリーミング作成のサポートとストリーミング消費のサポートで、設計が反対方向に推し進められることがある。しかし、両方をサポートする設計を見つけられる場合も多い。パイプライン化アーキテクチャにはメリットがあるため、物理的パッケージで同時作成および消費をサポートすることを推奨する。
物理的パッケージは、パーツのコレクションを持つ。これらのパーツは、単純な順序付けとインタリーブの2つのスタイルのうちの1つでレイアウトすることができる。単純な順序付けでは、パッケージ内のパーツは、定められた順序によりレイアウトされる。そのようなパッケージが純粋に直線的な方法で送出される場合、パッケージ内の第1のバイトから始まり、最後のバイトへと続き、第1のパーツのすべてのバイトが最初に到着し、その後、第2のパーツのすべてのバイトが到着し、というように続く。
ライターとリーダーとの間の通信は、パーツの順次配送に基づくか、または順序バラバラでアクセスできるパーツへのランダムアクセスにより行うことができる。これらの通信形式のうちのどれを使用するかは、パイプおよび物理的パッケージフォーマットの両方の機能に依存する。一般に、パイプはすべて順次配送をサポートする。物理的パッケージは、順次配送をサポートしなければならない。ランダムアクセスのシナリオをサポートするには、使用しているパイプと物理的パッケージの両方がランダムアクセスをサポートしていなければならない。ある種のパイプは、ランダムアクセスを使用可能にできるプロトコルに基づいている(例えば、バイトレンジのサポートがあるHTTP1.1)。これらのパイプが使用されている場合に最大のパフォーマンスを引き出すためには、物理的パッケージでランダムアクセスをサポートすることが推奨される。このようなサポートが行われていないと、リーダーは、必要とするパーツが順次配送されてくるまでひたすら待つことになる。
論理パッケージングモデルでは、パッケージ抽象化を定義しており、パッケージの実際のインスタンスは、パッケージのなんらかの特定の物理的表現に基づく。パッケージングモデルは、物理的永続フォーマットだけでなく、様々なトランスポート(例えば、ネットワークベースのプロトコル)にもマッピングすることができる。物理的パッケージフォーマットは、抽象パッケージングモデルのコンポーネントから特定の物理的フォーマットの機能へのマッピングとして説明することができる。パッケージングモデルでは、パッケージのアーカイブ、配布、またはスプーリングに使用すべき物理的パッケージフォーマットを指定しない。一実施形態では、論理的構造のみが指定される。パッケージは、バラバラのファイルのコレクション、.ZIPファイルアーカイブ、複合ファイル、またはその他のフォーマットにより「物理的に」実現することができる。選択されたフォーマットは、ターゲットの消費デバイスまたはそのデバイス用のドライバによりサポートされる。
それぞれの物理的パッケージフォーマットは、以下のコンポーネントのマッピングを定義する。いくつかのコンポーネントは、オプションであり、特定の物理的パッケージフォーマットではそれらのオプションコンポーネントをサポートしていない場合がある。
物理的パッケージフォーマットのマッピングにより、それぞれのパーツのコンテンツタイプを格納するための機構が定義される。いくつかの物理的パッケージフォーマットは、コンテンツタイプを表すための固有の機構を備える(例えば、MIMEによる「Content−Type」ヘッダ)。このような物理的パッケージについては、マッピングにその固有の機構を使用してパーツのコンテンツタイプを表すよう推奨する。他の物理的パッケージフォーマットについては、他の何らかの機構を使用して、コンテンツタイプを表す。これらのパッケージ内でコンテンツタイプを表すための推奨される機構は、タイプストリームと呼ばれる特別な名前のXMLストリームをパッケージに入れることである。このストリームは、パーツではなく、したがって、それ自体URIアドレス指定可能ではない。しかし、パーツのインタリーブに使用されるのと同じ機構を使用して物理的パッケージ内でインタリーブすることができる。
すべての物理的パッケージが、本来含まれるものとしてパーツのデータストリームのインタリービングをサポートしているわけではない。一実施形態では、そのような物理的パッケージへのマッピングでは、このセクションで説明されている一般的な機構を使用してパーツのインタリービングを可能にする。この一般的な機構では、パーツのデータストリームを複数の断片に分割してから、他のパーツの断片、またはパーツ全体とインタリーブするという方法によって動作する。パーツの個々の断片は、物理的マッピング内に存在し、論理的パッケージングモデルではアドレス指定できない。断片のサイズは0であってもよい。
「Windows(登録商標)ファイルシステム内のバラバラのファイル」では、次の物理的フォーマットの特定のマッピングを定義する。
論理的モデルの要素を物理的フォーマットにマッピングする方法をよく理解できるように、MetroパッケージをWindows(登録商標)ファイルシステム内のバラバラのファイルのコレクションとして表す基本的な場合について考察する。論理的パッケージ内のそれぞれのパーツは、別々のファイル(ストリーム)に格納される。論理的モデル内のそれぞれのパーツ名は、ファイルの名前に対応している。
すべての/を\に変換し、
コロンとアスタリスク文字をエスケープする
例えば、パーツ名/a:b/c/d*.xamlはa^25b\c\d^2a.xamlにというファイル名になる。
/を文字列の先頭に追加し、
^[16進数コード]を対応する文字で置き換えることにより文字のエスケープを解除する
他の技術的仕様と同様、本明細書に含まれる仕様は、将来の技術的進歩とともに発展する可能性がある。この仕様の第1版の設計は、第1版に基づいて書かれたソフトウェアシステムと将来の版に合わせて書かれたソフトウェアシステムとの間でドキュメントを将来交換できるようにする計画を含んでいる。同様に、この仕様により、第三者が仕様に対する拡張機能を作成することができる。このような拡張により、例えば、ある特定のプリンタの存在を認識しない他のリーダーとの互換性を維持しつつ、そのプリンタの機能を利用するドキュメントを構成することができる。
XMLマークアップ認識は、名前空間のURIに基づいている。XML名前空間については、リーダーはその名前空間内で定義されているXML要素およびXML属性の全部を認識するか、またはどれも認識しないことが予想される。リーダーが新しい名前空間を認識しない場合、リーダーはそのドキュメント内で指定されている通りフォールバックレンダリングオペレーション(fallback rendering operations)を実行する必要がある。
本明細書で説明されているシステムおよび方法をサポートしているアプリケーションまたはデバイスに関して、旧バージョンの仕様、または仕様の未知の拡張もしくはバージョンを使用してオーサリングされたドキュメントをクライアントが解析し表示することができるということによって、互換性があることが示される。様々なバージョン管理機構で「下位互換性」に対応しているため、後述のように、クライアントは将来の実装において、仕様のダウンレベルバージョンに基づきドキュメントをサポートできる。
拡張適応可能な挙動をサポートするためのXML語彙は、以下の要素を含む。
Compatibility.Rulesは、添付属性を保持できる要素だけでなくXamlルート要素にも添付できる。<Compatibility.Rules>要素は、パーサが未知の要素または属性にどのような反応をするかを制御する。通常、このようなアイテムはエラーとして報告される。無視可能な要素をCompatibility.Rulesプロパティに追加することで、特定の名前空間からのアイテムを無視できることをコンパイラに通知できる。
<Ignorable>要素は、囲まれている名前空間URIが無視可能であることを宣言する。<Ignorable>タグが現在のブロックまたはコンテナブロック内のアイテムの前で宣言され、名前空間URIはパーサにとっては未知のものである場合、アイテムは無視可能であるとみなすことができる。URIが知られている場合には、Ignorableタグは無視され、すべてのアイテムが認識される。一実施形態では、Ignorableと明示的に宣言されていないアイテムはすべて認識されなければならない。Ignorable要素は、<ProcessContent>および<CarryAlong>要素を含むことができ、これらは、要素の無視のされ方を修正するために使用されるだけでなく、ドキュメント編集ツールに、そのようなコンテンツを編集済みドキュメント内にどのように保存するかについてのガイダンスを与えるためにも使用される。
<ProcessContent>要素は、要素が無視される場合に、その要素のコンテンツが、無視された要素のコンテナに含まれているかのように処理されることを宣言する。
オプションの<CarryAlong>要素は、ドキュメントが修正されたときに、無視可能なコンテンツを保存すべきかどうかをドキュメント編集ツールに通知する。編集ツールが無視可能なコンテンツを保存または破棄するために使用する方法は、編集ツールの領分である。複数の<CarryAlong>要素が1つの名前空間内の同じ要素または属性を参照している場合、指定された最後の<CarryAlong>が優先する。
<MustUnderstand>は、Ignorable要素の効果を反転した要素である。この手法は、例えば、代替えコンテンツと組み合わせたときに、有用である。<MustUnderstand>要素により定義された範囲から外れている場合、要素はIgnorableのままである。
<AlternateContent>要素を使用すると、指定されたコンテンツの一部が認識されない場合のための代替えコンテンツを用意できる。AlternateContentブロックでは、<Prefer>および<Fallback>の両方のブロックを使用する。<Prefer>ブロック内に何か認識されないものがあれば、<Fallback>ブロックのコンテンツが使用される。名前空間を<MustUnderstand>と宣言すれば、フォールバックを使用することを指示することになる。名前空間が無視できると宣言されていて、その名前空間が<Prefer>ブロック内で使用されている場合、<Fallback>ブロック内のコンテンツは使用されない。
<Ignorable>の使用
この実施例では、架空のマークアップ名前空間http://PLACEHOLDER/Circleを使用する。この名前空間では、要素Circleをその初期バージョンで定義し、将来のバージョンのマークアップ(バージョン2)で導入されるCircleのOpacity属性、およびさらに後のバージョンのマークアップ(バージョン3)で導入されるLuminanceプロパティを使用する。このマークアップは、バージョン1および2、さらには3およびそれ以上のバージョンでもロード可能である。さらに、<CarryAlong>要素により、エディタがv3:Luminanceを認識しない場合に、v3:Luminanceを保存しなければならないことも指定する。
以下の実施例は、<MustUnderstand>要素の使い方を説明している。
要素または属性が<MustUnderstand>と宣言されているが、<AlternateContent>ブロックの<Prefer>ブロックでは認識されない場合、<Prefer>ブロックは丸ごとスキップされ、<Fallback>ブロックがいつものように処理される(つまり、出会ったMustUnderstandアイテムはエラーとして報告される)。
以下の説明では、特定のファイルフォーマットについて説明する。このセクションの個別の主要な小見出しとして、「リーチパッケージフォーマットの紹介」。「リーチパッケージの構造」、「固定ペイロードパーツ」、「FixedPageマークアップの基本事項」、「Fixed−Payload要素およびプロパティ」、および「FixedPageマークアップ」がある。それぞれの主要な小見出しは、1つまたは複数の関連する小見出しを持つ。
これまではフレームワークの実施例について説明したが、以下の説明は、上述のツールを利用して実現される特有のフォーマットの1つに関する。以下の説明は、1つのフォーマット例を取りあげているにすぎず、請求されている発明の対象の適用を制限する意図ではないことは評価され理解されるであろう。
記載されている実施形態によれば、リーチパッケージでは、ドキュメントの配布、アーカイブ、および表示に関する情報作業者側の要求条件を扱う。知られている表示規則を使用することにより、リーチパッケージは、保存されているフォーマットからあいまいなところなくかつ正確に複製または印刷ができ、しかも、クライアントデバイスまたはアプリケーションは、特定のオペレーティングシステムまたはサービスライブラリに縛られない。さらに、リーチペイロードは中立の、アプリケーションに依存しない方法で表されるため、パッケージを作成するために使用されたアプリケーションがなくても、ドキュメントを普通に表示し、印刷することができる。このような機能を実現するために、固定ペイロードという概念を導入し、リーチパッケージに含める。
上で説明したように、リーチパッケージは、「固定」ページ、FixedPanels、構成、プリントチケットなどを含む機能群をサポートする。それらの機能群は、パッケージモデルのコアコンポーネントであるパーツと関係とを使用してパッケージ内に表される。このセクションおよび関連する下位セクションでは、「リーチパッケージ」の完全な定義を与える。さらに、これらのパーツおよび関係すべての組み立て、関連付けなどの作業をどのように行わなければならないかを説明する。
図10は、リーチパッケージの実施例および、この実施形態において、パッケージを構成し、またはパッケージ内に見出せる有効な種類の各パーツを示す図である。以下の表は、有効なそれぞれのパーツタイプの一覧であり、またそれぞれについての説明も載せてある。
リーチパッケージは、パッケージの開始パーツから構成ブロックをトラバースすることにより「発見可能」である少なくとも1つのFixedPanelを含んでいなければならない。説明されている実施形態によれば、発見プロセスは以下のアルゴリズムに従う。
固定ペイロードは、ルートパーツがFixedPanelパーツであるペイロードである。例えば、図10の固定ペイロードはそれぞれ、ルートパーツとして、関連するFixedPanelパーツを持つ。ペイロードは、FixedPanelの有効な処理に必要なパーツのすべての完全閉方(closure)を含む。これらに含まれるのは、以下のとおりである。
・FixedPanel内から参照されるすべてのFixedPages
・ペイロード内のFixedPagesのどれかにより(直接的に、またはセレクタを通じて間接的に)参照されるすべてのイメージパーツ
・ペイロード内の任意のFixedPagesで使用されるイメージブラシから直接的または間接的に参照されるすべてのリーチセレクタ(後述)
・ペイロード内のFixedPagesのどれかにより参照されるすべてのフォントパーツ
・固定ペイロード内の任意のパーツに添付されるすべての記述的メタデータパーツ
・固定ペイロード内の任意のパーツに添付される任意のプリントチケット
リーチパッケージの有効性(Validity)規則
こうして定義が適切に行われたので、説明されている実施形態に従って「有効な」リーチパッケージを記述する適合性規則について説明することにする。
リーチパッケージに含まれる構成パーツは何種類あってもよいが、構成パーツのタイプの明確に定義された集合のみが、本明細書に基づく明確に定義された挙動を持つ。挙動が明確に定義されている構成パーツをリーチ構成パーツと呼ぶ。これら以外のパーツは、リーチパッケージの有効性を判断するときに関係しない。
リーチ構成パーツとして定義されているセレクタ構成パーツは、リーチセレクタと呼ばれる。上述のように、言語セレクタは、英語またはフランス語などの自然言語に基づいて表現を選択する。この言語を発見するために、セレクタは各アイテムを検査する。XMLであるもののみ考察する。これらについては、それぞれのXMLのルート要素を検査して、その言語を判別する。xml:lang属性が存在していない場合、パーツは無視される。その後セレクタはそれぞれのパーツを次々に検討し、言語がシステムのデフォルト言語と一致する最初のものを選択する。
リーチ構成パーツとして定義されているシーケンス構成パーツは、リーチシーケンスと呼ばれる。固定シーケンスでは、固定コンテンツである子を1つのシーケンスにまとめる。
固定ペイロードは、FixedPanelパーツ、FixedPageパーツ、イメージパーツ、フォントパーツ、プリントチケットパーツ、および記述的メタデータパーツを含むことができ、それぞれの小見出しのところで説明する。
以下に示すように、固定ペイロードのドキュメント構造は、FixedPagesをスパインの一部として識別する。スパインパーツとページパーツとの関係は、そのスパインの関係ストリーム内で定義される。FixedPanelパーツは、コンテンツタイプapplication/xml+PLACEHOLDERである。
<Document>要素は、属性を持たず、子は1つだけ、つまり<FixedPanel>を持たなければならない。
<FixedPanel>要素は、ドキュメントスパインであり、ページの順序付きシーケンスを単一のマルチページドキュメントに論理的にバインドして、1つにまとめる。ページについては、常に、その幅と高さを指定するが、<FixedPanel>要素は、さらにオプションにより、高さおよび幅を指定することもできる。この情報は、例えば、ページサイズに基づいて代替的な表現を選択することなど、様々な目的のために使用できる。<FixedPanel>要素によって高さと幅を指定している場合、通常は、<FixedPanel>内のページの幅および高さとを揃えられるが、それらの寸法は、個々のページの高さと幅とを指定しているわけではない。
各<PageContent>要素は、単一ページのコンテンツのソースへの参照である。ドキュメント内のページ数を判別するには、<FixedPanel>に含まれる<PageContent>子の数を数える。
<FixedPanel>内の<PageContent>要素はFixedPageパーツを名前(URI)で参照する。各FixedPageパーツは、コンテンツの単一ページの表示を記述するFixedPageマークアップを含む。FixedPageパーツは、コンテンツタイプapplication/xml+PLACEHOLDER−FixedPageである。
以下に、ソースコンテンツのマークアップで上述のスパインマークアップ例で参照されているページを探す実施例を示す(<PageContent Source=“p1.xml”/>)。
一実施形態では、FixedPageに含まれるGlyphs子要素のマークアップ順序は、ページのテキストコンテンツの所望の読み込み順序と同じでなければならない。この読み込み順序は、ビューア内のFixedPageからの順次テキストの対話形式による選択/コピーのためと、アクセシビリティ技術による順次テキストへのアクセスを可能にするために使用することができる。マークアップ順序と読み込み順序との間の対応関係を保証するのは、FixedPageマークアップを生成するアプリケーション側の役目である。
サポートされているフォーマット
説明されている実施形態によれば、リーチパッケージ内でFixedPagesにより使用されるイメージパーツは、固定された数のフォーマット、例えば、PNGまたはJPEGとすることができるが、他のフォーマットを使用することもできる。
説明されている実施形態によれば、リーチパッケージでは、限られた数のフォントフォーマットをサポートする。例示され説明されている実施形態では、サポートされているフォントフォーマットとして、TrueTypeフォーマットとOpenTypeフォーマットがある。
固定ペイロードは、後で詳しく説明するGlyphs要素を使用してすべてのテキストを表す。この実施形態では、フォーマットは固定なので、FixedPayloadsにより要求されるグリフのみを含むように、フォントをサブセット化することが可能である。したがって、リーチパッケージ内のフォントは、グリフの使用法に基づいてサブセット化することができる。サブセット化されたフォントは、オリジナルフォント内のすべてのグリフを含むわけではないが、サブセット化されたフォントは有効なOpenTypeフォントファイルでなければならない。
プリントチケットパーツは、パッケージが印刷されるときに使用できる設定を提供する。これらのプリントチケットは様々な方法で添付することができ、かなり柔軟性が高い。例えば、プリントチケットをパッケージ全体に「添付」することができ、その設定はパッケージ全体に適用される。プリントチケットは、さらに、構造内の下位のレベル(例えば、個々のページ)に添付することもでき、それらのプリントチケットは、パーツを添付先に印刷するときに使用する優先(Override)設定を備える。
上述のように、記述的メタデータパーツは、パッケージのライターまたは作成者に、パッケージのリーダーが高い信頼度で発見できるようなプロパティの値を保存する手段を提供する。これらのプロパティは、通常、パッケージ全体だけでなくコンテナ内の個々のパーツに関する追加情報を記録するために使用される。
このセクションでは、FixedPageマークアップに関連する一部の基本情報について説明するが、「固定ペイロードおよびその他のマークアップ標準」、「FixedPageマークアップモデル」、「リソースおよびリソース参照」、および「FixedPage描画モデル」のセクションを含む。
リーチパッケージ内の固定ペイロードのFixedPanelおよびFixedPageマークアップは、Windows(登録商標)LonghornのAvalon XAMLのマークアップから抽出されたサブセットである。つまり、Fixed Payloadマークアップは、独立のXMLマークアップフォーマットとして孤立しているが(本明細書で説明しているように)、Longhornシステムと同じ方法でオリジナルのマルチページドキュメントのWYSIWYG複製をロードし、それを表示する。
例示され説明されている実施形態では、FixedPageパーツは、XML要素、XML属性、およびXML名前空間に基づくXMLベースのマークアップ言語で表される。本明細書では、3つのXML名前空間はFixedPageマークアップに含まれるように定義されている。このような名前空間の1つは、本明細書の他の場所で定義されているバージョン管理要素および属性を参照する。FixedPageマークアップで要素および属性に使用される主名前空間は、「http://schemas.microsoft.com/MMCF-PLACEHOLDER-FixedPage」である。そして最後に、FixedPageマークアップでは、後述の第3の名前空間を必要とする「リソース」という概念を導入する。
例示され説明されている実施形態では、FixedPageマークアッププロパティの値を指定するために使用できる3つの形式のマークアップがある。
単純文字列として表すことができるプロパティ値については、XML属性シンタックスを使用してプロパティ値を指定することができる。例えば、「Color」というプロパティを持つ「SolidColorBrush」と呼ばれるFixedPageマークアップ要素が与えられた場合、以下のシンタックスを使用してプロパティ値を指定できる。
ある種のプロパティ値は、単純文字列として表すことができず、例えば、XML要素を使用してプロパティ値を記述する。このようなプロパティ値は、単純な属性シンタックスを使用して表すことはできない。しかし、複合プロパティシンタックスを使用すると表すことができる。
リソース辞書は、それぞれリソースと呼ばれる共有可能プロパティ値を保持するために使用することができる。それ自体FixedPageマークアップ要素であるプロパティ値は、リソース辞書内に保持することができる。リソース辞書内のリソースには、それぞれ名前が付く。リソースの名前を使用して、プロパティのXML属性からリソースを参照することができる。
<FixedPage>または<Canvas>は、<Canvas.Resources>XML要素を使用して表される、リソース辞書を伴うことができる。単一のリソース辞書内のそれぞれの要素は、要素に関連付けられたXML属性を使用して識別される固有の名前が付けられる。プロパティに対応する属性からこの「Name」属性を区別するために、Name属性をFixedFormat要素のとは別の名前空間からとる。そのXML名前空間に対するURIは、「http://schemas.microsoft.com/PLACEHOLDER-for-resources」である。下の例では、2つのジオメトリが定義されており、1つは矩形で、もう1つは円である。
プロパティ値を上で定義したリソースの1つに設定するには、リソース名を{}で囲むXML属性値を使用する。例えば、「{Rectangle}」は使用されるジオメトリを表す。以下のマークアップの例では、辞書内のジオメトリオブジェクトにより定義される矩形領域は、SolidColorBrushにより塗りつぶされる。
同じリソース辞書内で単一の名前を2回使用することはできないが、単一のFixedPageパーツ内の2つの異なるリソース辞書内であれば同じ名前を使用できる。さらに、内側の<Canvas>のリソース辞書では、何らかの外側の<Canvas>または<FixedPage>のリソース辞書内で定義された名前を再利用することができる。
FixedPage(または入れ子になっているCanvas子)要素は、他の要素が上に表示される要素である。コンテンツの配列は、FixedPage(またはCanvas)について指定されたプロパティ、FixedPage(またはCanvas)上の要素に対して指定されたプロパティ、および固定ペイロード名前空間に対し定義されている構成規則により制御される。
固定マークアップでは、すべての要素は、座標系の現在の原点(0,0)に相対的に配置される。現在の原点を削除するには、RenderTransform属性を、要素を含むFixedPageまたはCanvasのそれぞれの要素に適用する。
例示され説明されている実施形態によれば、座標系は、最初、浮動小数点数として表される、1インチ(2.54cm)の1/96に等しくなるように設定され、座標系の原点(0,0)はFixedPage要素の左上角である。
ページ寸法は、FixedPage要素上の「PageWidth」および「PageHeight」パラメータにより指定される。
FixedPagesでは、アルファチャネルとともにペインタのモデルを使用する。説明されている実施形態によれば、構成は構成規則に従い、以下の順序で実行されなければならない。
例示され説明されている実施形態によれば、固定ペイロードは、ページおよびそのコンテンツを表現するためにマークアップ内で使用される、XML要素の小さな集まりを含む。FixedPanelパーツ内のマークアップは、<Document>、<FixedPanel>、および<PageContent>要素を使用することで、ドキュメントの複数のページをふつうのインデックスの作成しやすいルートにまとめる。それぞれのFixedPageパーツは、<Path>および<Glyphs>要素(いっしょになって描画すべてを行う)、およびそれらをグループにまとめるための<Canvas>要素のみを含む、<FixedPage>要素内のページのコンテンツを表す。
・<Document>[FixedPanelパーツ毎にちょうど1つ]
・属性:
・[なし]
・子要素:
・<FixedPanel>[ちょうど1つ]
・<FixedPanel>
・属性:
・PageHeight[オプション]
・PageWidth[オプション]
・子要素:
・<PageContent>[これらの子要素のうちの1〜N]
・<PageContent>
・属性:
・Source[必須]
・PageHeight[オプション]
・PageWidth[オプション]
・子要素:
・[なし]
・<FixedPage>
・単純なXML属性を介して直接表されるプロパティ:
・PageHeight[必須(ここでは、または子要素として)]
・PageWidth[必須(ここでは、または子要素として)]
・XML子要素としてそれ自体表されるリソース辞書:
・<FixedPage.Resources>
・XML子要素を介して表されるプロパティ
・<FixedPage.PageHeight>[必須(ここでは、または属性として)]
・<FixedPage.PageWidth>[必須(ここでは、または属性として)]
・XML子要素を介したコンテンツ:
・<Canvas>
・<Path>
・<Glyphs>
・<Canvas>
・単純なXML属性を介して直接表されるプロパティ:
・Opacity
・リソース辞書参照を介して表されるプロパティ:
・Clip
・RenderTransform
・OpacityMask
・XML子要素としてそれ自体表されるリソース辞書:
・<Canvas.Resources>
・XML子要素を介して表されるプロパティ
・<Canvas.Opacity>
・<Canvas.Clip>
・<Canvas.RenderTransform>
・<Canvas.OpacityMask>
・XML子要素を介したコンテンツ:
・<Canvas>
・<Path>
・<Glyphs>
・<Path>
・単純なXML属性を介して直接表されるプロパティ:
・Opacity
・リソース辞書参照を介して表されるプロパティ:
・Clip
・RenderTransform
・OpacityMask
・Fill
・XML子要素を介して表されるプロパティ
・<Path.Opacity>
・<Path.Clip>
・<Path.RenderTransform>
・<Path.OpacityMask>
・<Path.Fill>
・<Path.Data>
・<Glyphs>
・単純なXML属性を介して直接表されるプロパティ:
・Opacity
・BidiLevel
・FontFaceIndex
・FontHintingEmSize
・FontRenderingEmSize
・FontUri
・Indices
・OriginX
・OriginY
・Sideways
・StyleSimulations
・UnicodeString
・リソース辞書参照を介して表されるプロパティ:
・Clip
・RenderTransform
・OpacityMask
・Fill
・XML子要素を介して表されるプロパティ
・<Glyphs.Clip>
・<Glyphs.RenderTransform>
・<Glyphs.OpacityMask>
・<Glyphs.Fill>
・<Glyphs.Opacity>
・<Glyphs.BidiLevel>
・<Glyphs.FontFaceIndex>
・<Glyphs.FontHintingEmSize>
・<Glyphs.FontRenderingEmSize>
・<Glyphs.FontUri>
・<Glyphs.Indices>
・<Glyphs.OriginX>
・<Glyphs.OriginY>
・<Glyphs.Sideways>
・<Glyphs.StyleSimulations>
・<Glyphs.UnicodeString>
パスのジオメトリ、クリップ
・<Path.Data>
・属性:
・[なし]
・単一のXML子要素として表されるプロパティ値:
[Path.Dataは以下の子全体をちょうど1つとして持つ]
・<GeometryCollection>
・<PathGeometry>
・<GeometxyCollection>
・属性:
・CombineMode
・子要素:
[1〜N個の子]
・<GeometryCollection>
・<PathGeometry>
・<PathGeometry>
・属性:
・FillRule
・子要素:
[1〜N個の子]
・<PathFigure>
・<PathFigure>
・属性:
・[なし]
・子要素:
[StartSegmentが先頭で、CloseSegmentが最後、Poly*の1〜Nはその間]
・<StartSegment>
・<PolyLineSegment>
・<PolyBezierSegment>
・<CloseSegment>
・<StartSegment>
・単純なXML属性を介して直接表されるプロパティ:
・Point
・XML子要素を介して表されるプロパティ
・<StartSegment.Point>
・<PolyLineSegment>
・単純なXML属性を介して直接表されるプロパティ:
・Points
・XML子要素を介して表されるプロパティ
・<PolyLineSegment.Points>
・<PolyBezierSegment>
・単純なXML属性を介して直接表されるプロパティ:
・Points
・XML子要素を介して表されるプロパティ
・<PolyBezierSegment.Points>
パス、グリフ、またはOpacityMaskを塗りつぶすために使用されるブラシ
・<Path.Fill>
・属性:
・[なし]
・単一のXML子要素として表されるプロパティ値:
[Path.Fillは以下の子のうちのちょうど1つを持つ]
・<SolidColorBrush>
・<ImageBrush>
・<DrawingBrush>
・<LinearGradientBrush>
・<RadialGradientBrush>
・<Glyphs.Fill>
・属性:
・[なし]
・単一のXML子要素として表されるプロパティ値:
[Glyphs.Fillは以下の子のうちのちょうど1つを持つ]
・<SolidColorBrush>
・<ImageBrush>
・<DrawingBrush>
・<LinearGradientBrush>
・<RadialGradientBrush>
・<SolidColorBrush>
・単純なXML属性を介して直接表されるプロパティ:
・Opacity
・Color
・XML子要素を介して表されるプロパティ
・<SolidColorBrush.Opacity>
・<SolidColorBrush.Color>
・<ImageBrush>
・単純なXML属性を介して直接表されるプロパティ:
・Opacity
・HorizontalAlignment
・VerticalAlignment
・ViewBox
・ViewPort
・Stretch
・TileMode
・ContentUnits
・ViewportUnits
・ImageSource
・リソース辞書参照を介して表されるプロパティ:
・Transform
・XML子要素を介して表されるプロパティ
・<ImageBrush.Opacity>
・<ImageBrush.Transform>
・<ImageBrush.HorizontalAlignment>
・<ImageBrush.VerticalAligmnent>
・<ImageBrush.ViewBox>
・<ImageBrush.ViewPort>
・<ImageBrush.Stretch>
・<ImageBrush.TileMode>
・<ImageBrush.ContentUnits>
・<ImageBrush.ViewportUnits>
・<ImageBrush.ImageSource>
・<DrawingBrush>
・単純なXML属性を介して直接表されるプロパティ:
・Opacity
・HorizontalAlignment
・VerticalAlignment
・ViewBox
・ViewPort
・Stretch
・TileMode
・ContentUnits
・ViewportUnits
・リソース辞書参照を介して表されるプロパティ:
・Transform
・Drawing
・XML子要素を介して表されるプロパティ
・<DrawingBrush.Opacity>
・<DrawingBrush.Transform>
・<DrawingBrush.HorizontalAlignment>
・<DrawingBrush.VerticalAlignment>
・<DrawingBrush.ViewBox>
・<DrawingBrush.ViewPort>
・<DrawingBrush.Stretch>
・<DrawingBrush.TileMode>
・<DrawingBrush.ContentUnits>
・<DrawingBrush.ViewportUnits>
・<DrawingBrush.Drawing>
・<DrawingBrush.Drawing>
・XML子要素を介したコンテンツ:
・<Canvas>
・<Path>
・<Glyphs>
・<LinearGradientBrush>
・単純なXML属性を介して直接表されるプロパティ:
・Opacity
・MappingMode
・SpreadMethod
・StartPoint
・EndPoint
・リソース辞書参照を介して表されるプロパティ:
・Transform
・GradientStops
・XML子要素を介して表されるプロパティ
・<LinearGradientBrush.Opacity>
・<LinearGradientBrush.Transform>
・<LinearGradientBrush.MappingMode>
・<LinearGradientBrush.SpreadMethod>
・<LinearGradientBrush.StartPoint>
・<LinearGradientBrush.EndPoint>
・<LinearGradientBrush.GradientStops>
・<RadialGradientBrush>
・単純なXML属性を介して直接表されるプロパティ:
・Opacity
・Center
・Focus
・RadiusX
・RadiusY
・リソース辞書参照を介して表されるプロパティ:
・Transform
・GradientStops
・XML子要素を介して表されるプロパティ
・<RadialGradientBrush.Opacity>
・<RadialGradientBrush.Transform>
・<RadialGradientBrush.Center>
・<RadialGradientBrush.Focus>
・<RadialGradientBrush.RadiusX>
・<RadialGradientBrush.RadiusY>
・<RadialGradientBrush.GradientStops>
・<GradientStops>
・XML子要素を介したコンテンツ:
・<GradientStop>[これらの子のうちの1〜N]
・<GradientStop>
・単純なXML属性を介して直接表されるプロパティ:
・Color
・Offset
・XML子要素を介して表されるプロパティ
・<GradientStop.Color>
・<GradientStop.Offset>
FixedPageまたはCanvasのリソース辞書
・<FixedPage.Resources>
・<Canvas.Resources>
これらの要素は、リソース辞書を説明している上のセクションで説明されている。
・<Canvas.OpacityMask>
・属性:
・[なし]
・単一のXML子要素として表されるプロパティ値:
[Canvas.OpacityMaskは以下の子のうちのちょうど1つを持つ]
・<SolidColorBrush>
・<ImageBrush>
・<DrawingBrush>
・<LinearGradientBrush>
・<RadialGradientBrush>
・<Path.OpacityMask>
・属性:
・[なし]
・単一のXML子要素として表されるプロパティ値:
[Path.OpacityMaskは以下の子のうちのちょうど1つを持つ]
・<SolidColorBrush>
・<ImageBrush>
・<DrawingBrush>
・<LinearGradientBrush>
・<RadialGradientBrush>
・<Glyphs.OpacityMask>
・属性:
・[なし]
・単一のXML子要素として表されるプロパティ値:
[Glyphs.OpacityMaskは以下の子のうちのちょうど1つを持つ]
・<SolidColorBrush>
・<ImageBrush>
・<DrawingBrush>
・<LinearGradientBrush>
・<RadialGradientBrush>
クリッピングパス
・<Canvas.Clip>
・属性:
・[なし]
・単一のXML子要素として表されるプロパティ値:
[Canvas.Clipは以下の子のうちのちょうど1つを持つ]
・<GeometryCollection>
・<PathGeometry>
・<Path.Clip>
・属性:
・[なし]
・単一のXML子要素として表されるプロパティ値:
[Path.Clipは以下の子のうちのちょうど1つを持つ]
・<GeometryCollection>
・<PathGeometry>
・<Glyphs.Clip>
・属性:
・[なし]
・単一のXML子要素として表されるプロパティ値:
[Glyphs.Clipは以下の子のうちのちょうど1つを持つ]
・<GeometryCollection>
・<PathGeometry>
変換
・<Canvas.RenderTransform>
・単一のXML子要素として表されるプロパティ値:
・<MatrixTransform>[必須]
・<Path.RenderTransform>
・単一のXML子要素として表されるプロパティ値:
・<MatrixTransform>[必須]
・<Glyphs.RenderTransform>
・単一のXML子要素として表されるプロパティ値:
・<MatrixTransform>[必須]
・<MatrixTransform>
・単純なXML属性を介して直接表されるプロパティ:
・Matrix
・XML子要素を介して表されるプロパティ
・<MatrixTransform.Matrix>
・<ImageBrush.Transform>
・単純なXML属性を介して直接表されるプロパティ:
・MatrixTransformx
・XML子要素を介して表されるプロパティ
・<ImageBrush.Transform.MatrixTransform>
・<DrawingBrush.Transform>
・単純なXML属性を介して直接表されるプロパティ:
・MatrixTransform
・XML子要素を介して表されるプロパティ
・<DrawingBrush.Transform.MatrixTransform>
・<LinearGradientBrush.Transform>
・単純なXML属性を介して直接表されるプロパティ:
・MatrixTransform
・XML子要素を介して表されるプロパティ
・<LinearGradientBrush.Transform.MatrixTransform>
・<RadialGradientBrush.Transform>
・単純なXML属性を介して直接表されるプロパティ:
・MatrixTransform
・XML子要素を介して表されるプロパティ
・<RadialGradientBrush.Transform.MatrixTransform>
FixedPageマークアップ
それぞれのFixedPageパーツは、<FixedPage>要素にルートを持つXMLマークアップでページのコンテンツを表す。このFixedPageマークアップは、わずかの要素およびプロパティ、つまり、<Path>および<Glyphs>要素(いっしょになって描画すべてを行う)、およびそれらをグループにまとめるための<Canvas>要素のみで、ライターおよびリーダーとの間のドキュメントのWYSIWWG忠実性をもたらす。
FixedPageマークアップにおける各要素に固有の属性について説明する前に、描画およびグループ化要素に共通の属性、つまりOpacity、Clip、RenderTransform、およびOpacityMaskについて考察する。これらは最上位レベル要素に共通の唯一のプロパティであるだけでなく、上記の構成規則のセクションで説明したように、親要素から子要素へ結果を「累積する」唯一のプロパティでもある。累積は、構成規則の適用結果である。以下の表は、これらの共通属性に関するまとめの説明であり、その後に、各属性の詳細な説明を載せた。
不透明は、表示(アルファブレンディング)の際に2つの要素を透過的にブレンドするために使用される。Opacity属性は、0(完全透明)から1(完全不透明)まで様々な範囲を指定する。包含する範囲外の値は、マークアップ解析時にこの範囲に固定される。したがって、実際に、[−∞...0]は透明であり、[1..∞]は不透明である。
AS:ソースサーフェスに存在するアルファ値
RS:ソースサーフェスに存在する赤色値
GS:ソースサーフェスに存在する緑色値
BS:ソースサーフェスに存在する青色値
AD:デスティネーションサーフェスにすでに存在するアルファ値
RD:デスティネーションサーフェスにすでに存在する赤色値
GD:デスティネーションサーフェスにすでに存在する緑色値
BD:デスティネーションサーフェスにすでに存在する青色値
A*:デスティネーションサーフェスに対する結果のアルファ値
R*:デスティネーションサーフェスに対する結果の赤色値
G*:デスティネーションサーフェスに対する結果の緑色値
B*:デスティネーションサーフェスに対する結果の青色値
下付文字Tで指定されている値はすべて一時的な値である(例えば、RT1)。
AS=AS*OE
ステップ2:ソースアルファを事前乗算する
AT1=AS
RT1=RS*AS
GT1=GS*AS
BT1=BS*AS
ステップ3:デスティネーションアルファを事前乗算する
AT2=AD
RT2=RD*AD
GT2=GD*AD
BT2=BD*AD
ステップ3:ブレンド
AT2=(1−AT1)*AT2+AT1
RT2=(1−AT1)*RT2+RT1
GT2=(1−AT1)*GT2+GT1
BT2=(1−AT1)*BT2+BT1
ステップ4:事前乗算を逆にする
AT2=0ならば、すべてのA*R*G*B*を60に設定する。
A*=AT2
R*=RT2/AT2
G*=GT2/AT2
B*=BT2/AT2
Clipプロパティ
Clipプロパティは、幾何学的要素<GeometryCollection>または<PathGeometry>の一方として指定される(詳細は、Path.Dataを参照)。
MatrixTransformは、要素に利用できる唯一の変換属性である。これは、アフィン変換を表す。シンタックスは以下のとおりである。
m10 m11 0
dx dy 1
与えられた座標X、Yは、RenderTransformにより、以下の計算を適用することで変換され、座標X’、Y’に関する結果が得られる。
Y’=X*m01+Y*m11+dy
OpacityMask子要素
OpacityMaskでは、Brushを指定するが、Fill Brushとは対照的に、ブラシのアルファチャネル(上のOpacity属性を参照)のみを、要素を表示するための追加パラメータとして使用する。さらに、要素の各ピクセルの各アルファ値に、OpacityMask Brush内の対応する位置のアルファ値を掛ける。
<Canvas>要素は、複数の要素をひとまとめにする場合に使用される。通常、FixedPage要素が<Canvas>でひとまとめにされるのは、構成された共通属性(つまり、Opacity、Clip、RenderTransform、またはOpacityMask)を共有する場合である。これらの要素をCanvas上でグループ化することにより、共通属性を個々の要素ではなくキャンバスに適用できる場合が多い。
<Canvas>要素は、前記の共通属性、つまりOpacity、Clip、RenderTransform、およびOpacityMaskのみを持つ。これらは、以下の表で説明されているような<Canvas>要素とともに使用される。
Path要素は、幾何学的領域を記述するXMLベースの要素である。幾何学的領域とは、塗りつぶすことができる、またはクリッピングパスとして使用できる形状のことである。矩形および楕円などのふつうのジオメトリタイプは、Pathジオメトリを使用して表すことができる。パスは、Geometry.Data子要素およびFillまたはOpacityなどのレンダリング属性を指定することにより記述される。
後述のように、以下のプロパティは<Path>要素に適用可能である。
パスのジオメトリは、以下に示すように、<Path.Data>の入れ子になっている子要素の系列として指定される。ジオメトリは、<PathGeometry>子要素の集合を含む<GeometryCollection>、または<PathFigures>を含む単一の<PathGeometry>子要素で表すことができる。
GeometryCollectionは、Boolean CombineModeオプションに従って表示するためにひとまとめにされる幾何学的オブジェクトの集合である。GeometryCollection要素は、FixedPageマークアップ内の、幾何学的形状の視覚的組合せを作るための機構である。
PathGeometry要素は、PathFigure要素の集合を含む。PathFiguresの和集合は、PathGeometryの内部を定義する。
PathFigure要素は、1つまたは複数の線分もしくは曲線セグメントの集合からなる。セグメント要素により、PathFigureの形状が定義される。PathFigureでは、常に、閉じた形状を定義しなければならない。
以下では、キャンバス上にパスを描画し塗りつぶすためのマークアップを取りあげる。以下の特定の実施例では、矩形パスがキャンバス上に描画され、濃い緑色のブラシで塗りつぶされる。
ブラシは、<Path>要素により定義された幾何学的形状の内部を塗りつぶす場合、および<Glyphs>要素で表示されたキャラクタビットマップを塗りつぶす場合に使用される。ブラシは、さらに、<Canvas.OpacityMask>、<Path.OpacityMask>、および<Glyphs.OpacityMask>でアルファ透明マスクを定義する際にも使用される。FixedPageマークアップは、以下のブラシを含む。
説明されている実施形態によれば、以下のプロパティは、オプションの子要素が比較的少ない単純なブラシであるSolidColorBrushを除く、すべてのブラシに適用可能である。
Path.BrushおよびCanvas.Brush子要素は、SolidColorBrush、ImageBrush、およびDrawingBrushを含む。
グラディエントは、グラディエントブラシのXML子要素としてグラディエントストップ(gradient stops)の集合を指定することにより描画される。これらのグラディエントストップは、ある種の数列で色を指定する。このフレームワークでサポートされているグラディエントブラシは2種類ある、つまり線形と放射状である。
LinearGradientBrushに関して、以下の事項を考察する。LinearGradientBrushは、ベクトルに沿って線形グラディエントブラシを指定する。
例示され説明されている実施形態によれば、それぞれの要素の各ピクセルは、0.0(完全透明)から1.0(完全不透明)までの範囲のアルファ値を伴う。アルファ値は、透明の視覚的効果を生み出すために要素をブレンドする場合に使用される。
FixedPagesでは、イメージは囲まれている領域を塗りつぶす。FixedPage上にイメージを配置するには、ページ上で領域をまず指定しなければならない。この領域は、Path要素のジオメトリにより定義される。
色は、scRGBまたはsRGB表記を使用して例示され説明されているマークアップで指定することができる。scRGB規格は、「IEC 61966−2−2 scRGB」と呼ばれ、www.iec.chから入手することができる。
現在、カラーコンテキストを指定するメタデータで、色分け要素のタグ付けをすることが検討中である。このようなメタデータは、ICCカラープロファイルまたは他の色定義データを含むことが可能である。
テキストは、Glyphs要素を使用して固定ペイロードにより表される。要素は、印刷およびリーチドキュメントの要件を満たすように設計されている。
グリフメトリクス
それぞれのグリフは、他のグリフとの位置の揃え方を指定するメトリクスを定義する。一実施形態によるメトリクスの実施例を図12に示す。
一般に、フォント内のグリフは、ベースグリフまたはベースグリフに付けられる組合せマークのいずれかである。ベースグリフは、通常、非ゼロの送り幅と0,0のオフセットベクトルを持つ。組合せマークは、通常、送り幅が0である。オフセットベクトルは、組合せマークの位置を調整するために使用することができ、したがって、組合せマークに対して非0,0値を設定することができる。
クラスタマップは、Unicodeコードポイントによる1つのエントリを含む。エントリ内の値は、このコードポイントを表すGlyphIndices配列内の第1のグリフのオフセットである。それとは別に、コードポイントが不可分の文字クラスタを表すコードポイントのグループの一部である場合、GlyphIndices配列内の第1のグリフは、そのクラスタを表す第1のグリフのオフセットを表す。
クラスタマップは、1対1、多対1、1対多、または多対多であるコードポイント−グリフ間マッピングを表すことができる。1対1マッピングは、それぞれのコードポイントがちょうど1つのグリフで表される場合のもので、図13のクラスタマップエントリは、0、1、2、...である。
クラスタ指定は、非1:1クラスタの第1のグリフに対するグリフ指定の前に来る(マッピングは、1文字対1グリフよりも複雑になる)。
Glyphs要素では、フォントをURI、書体インデックス、および上述の一組の他の属性として指定する。例えば、
グリフ指定の各部はオプションである。
グリフインデックスおよび送り幅などのマークアップの詳細は、ターゲットのクライアントがそれらを確実に再生できれば省略できる。以下のオプションにより、通常使用される単純なスクリプトの劇的な最適化が可能になる。
グリフインデックスは、Unicode文字列内の文字の位置とグリフ文字列内のグリフの位置との間の1対1マッピングがある場合にマークアップから省略することができ、グリフインデックスは、フォントのCMAP(キャラクタマッピング)テーブル内の値であり、Unicode文字はあいまいさのない意味を持つ。
・1つのコードポイントで複数のグリフを生成しているか、または
・OpenType機能の適用などによる、他の形態のグリフ置換が生じた場合。
グリフ送り幅は、必要な送り幅が、正確にフォントのHMTX(水平メトリクス)またはVMTX(垂直メトリクス)テーブル内のグリフの送り幅である場合、マークアップから省略することができる。
グリフフラグは、通常のジャスティフィケーション優先度を持つベースグリフについては省略できる。
上記のモジュール型のコンテンツフレームワークおよびドキュメントフォーマットの方法およびシステムでは、ドキュメント中心のコンテンツの構成、パッケージ化、配布、および表示のためのビルディングブロックを一式備える。これらのビルディングブロックは、ソフトウェアおよびハードウェアシステムによりドキュメントの生成、交換、および表示を、信頼性が高く一貫性のある形で行えるようにするドキュメントフォーマットのためのプラットフォーム依存性のないフレームワークを定義する。例示され説明されているリーチパッケージフォーマットは、ページ付けまたは事前ページ付けドキュメントを格納するためのフォーマットであり、これにより、様々な環境および様々なシナリオにわたるデバイスおよびアプリケーション間でのリーチパッケージのコンテンツの完全に忠実な表示または印刷が可能になる。本発明は構造的機能および/または方法論的ステップに固有の言語で説明されているが、付属の請求項で定められている発明は、説明した特定の機能またはステップに必ずしも限られないことは理解されるであろう。むしろ、特定の機能およびステップは請求されている発明を実施する好ましい形態として開示されている。
Claims (33)
- ドキュメントを定義するパッケージを構築するステップであって、前記パッケージは前記ドキュメントを構成する複数のパーツを含むことと、
前記パッケージ内に、1つあるいは複数の構成パーツを含めるステップであって、前記構成パーツはドキュメントパーツ選択またはドキュメントパーツ順序付けの少なくとも一方を実行できることと、
を備えることを特徴とする方法。 - 前記含めるステップは、前記1つまたは複数の構成パーツをXML要素として表すことを含むことを特徴とする請求項1に記載の方法。
- 前記複数のパーツのいずれもが、関連するタイプを有し、前記1つまたは複数の構成パーツは、パーツタイプに基づき実行するように構成されることを特徴とする請求項1に記載の方法。
- 前記複数のパーツのいずれもが、関連するタイプを有し、前記1つまたは複数の構成パーツは、構成パーツマークアップに含まれる特定の命令のパーツタイプに基づき実行するように構成されることを特徴とする請求項1に記載の方法。
- ドキュメントパーツ選択を実行するように構成されている構成パーツのうち少なくとも一部は、いずれかの間から選択をするパーツに関連付けられているコンテンツタイプに基づき選択を実行できることを特徴とする請求項3に記載の方法。
- コンテンツタイプ選択は、少なくとも一部は、特定のコンテンツタイプを認識するソフトウェアが使用可能かどうかに基づくことを特徴とする請求項5に記載の方法。
- コンピュータ可読命令を含み、前記命令が実行されると、請求項6に記載の方法が実行されることを特徴とする1つまたは複数のコンピュータ読取り可能媒体。
- 請求項7に記載のコンピュータ読取り可能媒体を実現することを特徴とするコンピューティングシステム。
- コンピュータ可読命令を含み、前記命令が実行されると、請求項1に記載の方法が実行されることを特徴とする1つまたは複数のコンピュータ読取り可能媒体。
- 請求項9に記載のコンピュータ読取り可能媒体を実現することを特徴とするコンピューティングシステム。
- ドキュメントを定義するパッケージを受信するステップであって、前記パッケージは前記ドキュメントを構成する複数のパーツを含み、前記パッケージは1つまたは複数の構成パーツを含み、前記構成パーツはドキュメントパーツ選択またはドキュメントパーツ順序付けの少なくとも一方を実行することができことと、
前記パッケージを処理して前記1つまたは複数の構成パーツを識別するステップと、
前記1つまたは複数の構成パーツに関連付けられているアクションを実行するステップと、
を備えることを特徴とする方法。 - 前記1つまたは複数の構成パーツは、XML要素として表されることを特徴とする請求項11に記載の方法。
- 前記複数のパーツいずれもが、関連するタイプを備え、前記1つまたは複数の構成パーツは、パーツタイプに基づき実行するように構成されることを特徴とする請求項11に記載の方法。
- ドキュメントパーツ選択を実行するように構成されている構成パーツのうち少なくとも一部は、いずれかの間から選択をするパーツに関連付けられているコンテンツタイプに基づき選択を実行できることを特徴とする請求項13に記載の方法。
- コンテンツタイプの選択は、少なくとも一部は、特定のコンテンツタイプを認識するソフトウェアが使用可能かどうかに基づくことを特徴とする請求項14に記載の方法。
- コンピュータ可読命令を含み、前記命令が実行されると、請求項15に記載の方法が実行されることを特徴とする1つまたは複数のコンピュータ読取り可能媒体。
- 請求項16に記載のコンピュータ読取り可能媒体を実現することを特徴とするコンピューティングシステム。
- コンピュータ可読命令を含み、前記命令が実行されると、請求項11に記載の方法が実行されることを特徴とする1つまたは複数のコンピュータ読取り可能媒体。
- 請求項18に記載のコンピュータ読取り可能媒体を実現することを特徴とするコンピューティングシステム。
- ドキュメントを定義するパッケージを構築するステップであって、前記パッケージは前記ドキュメントを構成する複数のパーツを含み、各々のパーツは関連付けられたタイプを有することと、
前記パッケージ内に、1つまたは複数の構成パーツを含めるステップであって、前記構成パーツはドキュメントパーツ選択またはドキュメントパーツ順序付けの少なくとも一方を実行でき、ドキュメントパーツ選択を行う前記構成パーツは、言語タイプ、カラータイプ、ページサイズタイプ、またはコンテンツタイプのうちの少なく1つに基づき前記選択を行うことと、
を備えることを特徴とする方法。 - 前記含めるステップは、前記1つまたは複数の構成パーツをXML要素として表すことを含むことを特徴とする請求項20に記載の方法。
- コンテンツタイプの選択は、少なくとも一部は、特定のコンテンツタイプを認識するソフトウェアが使用可能かどうかに基づくことを特徴とする請求項20に記載の方法。
- コンピュータ可読命令を含み、前記命令が実行されると、請求項22に記載の方法が実行されることを特徴とする1つまたは複数のコンピュータ読取り可能媒体。
- 請求項23に記載のコンピュータ読取り可能媒体を実現することを特徴とするコンピューティングシステム。
- コンピュータ可読命令を含み、前記命令が実行されると、請求項20に記載の方法が実行されることを特徴とする1つまたは複数のコンピュータ読取り可能媒体。
- 請求項25に記載のコンピュータ読取り可能媒体を実現することを特徴とするコンピューティングシステム。
- ドキュメントを定義するパッケージを受信するステップであって、前記パッケージは前記ドキュメントを構成する複数のパーツを含み、各々のパーツは関連付けられたタイプを有し、前記パッケージは1つまたは複数の構成パーツを含み、前記構成パーツはドキュメントパーツ選択またはドキュメントパーツ順序付けの少なくともいずれか一方を実行することができ、ドキュメントパーツ選択を行う前記構成パーツは、言語タイプ、カラータイプ、ページサイズタイプ、コンテンツタイプのうちの少なくとも1つに基づいて前記選択を実行できることと、
前記1つまたは複数の構成パーツを識別するのに前記パッケージを処理するステップと、
前記1つまたは複数の構成パーツに関連付けられたアクションを実行するステップと、
を備えることを特徴とする方法。 - 前記1つまたは複数の構成パーツは、XML要素として表されることを特徴とする請求項27に記載の方法。
- コンテンツタイプの選択は、少なくとも一部は、特定のコンテンツタイプを認識するソフトウェアが使用可能かどうかに基づくことを特徴とする請求項27に記載の方法。
- コンピュータ可読命令を含み、前記命令が実行されると、請求項29に記載の方法が実行されることを特徴とする1つまたは複数のコンピュータ読取り可能媒体。
- 請求項30に記載のコンピュータ読取り可能媒体を実現することを特徴とするコンピューティングシステム。
- コンピュータ可読命令を含み、前記命令が実行されると、請求項27に記載の方法が実行されることを特徴とする1つまたは複数のコンピュータ読取り可能媒体。
- 請求項32に記載のコンピュータ読取り可能媒体を実現することを特徴とするコンピューティングシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/836,608 US7549118B2 (en) | 2004-04-30 | 2004-04-30 | Methods and systems for defining documents with selectable and/or sequenceable parts |
PCT/US2004/023369 WO2005111847A1 (en) | 2004-04-30 | 2004-07-22 | Defining documents with selectable and/or sequenceable parts |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007535747A true JP2007535747A (ja) | 2007-12-06 |
Family
ID=35240755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007510681A Pending JP2007535747A (ja) | 2004-04-30 | 2004-07-22 | ドキュメントに選択可能なまたは/および順序付け可能なパーツを定義する方法およびシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US7549118B2 (ja) |
EP (1) | EP1627321A4 (ja) |
JP (1) | JP2007535747A (ja) |
KR (1) | KR101109280B1 (ja) |
CN (1) | CN1809825B (ja) |
WO (1) | WO2005111847A1 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0127805D0 (en) * | 2001-11-20 | 2002-01-09 | Smithkline Beecham Plc | Pharmaceutical composition |
AU2003901428A0 (en) | 2003-03-24 | 2003-04-10 | Objective Systems Pty Ltd | A system and method for formatting and distributing reading material |
US8661332B2 (en) * | 2004-04-30 | 2014-02-25 | Microsoft Corporation | Method and apparatus for document processing |
US7383500B2 (en) | 2004-04-30 | 2008-06-03 | Microsoft Corporation | Methods and systems for building packages that contain pre-paginated documents |
US8363232B2 (en) * | 2004-05-03 | 2013-01-29 | Microsoft Corporation | Strategies for simultaneous peripheral operations on-line using hierarchically structured job information |
US8243317B2 (en) | 2004-05-03 | 2012-08-14 | Microsoft Corporation | Hierarchical arrangement for spooling job data |
US7580948B2 (en) | 2004-05-03 | 2009-08-25 | Microsoft Corporation | Spooling strategies using structured job information |
US20070182990A1 (en) * | 2004-06-17 | 2007-08-09 | Objective Systems Pty Limited | Reproduction of documents into requested forms |
US7617450B2 (en) * | 2004-09-30 | 2009-11-10 | Microsoft Corporation | Method, system, and computer-readable medium for creating, inserting, and reusing document parts in an electronic document |
JPWO2006051957A1 (ja) * | 2004-11-12 | 2008-05-29 | 株式会社ジャストシステム | 文書処理装置及び文書処理方法 |
JPWO2006051960A1 (ja) * | 2004-11-12 | 2008-05-29 | 株式会社ジャストシステム | 文書処理装置及び文書処理方法 |
US7617451B2 (en) * | 2004-12-20 | 2009-11-10 | Microsoft Corporation | Structuring data for word processing documents |
US7617444B2 (en) * | 2004-12-20 | 2009-11-10 | Microsoft Corporation | File formats, methods, and computer program products for representing workbooks |
US7620889B2 (en) * | 2004-12-20 | 2009-11-17 | Microsoft Corporation | Method and system for linking data ranges of a computer-generated document with associated extensible markup language elements |
US7614000B2 (en) * | 2004-12-20 | 2009-11-03 | Microsoft Corporation | File formats, methods, and computer program products for representing presentations |
US7617229B2 (en) | 2004-12-20 | 2009-11-10 | Microsoft Corporation | Management and use of data in a computer-generated document |
US7752632B2 (en) | 2004-12-21 | 2010-07-06 | Microsoft Corporation | Method and system for exposing nested data in a computer-generated document in a transparent manner |
US7770180B2 (en) | 2004-12-21 | 2010-08-03 | Microsoft Corporation | Exposing embedded data in a computer-generated document |
US20060212452A1 (en) * | 2005-03-18 | 2006-09-21 | Cornacchia Louis G Iii | System and method for remotely inputting and retrieving records and generating reports |
WO2006116676A2 (en) | 2005-04-28 | 2006-11-02 | Wms Gaming Inc. | Wagering game device having ubiquitous character set |
WO2007019571A2 (en) | 2005-08-09 | 2007-02-15 | Compography, Inc. | Methods and apparatuses to assemble, extract and deploy content from electronic documents |
US7786994B2 (en) * | 2006-10-26 | 2010-08-31 | Microsoft Corporation | Determination of unicode points from glyph elements |
US20080104203A1 (en) * | 2006-10-31 | 2008-05-01 | Microsoft Corporation | Viewing Digital Information Over a Network |
US8856647B2 (en) * | 2009-02-20 | 2014-10-07 | Microsoft Corporation | Font handling for viewing documents on the web |
US20120056428A1 (en) * | 2010-09-03 | 2012-03-08 | Cvg Management Corporation | Vehicle wind turbine |
CN102004722B (zh) * | 2010-10-19 | 2013-08-21 | 北京红旗中文贰仟软件技术有限公司 | 信息文档的处理方法及装置 |
US20140019891A1 (en) * | 2011-03-31 | 2014-01-16 | Lukup Media Pvt Ltd | System and method for creating and delivering platform independent interactive applications on user devices |
KR101403095B1 (ko) * | 2013-04-01 | 2014-06-11 | 한국과학기술원 | 그래프 채색 알고리즘을 이용한 태스크 지향적 서비스의 분산 코디네이션 방법 및 그 시스템 |
US9317489B2 (en) * | 2013-06-27 | 2016-04-19 | Adobe Systems Incorporated | Vector graphic conversion into fonts |
US9792276B2 (en) * | 2013-12-13 | 2017-10-17 | International Business Machines Corporation | Content availability for natural language processing tasks |
US9881395B2 (en) | 2015-08-21 | 2018-01-30 | Sap Se | Rendering multi-part glyphs |
CN108268577A (zh) * | 2017-01-13 | 2018-07-10 | 优视科技有限公司 | 图集内容承载页生成方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000003315A (ja) * | 1998-06-15 | 2000-01-07 | Matsushita Electric Ind Co Ltd | 電子メール端末 |
JP2002140319A (ja) * | 2000-10-31 | 2002-05-17 | Cm C:Kk | 部品説明書の作成支援方法、部品説明書の作成支援システム、及びコンピュータ読取可能な記録媒体 |
Family Cites Families (138)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4410286A (en) | 1981-06-16 | 1983-10-18 | International Business Machines Corporation | Printing complex characters |
US4594674A (en) | 1983-02-18 | 1986-06-10 | International Business Machines Corporation | Generating and storing electronic fonts |
US4649513A (en) | 1983-11-15 | 1987-03-10 | International Business Machines Corporation | Apparatus and method for processing system printing data records on a page printer |
US4870611A (en) | 1983-11-15 | 1989-09-26 | International Business Machines Corporation | Apparatus and method for system printing mode control |
US5148366A (en) | 1989-10-16 | 1992-09-15 | Medical Documenting Systems, Inc. | Computer-assisted documentation system for enhancing or replacing the process of dictating and transcribing |
US5579519A (en) | 1990-03-05 | 1996-11-26 | Interleaf, Inc. | Extensible electronic document processing system for creating new classes of active documents |
US5222205A (en) | 1990-03-16 | 1993-06-22 | Hewlett-Packard Company | Method for generating addresses to textured graphics primitives stored in rip maps |
US5469533A (en) | 1992-07-10 | 1995-11-21 | Microsoft Corporation | Resource-oriented printer system and method of operation |
AU675816B2 (en) * | 1992-12-14 | 1997-02-20 | Commonwealth Of Australia, The | Message document security |
US5745910A (en) | 1993-05-10 | 1998-04-28 | Apple Computer, Inc. | Frame structure which provides an interface between parts of a compound document |
US5487138A (en) | 1993-09-02 | 1996-01-23 | Hewlett-Packard Company | Method to reduce memory requirements in Asian printers while improving performance |
US5537526A (en) | 1993-11-12 | 1996-07-16 | Taugent, Inc. | Method and apparatus for processing a display document utilizing a system level document framework |
US5752056A (en) | 1994-03-02 | 1998-05-12 | Apple Computer, Inc. | System for binding document parts and handlers by fidelity of parts or by automatic translation of parts |
US5649083A (en) | 1994-04-15 | 1997-07-15 | Hewlett-Packard Company | System and method for dithering and quantizing image data to optimize visual quality of a color recovered image |
US5608909A (en) | 1994-04-15 | 1997-03-04 | Microsoft Corporation | Method and system for caching presentation data of a source object in a presentation cache |
US5579466A (en) | 1994-09-01 | 1996-11-26 | Microsoft Corporation | Method and system for editing and formatting data in a dialog window |
US5602974A (en) | 1994-10-05 | 1997-02-11 | Microsoft Corporation | Device independent spooling in a print architecture |
US5881213A (en) | 1994-10-05 | 1999-03-09 | Microsoft Corporation | Deferred printing |
JPH08297669A (ja) | 1994-12-27 | 1996-11-12 | Internatl Business Mach Corp <Ibm> | 複合ドキュメント内の複数のパートを自動的にリンクするシステムおよび方法 |
JPH08212205A (ja) | 1995-02-07 | 1996-08-20 | Nec Corp | 複合文書管理システム |
US6952801B2 (en) * | 1995-06-07 | 2005-10-04 | R.R. Donnelley | Book assembly process and apparatus for variable imaging system |
US6199082B1 (en) | 1995-07-17 | 2001-03-06 | Microsoft Corporation | Method for delivering separate design and content in a multimedia publishing system |
US5675788A (en) | 1995-09-15 | 1997-10-07 | Infonautics Corp. | Method and apparatus for generating a composite document on a selected topic from a plurality of information sources |
JPH09128380A (ja) | 1995-10-30 | 1997-05-16 | Matsushita Electric Ind Co Ltd | 文書蓄積管理システム |
JPH09128379A (ja) * | 1995-11-06 | 1997-05-16 | Hitachi Ltd | 情報処理方法 |
US5893109A (en) | 1996-03-15 | 1999-04-06 | Inso Providence Corporation | Generation of chunks of a long document for an electronic book system |
US5903903A (en) | 1996-04-25 | 1999-05-11 | Microsoft Corporation | System for determining the sequence and placement of pages for a multiple-page document |
US5903905A (en) | 1996-04-30 | 1999-05-11 | Microsoft Corporation | Method for simultaneously constructing and displaying a dynamic preview of a document that provides an accurate customized document |
US6457017B2 (en) * | 1996-05-17 | 2002-09-24 | Softscape, Inc. | Computing system for information management |
US5933841A (en) * | 1996-05-17 | 1999-08-03 | Ameritech Corporation | Structured document browser |
US6026416A (en) * | 1996-05-30 | 2000-02-15 | Microsoft Corp. | System and method for storing, viewing, editing, and processing ordered sections having different file formats |
US6144974A (en) | 1996-12-13 | 2000-11-07 | Adobe Systems Incorporated | Automated layout of content in a page framework |
US6021202A (en) | 1996-12-20 | 2000-02-01 | Financial Services Technology Consortium | Method and system for processing electronic documents |
US6449653B2 (en) | 1997-03-25 | 2002-09-10 | Microsoft Corporation | Interleaved multiple multimedia stream for synchronized transmission over a computer network |
US6023714A (en) | 1997-04-24 | 2000-02-08 | Microsoft Corporation | Method and system for dynamically adapting the layout of a document to an output device |
US6269403B1 (en) | 1997-06-30 | 2001-07-31 | Microsoft Corporation | Browser and publisher for multimedia object storage, retrieval and transfer |
US6604144B1 (en) | 1997-06-30 | 2003-08-05 | Microsoft Corporation | Data format for multimedia object storage, retrieval and transfer |
US6182080B1 (en) * | 1997-09-12 | 2001-01-30 | Netvoyage Corporation | System, method and computer program product for storage of a plurality of documents within a single file |
US6094665A (en) | 1997-09-18 | 2000-07-25 | Hewlett-Packard Company | Method and apparatus for correcting a uniform resource identifier |
JP3968176B2 (ja) * | 1997-10-06 | 2007-08-29 | 松下電器産業株式会社 | 送信文書編集装置、受信文書処理装置 |
US6134552A (en) | 1997-10-07 | 2000-10-17 | Sap Aktiengesellschaft | Knowledge provider with logical hyperlinks |
US6594682B2 (en) * | 1997-10-28 | 2003-07-15 | Microsoft Corporation | Client-side system for scheduling delivery of web content and locally managing the web content |
GB9800100D0 (en) * | 1998-01-06 | 1998-03-04 | Ibm | A method and component for presentation of information |
US6470364B1 (en) | 1998-02-24 | 2002-10-22 | Sun Microsystems, Inc. | Method and apparatus for generating text components |
US20010013043A1 (en) | 1998-03-12 | 2001-08-09 | Richard J. Wagner | System and method for determining browser package and version compatibility of a web document |
US6247018B1 (en) | 1998-04-16 | 2001-06-12 | Platinum Technology Ip, Inc. | Method for processing a file to generate a database |
US6212530B1 (en) | 1998-05-12 | 2001-04-03 | Compaq Computer Corporation | Method and apparatus based on relational database design techniques supporting modeling, analysis and automatic hypertext generation for structured document collections |
US6496206B1 (en) | 1998-06-29 | 2002-12-17 | Scansoft, Inc. | Displaying thumbnail images of document pages in an electronic folder |
US6182096B1 (en) | 1998-06-30 | 2001-01-30 | International Business Machines Corporation | Method and apparatus of creating highly portable output files by combining pages from multiple input files |
US6067531A (en) | 1998-07-21 | 2000-05-23 | Mci Communications Corporation | Automated contract negotiator/generation system and method |
US6538760B1 (en) | 1998-09-08 | 2003-03-25 | International Business Machines Corp. | Method and apparatus for generating a production print stream from files optimized for viewing |
US6407821B1 (en) | 1998-09-08 | 2002-06-18 | International Business Machines Corporation | Method and apparatus for printing documents including embedded print objects with an intelligent printing system |
US6715126B1 (en) | 1998-09-16 | 2004-03-30 | International Business Machines Corporation | Efficient streaming of synchronized web content from multiple sources |
US6549918B1 (en) | 1998-09-21 | 2003-04-15 | Microsoft Corporation | Dynamic information format conversion |
US5993088A (en) | 1998-09-30 | 1999-11-30 | International Business Machines Corporation | Method for improving print performance and quality by accumulating, storing and using resource accounting information with a print job |
US6362870B2 (en) | 1998-10-26 | 2002-03-26 | Hewlett-Packard Company | Image copier having enhanced duplex capabilities; method of printing a copy of a document to produce a duplex copy product |
US6583789B1 (en) | 1998-12-03 | 2003-06-24 | International Business Machines Corporation | Method and system for processing glyph-based quality variability requests |
US6675356B1 (en) * | 1998-12-22 | 2004-01-06 | Xerox Corporation | Distributed document-based calendaring system |
US6608693B1 (en) | 1999-04-30 | 2003-08-19 | Hewlett-Packard Development Company, L.P. | Apparatus and method for generating a print job from a command stream describing multiple copies of a document |
US6658477B1 (en) | 1999-05-12 | 2003-12-02 | Microsoft Corporation | Improving the control of streaming data through multiple processing modules |
US6674540B1 (en) | 1999-05-24 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | Assembling and printing compound documents |
DE19964198A1 (de) | 1999-07-15 | 2001-04-12 | Erland Wittkoetter | Datenverarbeitungsvorrichtung |
US6675353B1 (en) | 1999-07-26 | 2004-01-06 | Microsoft Corporation | Methods and systems for generating XML documents |
US6694485B1 (en) * | 1999-07-27 | 2004-02-17 | International Business Machines Corporation | Enhanced viewing of hypertext markup language file |
US6763343B1 (en) | 1999-09-20 | 2004-07-13 | David M. Brooke | Preventing duplication of the data in reference resource for XML page generation |
US6418448B1 (en) * | 1999-12-06 | 2002-07-09 | Shyam Sundar Sarkar | Method and apparatus for processing markup language specifications for data and metadata used inside multiple related internet documents to navigate, query and manipulate information from a plurality of object relational databases over the web |
US6812941B1 (en) | 1999-12-09 | 2004-11-02 | International Business Machines Corp. | User interface management through view depth |
US20010044813A1 (en) * | 2000-01-10 | 2001-11-22 | Frank Kenneth B. | Document production platform |
US6981207B1 (en) | 2000-01-11 | 2005-12-27 | Ecora Software Corporation | Automatic documentation of configurable systems by outputting explanatory information of configuration parameters in a narrative format and configuration parameters differences |
US6643652B2 (en) | 2000-01-14 | 2003-11-04 | Saba Software, Inc. | Method and apparatus for managing data exchange among systems in a network |
JP3879350B2 (ja) * | 2000-01-25 | 2007-02-14 | 富士ゼロックス株式会社 | 構造化文書処理システム及び構造化文書処理方法 |
US6785673B1 (en) * | 2000-02-09 | 2004-08-31 | At&T Corp. | Method for converting relational data into XML |
US6591278B1 (en) | 2000-03-03 | 2003-07-08 | R-Objects, Inc. | Project data management system and method |
WO2001067362A2 (en) | 2000-03-07 | 2001-09-13 | Broadcom Corporation | An interactive system for and method of automating the generation of legal documents |
US7284199B2 (en) * | 2000-03-29 | 2007-10-16 | Microsoft Corporation | Process of localizing objects in markup language documents |
JP2004514192A (ja) * | 2000-04-03 | 2004-05-13 | スターク ジュールゲン | コンテンツ制御された電子メッセージ処理を行うための方法及びシステム |
US7055095B1 (en) | 2000-04-14 | 2006-05-30 | Picsel Research Limited | Systems and methods for digital document processing |
US7009626B2 (en) * | 2000-04-14 | 2006-03-07 | Picsel Technologies Limited | Systems and methods for generating visual representations of graphical data and digital document processing |
US6789229B1 (en) | 2000-04-19 | 2004-09-07 | Microsoft Corporation | Document pagination based on hard breaks and active formatting tags |
US6781609B1 (en) * | 2000-05-09 | 2004-08-24 | International Business Machines Corporation | Technique for flexible inclusion of information items and various media types in a user interface |
US6771291B1 (en) | 2000-06-07 | 2004-08-03 | The Perfect Web Corporation | Method for developing electronic documents employing multiple display regions |
JP2002024211A (ja) * | 2000-06-30 | 2002-01-25 | Hitachi Ltd | 文書管理方法およびシステム並びにその処理プログラムを格納した記憶媒体 |
US6681223B1 (en) | 2000-07-27 | 2004-01-20 | International Business Machines Corporation | System and method of performing profile matching with a structured document |
US20020049790A1 (en) | 2000-08-08 | 2002-04-25 | Ricker Jeffrey M | Data interchange format transformation method and data dictionary used therefor |
AU2001287421A1 (en) | 2000-08-21 | 2002-03-04 | Thoughtslinger Corporation | Simultaneous multi-user document editing system |
US7584413B2 (en) * | 2000-09-12 | 2009-09-01 | Canon Kabuhsiki Kaisha | Electronic document binder builder |
US7694218B2 (en) | 2000-09-13 | 2010-04-06 | Canon Kabushiki Kaisha | Information processing apparatus, method therefor, and computer-readable memory |
US6657647B1 (en) * | 2000-09-25 | 2003-12-02 | Xoucin, Inc. | Controlling the order in which content is displayed in a browser |
JP3494292B2 (ja) | 2000-09-27 | 2004-02-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アプリケーションデータの誤り訂正支援方法、コンピュータ装置、アプリケーションデータ提供システム、および記憶媒体 |
US7051276B1 (en) * | 2000-09-27 | 2006-05-23 | Microsoft Corporation | View templates for HTML source documents |
US20020065857A1 (en) | 2000-10-04 | 2002-05-30 | Zbigniew Michalewicz | System and method for analysis and clustering of documents for search engine |
US6925631B2 (en) * | 2000-12-08 | 2005-08-02 | Hewlett-Packard Development Company, L.P. | Method, computer system and computer program product for processing extensible markup language streams |
FR2818409B1 (fr) * | 2000-12-18 | 2003-03-14 | Expaway | Procede pour diviser des documents structures en plusieurs parties |
US7120868B2 (en) * | 2002-05-30 | 2006-10-10 | Microsoft Corp. | System and method for adaptive document layout via manifold content |
US6907457B2 (en) | 2001-01-25 | 2005-06-14 | Dell Inc. | Architecture for access to embedded files using a SAN intermediate device |
US7210096B2 (en) * | 2001-01-30 | 2007-04-24 | International Business Machines Corporation | Methods and apparatus for constructing semantic models for document authoring |
US20020107886A1 (en) * | 2001-02-07 | 2002-08-08 | Gentner Donald R. | Method and apparatus for automatic document electronic versioning system |
US20020116421A1 (en) | 2001-02-17 | 2002-08-22 | Fox Harold L. | Method and system for page-like display, formating and processing of computer generated information on networked computers |
US20040015890A1 (en) * | 2001-05-11 | 2004-01-22 | Windriver Systems, Inc. | System and method for adapting files for backward compatibility |
EP1333374B1 (en) * | 2001-06-11 | 2016-09-07 | Sap Se | Dynamic generation of language localized and self-verified Java classes using XML descriptions and static initializers |
US7152128B2 (en) * | 2001-08-24 | 2006-12-19 | Intel Corporation | General input/output architecture, protocol and related methods to manage data integrity |
US7054841B1 (en) | 2001-09-27 | 2006-05-30 | I2 Technologies Us, Inc. | Document storage and classification |
CN100338573C (zh) * | 2001-10-04 | 2007-09-19 | 皇家飞利浦电子股份有限公司 | 设计用户界面样式的方法以及具有自适应用户界面的设备 |
GB2381424B (en) * | 2001-10-26 | 2005-01-05 | Roke Manor Research | A method of controlling the amount of data transferred between a terminal and a server |
US7328261B2 (en) * | 2001-11-21 | 2008-02-05 | Clearcube Technology, Inc. | Distributed resource manager |
JP2003223440A (ja) * | 2001-11-21 | 2003-08-08 | Ricoh Co Ltd | 文書処理装置 |
US6910843B2 (en) | 2001-11-26 | 2005-06-28 | Hewlett-Packard Development Company, L.P. | Cover authoring systems and methods and bookbinding systems incorporating the same |
US7146564B2 (en) | 2001-12-21 | 2006-12-05 | Xmlcities, Inc. | Extensible stylesheet designs using meta-tag and/or associated meta-tag information |
US6912555B2 (en) | 2002-01-18 | 2005-06-28 | Hewlett-Packard Development Company, L.P. | Method for content mining of semi-structured documents |
US7451236B2 (en) * | 2002-02-26 | 2008-11-11 | Ricoh Company, Ltd. | Document distribution and storage system |
JP2003281197A (ja) | 2002-03-25 | 2003-10-03 | Honda Motor Co Ltd | 電子パーツリストシステム |
US7669116B2 (en) * | 2002-03-26 | 2010-02-23 | Accenture Global Services, Gmbh | Single access point for filing of converted electronic forms to multiple processing entities |
US20030222890A1 (en) * | 2002-05-31 | 2003-12-04 | David Salesin | System and method for adaptable presentations |
US6839910B2 (en) * | 2002-07-05 | 2005-01-11 | David Morrow | Protective athletic equipment |
AU2003259744A1 (en) * | 2002-08-09 | 2004-02-25 | Corticon Technologies, Inc. | Rule engine |
FR2844370B1 (fr) * | 2002-09-05 | 2008-05-09 | Canon Kk | Document electronique de description d'un service informatique |
US7418661B2 (en) * | 2002-09-17 | 2008-08-26 | Hewlett-Packard Development Company, L.P. | Published web page version tracking |
US20040066527A1 (en) * | 2002-10-02 | 2004-04-08 | Nexpress Solutions Llc | Finish verification in printing |
KR100636909B1 (ko) * | 2002-11-14 | 2006-10-19 | 엘지전자 주식회사 | 확장성 표기 언어 기반의 전자문서 버전 매김 및 버전을이용한 갱신 문서 제공 방법 |
US7441116B2 (en) * | 2002-12-30 | 2008-10-21 | International Business Machines Corporation | Secure resource distribution through encrypted pointers |
US20040221233A1 (en) * | 2003-04-29 | 2004-11-04 | David Thielen | Systems and methods for report design and generation |
US20040230903A1 (en) * | 2003-05-16 | 2004-11-18 | Dethe Elza | Method and system for enabling collaborative authoring of hierarchical documents with associated business logic |
US20050022113A1 (en) * | 2003-07-24 | 2005-01-27 | Hanlon Robert Eliot | System and method to efficiently switch between paper, electronic and audio versions of documents |
US7171618B2 (en) * | 2003-07-30 | 2007-01-30 | Xerox Corporation | Multi-versioned documents and method for creation and use thereof |
US20050063010A1 (en) * | 2003-09-24 | 2005-03-24 | Hewlett-Packard Development Company, L.P. | Multiple flow rendering using dynamic content |
US8065616B2 (en) * | 2003-10-27 | 2011-11-22 | Nokia Corporation | Multimedia presentation editor for a small-display communication terminal or computing device |
US7434160B2 (en) * | 2003-12-03 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | PDF document to PPML template translation |
US7296038B2 (en) * | 2004-04-01 | 2007-11-13 | Sap Aktiengesellschaft | Context resolution |
US7487448B2 (en) * | 2004-04-30 | 2009-02-03 | Microsoft Corporation | Document mark up methods and systems |
US7359902B2 (en) * | 2004-04-30 | 2008-04-15 | Microsoft Corporation | Method and apparatus for maintaining relationships between parts in a package |
US8363232B2 (en) * | 2004-05-03 | 2013-01-29 | Microsoft Corporation | Strategies for simultaneous peripheral operations on-line using hierarchically structured job information |
US7769904B2 (en) * | 2004-06-09 | 2010-08-03 | L-3 Communications Integrated Systems L.P. | Extensible binary mark-up language for efficient XML-based data communications and related systems and methods |
US7475341B2 (en) * | 2004-06-15 | 2009-01-06 | At&T Intellectual Property I, L.P. | Converting the format of a portion of an electronic document |
US7636891B2 (en) * | 2004-08-31 | 2009-12-22 | Research In Motion Limited | Method for paginating a document structure of a document for viewing on a mobile communication device |
US7712027B2 (en) * | 2004-08-31 | 2010-05-04 | Research In Motion Limited | Method for document page delivery to a mobile communication device |
US7277890B2 (en) * | 2004-12-01 | 2007-10-02 | Research In Motion Limited | Method of finding a search string in a document for viewing on a mobile communication device |
US7614000B2 (en) * | 2004-12-20 | 2009-11-03 | Microsoft Corporation | File formats, methods, and computer program products for representing presentations |
US7154503B2 (en) * | 2005-03-31 | 2006-12-26 | Microsoft Corporation | Methods and systems for brush composition |
-
2004
- 2004-04-30 US US10/836,608 patent/US7549118B2/en not_active Expired - Lifetime
- 2004-07-22 KR KR1020057010458A patent/KR101109280B1/ko active IP Right Grant
- 2004-07-22 WO PCT/US2004/023369 patent/WO2005111847A1/en not_active Application Discontinuation
- 2004-07-22 EP EP04757161A patent/EP1627321A4/en not_active Ceased
- 2004-07-22 CN CN2004800013364A patent/CN1809825B/zh not_active Expired - Fee Related
- 2004-07-22 JP JP2007510681A patent/JP2007535747A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000003315A (ja) * | 1998-06-15 | 2000-01-07 | Matsushita Electric Ind Co Ltd | 電子メール端末 |
JP2002140319A (ja) * | 2000-10-31 | 2002-05-17 | Cm C:Kk | 部品説明書の作成支援方法、部品説明書の作成支援システム、及びコンピュータ読取可能な記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
WO2005111847A1 (en) | 2005-11-24 |
CN1809825B (zh) | 2011-10-12 |
US20050251739A1 (en) | 2005-11-10 |
KR101109280B1 (ko) | 2012-01-31 |
CN1809825A (zh) | 2006-07-26 |
US7549118B2 (en) | 2009-06-16 |
EP1627321A4 (en) | 2011-12-07 |
KR20070055303A (ko) | 2007-05-30 |
EP1627321A1 (en) | 2006-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4854658B2 (ja) | ドキュメントを処理する方法および装置 | |
JP5231013B2 (ja) | パッケージの中のパーツ間の関係を維持する方法および装置 | |
JP4698668B2 (ja) | 文書マークアップ方法およびシステム | |
US7383500B2 (en) | Methods and systems for building packages that contain pre-paginated documents | |
RU2368943C2 (ru) | Модульный формат документов | |
US7418652B2 (en) | Method and apparatus for interleaving parts of a document | |
JP2007535747A (ja) | ドキュメントに選択可能なまたは/および順序付け可能なパーツを定義する方法およびシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100216 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20100316 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100316 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100514 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100730 |