JP2010218577A - ドキュメントを処理する方法および装置 - Google Patents

ドキュメントを処理する方法および装置 Download PDF

Info

Publication number
JP2010218577A
JP2010218577A JP2010129676A JP2010129676A JP2010218577A JP 2010218577 A JP2010218577 A JP 2010218577A JP 2010129676 A JP2010129676 A JP 2010129676A JP 2010129676 A JP2010129676 A JP 2010129676A JP 2010218577 A JP2010218577 A JP 2010218577A
Authority
JP
Japan
Prior art keywords
package
markup
xml
content
parts
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.)
Granted
Application number
JP2010129676A
Other languages
English (en)
Other versions
JP5334916B2 (ja
Inventor
Jerry Dunietz
ダニエッツ ジェリー
Charles P Jazdzewski
ピー.ジャズスキー チャールズ
David Ornstein
オルステイン デービッド
Rob Relyea
レリア ロブ
Oliver H Foehr
エイチ.フォール オリバー
Michael J Hillberg
ジェイ.ヒルバーグ マイケル
Joseph D Ternasky
ディー.ターナスカイ ジョセフ
Robert A Little
エイ.リトル ロバート
Christopher L Anderson
エル.アンダーソン クリストファー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010218577A publication Critical patent/JP2010218577A/ja
Application granted granted Critical
Publication of JP5334916B2 publication Critical patent/JP5334916B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, 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)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】 様々な環境および様々なシナリオにおいて各種デバイスおよびアプリケーションに完全な忠実性を保ちながら表示または印刷することができるように文書コンテンツを処理すること。
【解決手段】 モジュール形式のコンテンツフレームワークおよびドキュメントフォーマットの方法およびシステムである。ドキュメント中心のコンテンツの構成、パッケージ化、配布、およびレンダリングのためのビルディングブロックを定義する。これらのビルディングブロックは、ソフトウェアおよびハードウェアシステムによりドキュメントの生成、交換、および表示を信頼性が高く一貫性のある形で行えるようにするドキュメントフォーマットのためのプラットフォーム依存性のないフレームワークを定義する。この一般的なフレームワークおよびフォーマットに加えて、一般的なフレームワークを使用してリーチパッケージフォーマットと呼ばれる特定のフォーマットが定義される。
【選択図】 図1

Description

本発明は、コンテンツフレームワーク(content framework)、ドキュメントフォーマット(documentformat)、ならびにその両方を利用できる関連する方法およびシステムに関する。
今日では、コンテンツを表す様々な種類のコンテンツフレームワーク、および、様々な種類のドキュメントをフォーマットする様々な種類のドキュメントフォーマットがある。多くの場合、関連するドキュメントのビルド、作成、処理、または消費のために、これらのフレームワークおよびフォーマットのそれぞれが、専用の関連するソフトウェアを必要とする。しかるべきデバイスに特定の関連するソフトウェアをインストールしたことのある人にとっては、関連ドキュメントのビルド、作成、処理、または消費は、大きな問題ではない。しかるべきソフトウェアを所有していない人にとっては、関連ドキュメントのビルド、作成、処理、または消費は、通常、不可能である。
このような背景において、ドキュメントの作成と消費に関する限り、遍在性(Ubiquityあらゆるところで使用できること)に対する要求は絶えずある。モジュール形式のコンテンツフレームワークおよびドキュメントフォーマットの方法およびシステムについて説明する。
説明されるフレームワークおよびフォーマットでは、ドキュメント中心のコンテンツの構成、パッケージ化、配布、および表示のためのビルディングブロックの一式を定義する。これらのビルディングブロックは、ソフトウェアおよびハードウェアシステムによりドキュメントの生成、交換、および表示を信頼性が高く一貫性のある形で行えるようにするドキュメントフォーマットのためのプラットフォーム依存性のないフレームワークを定義する。このフレームワークおよびフォーマットは、自由度が高く、拡張性のある方式で設計されている。
この一般的なフレームワークおよびフォーマットに加えて、一般的なフレームワークを使用して「リーチパッケージ」フォーマット(reachpackage format)と呼ばれる特定のフォーマットが定義される。リーチパッケージフォーマットは、ページ付けされたドキュメントを保存するためのフォーマットである。リーチパッケージのコンテンツは、様々な環境および様々なシナリオにおいて各種デバイスおよびアプリケーションに完全な忠実性を保ちながら、表示または印刷することができる。
一実施形態におけるフレームワークおよびフォーマットの実施例のコンポーネントのブロック図である。 一実施形態における多数のパーツを含むドキュメントを保持するパッケージの実施例のブロック図である。 一実施形態における、パッケージを作成するライターおよびパッケージを読み込むリーダーの実施例を示すブロック図である。 3つの別々のページをバインドして1つにするパーツの例を示す図である。 一実施形態における、レポートの英語とフランス語の両方の表現を収めた財務レポートを作成するように配列されたセレクタおよびシーケンスの例を示す図である。 一実施形態における、ライターおよびリーダーが連携してパッケージに関する通信を行ういくつかの例を示す図である。 ドキュメントの複数のパーツをインタリーブする一実施例を示す図である。 図7に示されているドキュメントの複数のパーツをパッケージ化する様々な実施例を示す図である。 図7に示されているドキュメントの複数のパーツをパッケージ化する様々な実施例を示す図である。 一実施形態における、リーチパッケージの実施例およびパッケージを構成する、またはパッケージ内に見つかる有効な種類のパーツのそれぞれを示す図である。 一実施形態における、Common LanguageRuntime概念をXMLにマッピングする実施例を示す図である。 一実施形態における、縦書きと横書きの両方のグリフメトリクスを例示する図である。 一実施形態による1対1のクラスタマップを例示する図である。 一実施形態による多対1のクラスタマップを例示する図である。 一実施形態による1対多のクラスタマップを例示する図である。 一実施形態による多対多のクラスタマップを例示する図である。
概要
本明細書では、モジュール形式のコンテンツフレームワークおよびドキュメントフォーマットについて説明する。フレームワークおよびフォーマットでは、ドキュメント中心のコンテンツの構成、パッケージ化、配布、および表示のためのビルディングブロックの一式を定義する。これらのビルディングブロックは、ソフトウェアおよびハードウェアシステムによるドキュメントの生成、交換、および表示を、信頼性が高く一貫性のある形で行えるようにするドキュメントフォーマットのための、プラットフォーム依存性のないフレームワークを定義する。このフレームワークおよびフォーマットは、自由度が高く、拡張性のある方式で設計されている。様々な実施形態においては、取り込めるコンテンツの種類、コンテンツの提示方法、またはコンテンツの取り扱いのためクライアントをビルドするプラットフォームに関して、なんら制約はない。
この一般的なフレームワークのほかに、一般的なフレームワークを使用して特定のフォーマットを定義する。このフォーマットは、本明細書ではリーチパッケージフォーマットと呼ばれ、ページ付けされたまたは事前ページ付けされたドキュメントの保存ためのフォーマットである。リーチパッケージのコンテンツは、様々な環境および様々なシナリオにおいて、各種デバイスおよびアプリケーションに完全な忠実性を保ちながら表示または印刷することができる。
後述のフレームワークの複数の目標のうちの1つは、後述のフレームワークおよびフォーマットにより作成されるコンテンツを読み書きする、独立して作成されたソフトウェアおよびハードウェアシステムの相互運用性を保証しようということである。この相互運用性を実現するために、説明されているフォーマットは、コンテンツを読み書きするシステムが満たしていなければならない正式な要求条件を定義する。
以下の説明は、以下の行に構成され、「フレームワーク」という表題のセクションと「リーチパッケージフォーマット」という表題のセクションの2つの主要セクションに分けられる。
「フレームワーク」という表題のセクションは、具体的なパッケージ化モデルを示し、フレームワークパッケージを構成する様々なパーツおよび関係を説明する。フレームワークパッケージにおける記述的メタデータ(descriptivemetadata)の使用に関する情報を取りあげるとともに、物理的コンテナへのマッピング、フレームワークマークアップの拡張、およびフレームワークバージョン管理機構の使用のプロセスについても説明する。
「リーチパッケージフォーマット」という表題のセクションでは、リーチパッケージと呼ばれるある特定の種類のフレームワークビルドパッケージの構造を検討する。このセクションでは、さらに、固定ペイロードに特有のパッケージパーツについて説明し、リーチパッケージのマークアップモデルおよび描画モデルを定義する。このセクションでは、リーチマークアップ要素およびそのプロパティとさらに具体的なサンプルで締めくくる。
引き続く説明のハイレベルの概要として、図1を考察する。ここでは、一般的に100で表される本発明のフレームワークおよびフォーマットのいくつかの態様を考察する。フレームワークのいくつかのコンポーネントの実施例が102に例示されており、リーチパッケージフォーマットのいくつかのコンポーネントが104に例示されている。
フレームワーク102は、関係コンポーネント、プラガブルコンテナコンポーネント、インタリービング/ストリーミングコンポーネント、およびバージョン管理/拡張性コンポーネントなどのコンポーネントの実施例を含み、それぞれを以下で詳しく調べる。リーチパッケージフォーマット104は、セレクタ/シーケンサコンポーネントおよびパッケージマークアップ定義コンポーネントを含むコンポーネントを含む。
以下の説明では、定期的に図1に戻り、説明されているコンポーネントが、このフレームワークおよびパッケージフォーマットのどこに適合するかを読者が常に概観できるようにする。
フレームワーク
以下の説明では、一般的フレームワークを取りあげる。独立した主要な小見出しは、「パッケージモデル」、「構成パーツ:セレクタおよびシーケンス」、「記述的メタデータ」、「物理的モデル」、「物理的マッピング」、および「バージョン管理および拡張性」である。それぞれの主要な小見出しは、1つまたは複数の関連する小見出しを持つ。
パッケージモデル
このセクションでは、パッケージモデルについて説明し、パッケージおよびパーツ、ドライバ、関係、パッケージ関係、および開始パーツを説明する小見出しが用意される。
パッケージおよびパーツ
例示され、説明されているモデルでは、コンテンツは1つのパッケージ内に保持される。パッケージは、関連するパーツのコレクションを保持する論理エンティティである。パッケージの目的は、ドキュメントのすべての断片(または他の種類のコンテンツ)を集めて、プログラマおよびエンドユーザが簡単に取り扱える1つのオブジェクトにまとめることである。例えば、図2を考察すると、これは、ドキュメントを表すXMLマークアップパーツ202、ドキュメント内で使用されるフォントを記述するフォントパーツ204、ドキュメントのページを記述する多数のページパーツ206、およびドキュメント内の画像を表す画像パーツ208を含む多数のパーツからなる、ドキュメントを保持するパッケージ200を例示している。ドキュメントを表すXMLマークアップパーツ202は、パッケージのコンテンツ全体を解析することなく、検索および参照を容易に行えるという点で有益である。これは、以下においてさらに明白になる。
本明細書全体を通じて、リーダー(消費者ともいう)およびライター(作成者ともいう)という概念を導入し説明する。リーダーという用語は、本明細書で使用されているように、モジュール形式のコンテンツフォーマットベースのファイルまたはパッケージを読み込むエンティティを指す。ライターという用語は、本明細書で使用されているように、モジュール形式のコンテンツフォーマットベースのファイルまたはパッケージを書き込むエンティティを指す。例えば、図3を考察すると、これは、パッケージを作成するライターとパッケージを読み込むリーダーを示している。通常、ライターおよびリーダーは、ソフトウェアとして具体化される。少なくとも一実施形態においては、パッケージの作成およびフォーマットに関連する処理のオーバーヘッドおよび複雑さの大半を、ライター側に負わせる。こうすると、処理の複雑さおよびオーバーヘッドの多くがリーダー側から取り除かれ、当業者であれば理解できるように、これは、多くの現行のモデルからは、新機軸となっている。この側面は、以下においてさらに明らかになる。
少なくとも一実施形態によれば、単一パッケージは、パッケージに保持されているコンテンツの1つまたは複数の表現を含む。多くの場合、パッケージは単一ファイルであり、この明細書においては、コンテナと呼ばれるものである。これは、例えば、エンドユーザがドキュメントのコンポーネント断片(イメージ、フォント、データなど)をすべて付属させてドキュメントを配布する便利な手段となる。パッケージは直接単一ファイルに対応するが、これは必ずしも常にそうであるというわけではない。パッケージは、様々な方法(限定されないが、例えば、単一ファイル、バラバラのファイルのコレクション、データベース、ネットワーク接続を介した一時的移動など)で物理的に表現できる論理エンティティである。したがって、コンテナにパッケージが保持されるが、すべてのパッケージがコンテナの中に格納されるわけではない。
抽象モデルは、物理的な記憶機構とは無関係にパッケージを記述する。例えば、抽象モデルでは、「ファイル」、「ストリーム」、または、パッケージが置かれている物理的世界に関連する他の物理的な用語を参照しない。後述するように、抽象モデルを使用すると、ユーザは、様々な物理的フォーマット、通信プロトコルなどに対するドライバを作成することができる。類推により、アプリケーション側でイメージを印刷したい場合は、プリンタの抽象化を使用する(特定の種類のプリンタを認識するドライバにより与えられる)。したがって、アプリケーション側では、特定の印刷デバイスについて、または印刷デバイスとの通信方法について知る必要がない。
コンテナは、他の方法ではバラバラのファイルのコレクションになりうるものに比べて、多くの点で勝っている。例えば、類似のコンポーネントを集めて、コンテンツにインデックスを付け、圧縮することができる。さらに、コンポーネント間の関係を識別し、権利管理、電子署名、暗号化、およびメタデータをコンポーネントに適用することができる。もちろん、コンテナは、特に上で列挙していない他の機能についても使用することができ、またそれらの機能を実現することができる。
共通パーツプロパティ
例示され、説明されている実施形態では、パーツは、共通プロパティ(例えば、名前)および複数バイトからなるストリームを含む。これは、ファイルシステム内のファイル、またはHTTPサーバ上のリソースに類似している。コンテンツに加えて、それぞれのパーツは、いくつかの共通パーツプロパティを持つ。これらは、名前−パーツの名前と、コンテンツタイプ−パーツ内に格納されているコンテンツのタイプを含む。パーツは、さらに、後述するように、1つまたは複数の関連付けられた関係(relationship)を持つ。
パーツ名は、何らかの方法でパーツを参照する必要が生じたときに必ず使用される。例示され説明されている実施形態においては、名前は階層方式で構成され、ファイルシステム上のパスまたはURIによるパスに類似している。以下にパーツ名の例を示す。
Figure 2010218577
上に示されているように、この実施形態では、パーツ名は以下の特性を持つ。
・パーツ名は、従来のファイルシステムのファイル名に類似している。
・パーツ名は、スラッシュ(「/」)で始まる。
・ファイルシステムのパスまたはURIのパスのように、パス名は一組のディレクトリ風の名前(上の例では、tickets、images/march、およびpages)により階層形式で構成することができる。
・ この階層は、スラッシュで区切られた複数のセグメントからなる。
・名前の最後のセグメントは、従来のファイルシステムのファイル名と似ている。
パーツに名前を付ける規則、特にパーツ名に使用することができる有効な文字は、本明細書で説明されているフレームワークに固有のものであることに注意することが重要である。これらのパーツ名規則は、インターネット標準URI命名規則に基づいている。この実施形態においては、この実施形態でパーツ名を指定するために使用する文法はabs_path構文と正確に一致する。abs_path構文は、RFC2396のセクション3.3(パスコンポーネント)および(Uniform Resource Identifiers(URI:Generic Syntax)仕様の5(Relative URI References)で定義されている。
以下の追加制約事項が、abs_pathに有効なパーツ名として適用される。
・クエリコンポーネントは、セクション3(URI構文コンポーネント)および3.4(クエリコンポーネント)で定義されているように、パーツ名には適用できない。
・フラグメント識別子は、セクション4.1(フラグメント識別子)で説明されているように、パーツ名には適用できない。
・*(「/」セグメント)を既存のパーツのパーツ名に付加することにより作成された名前を持つパーツがあるのは不正である。
パーツ名の文法は、以下のとおりである。
Figure 2010218577
パッケージ内のすべてのパーツの名前のセグメントは、木を形成することがわかる。これは、ファイルシステム内で生じていることに類似しており、ファイルシステムにおいては、木の葉以外のすべての節点はフォルダであり、葉節点はコンテンツが含まれる実際のファイルである。名前の木のこれらのフォルダに似た節点(つまり、葉以外の節点)は、パッケージ内でパーツを編成する類似の機能に使用される。しかし、これらの「フォルダ」は命名階層内において、概念としてのみ存在する、つまり永続性フォーマットによる他の現れ方はないということを忘れないことが重要である。
パーツ名は、「フォルダ」レベルでは存続しえない。特に、パーツ命名階層(「フォルダ」)内の葉以外の節点は、パーツおよび同じ名前のサブフォルダを含むことはできない。
例示され説明されている実施形態においては、すべてのパーツは、パーツ内にどのようなタイプのコンテンツが格納されるかを識別するコンテンツタイプを持つ。コンテンツタイプの例には、以下のものがある。
image/jpeg
text/xml
text/plain;charset="us-ascii"
コンテンツタイプは、RFC2045(Multipurpose Internet Mail Extensions;(MIME))で定義されているように、例示されているフレームワーク内で使用される。特に、それぞれのコンテンツタイプは、媒体タイプ(例えば、text)、サブタイプ(例えば、plain)、およびkey=value形式の任意のパラメータ群(例えば、charset=“us-ascii”)を含み、パラメータが複数ある場合は、パラメータ同士をセミコロンで区切る。
パーツのアドレス指定
多くの場合、パーツは他のパーツへの参照を含む。単純な例として、マークアップファイルとイメージの2つのパーツを含むコンテナを考える。マークアップファイルでは、マークアップファイルが処理されるときに関連するイメージが識別され特定できるように、イメージへの参照を保持するようにしたい。コンテンツタイプおよびXMLスキーマの設計者は、URIを使用して、これらの参照を表すことができる。これを可能にするために、パーツ名の世界とURIの世界との間のマッピングを定義する必要がある。
パッケージ内でURIを使用できるようにするために、パッケージベースのコンテンツでURIを評価するときに、特別なURI解釈規則を使用しなければならない。パッケージ自体はURI参照に関する「権限」として処理されるべきであり、URIのパスコンポーネントが、パッケージ内のパーツ名階層をナビゲートするのに使用される。
例えば、http://www.example.com/foo/something.package というパッケージURIが与えられたとすると、/abc/bar.xmlへの参照は、/abc/bar.xmlと呼ばれるパーツを意味するように解釈され、URI http://www.example.com/abc/bar.xmlを意味するようには解釈されない。
コンテナ内の一方のパーツから他方のパーツへの参照を設定する必要がある場合には、相対URIを使用すべきである。相対参照を使用すると、コンテナのコンテンツをまとめて異なるコンテナに(または、例えばファイルシステムからコンテナ内に)移動することができ、相互パーツ参照を修正しなくて済む。
パーツからの相対参照は、その参照を含むパーツの「ベースURI」に相対的に解釈される。デフォルトでは、パーツのベースURIはパーツの名前である。
以下の名前を持つパーツを含むコンテナを考察する。
/markup/page.xml
/images/picture.jpeg
/images/other_picture.jpeg
「/markup/page.xml」パーツが「../images/picture.jpeg」へのURI参照を含む場合、この参照は、上の規則によりパーツ名「/images/picture.jpeg」を参照しているものとして解釈しなければならない。
いくつかのコンテンツタイプは、コンテンツ内の異なるベースを指定することによりデフォルトのベースURIに優先する手段を提供する。これらの優先の1つが存在していれば、明示的に指定されたベースURIをデフォルトの代わりに使用しなければならない。
ときには、パーツ内の一部または特定のポイントを「アドレス指定」することが有用なこともある。URI世界では、フラグメント識別子が使用される[例えば、RFC2396を参照]。コンテナでは、この機構は同じ働きをする。特に、フラグメントは、アドレス指定されたパーツのコンテンツタイプに関して理解されている追加情報を含む文字列である。例えば、ビデオファイルでは、フラグメントはフレームを識別し、XMLファイルでは、xpathを介してXMLファイルの一部を識別することができる。
フラグメント識別子を、パーツをアドレス指定するURIとともに使用して、アドレス指定されたパーツのフラグメントを識別する。フラグメント識別子はオプションであり、シャープ記号(「#」)によりURIから区切られる。したがって、これはURIの一部ではないが、URIとともに使用されることが多い。
以下の説明においては、パッケージおよびパーツの命名モデルはかなり自由度が大きいので、パーツ命名のためのある種のガイダンスを与える。このような自由度があるため、フレームワークパッケージを幅広く適用できるのである。しかし、フレームワークは、複数の無関係のソフトウェアシステムが互いに衝突せずにパッケージの「固有」パーツを操作できるシナリオを可能にする設計となっていることを認識することが重要である。これを可能にするため、いくつかの指針が用意されており、この指針に従えばこれが可能になる。
ここで与えた指針は、パーツ命名の衝突発生を最小にするか、または少なくとも減らし、発生した場合に対処するための機構について説明したものである。パッケージ内にパーツを作成するライターは、パッケージ内の既存のパーツとの命名の衝突を検出して対処するステップを実行しなければならない。名前の衝突が発生しても、ライターはむやみに既存のパーツを置き換えなくてよい。
パッケージが単一のライターにより操作されることが保証されている状況では、そのライターはこれらの指針から逸脱してもよい。しかし、複数の独立したライターが1つのパッケージを共有している可能性がある場合、すべてのライターがこれらの指示に従う必要がある。しかし、いずれにしてもすべてのライターがこれらの指針に従うことを推奨する。
・既存のコンテナにパーツを追加するライターは、パーツをルートまたは既存のフォルダ内に直接置くのではなく、命名階層の新しい「フォルダ」内でそうする必要がある。このようにして、名前の衝突の可能性は、パーツ名の第1のセグメントに限られる。この新しいフォルダ内に作成されたパーツは、既存のパーツとの衝突のリスクを犯さずに名前を付けることができる。
・フォルダの「好ましい」名前がすでに、既存のパーツにより使用されている場合、ライターは、他のフォルダ名を選択する何らかの戦略をとらなければならない。ライターは、使用可能なフォルダ名が見つかるまで好ましい名前に桁を付加して行く戦略をとらなければならない(何回か失敗を繰り返してからGUIDを使用することも考えられる)。
・このポリシーの1つの結果として、リーダーは「マジック」または「よく知られている」パーツ名を介してパーツを特定することを試みなくてよくなる。その代わりに、ライターは、作成されるフォルダ毎に少なくとも1つのパーツとのパッケージ関係を作成しなければならない。リーダーは、よく知られている名前に依存するのではなく、それらのパッケージ関係を使用してパーツを特定しなければならない。
・リーダーがフォルダ内に少なくとも1つのパーツを見つけると(前述のパッケージ関係の1つを介して)、そのフォルダ内でよく知られているパーツ名に関する規約を使用して、他のパーツを見つけることができる。
ドライバ
本明細書で説明されているファイルフォーマットは、異なるアプリケーション、異なるドキュメントタイプなどにより使用されることができ、そのうち多くのものが衝突する用途、衝突するフォーマットなどを持つ。1つまたは複数のドライバを使用して、ファイルフォーマットの相違、通信プロトコルの相違など様々な衝突を解決する。例えば、ばらばらのファイルおよび複合ファイルなど様々なファイルフォーマット、http、ネットワーク、および無線プロトコルなど、様々な通信プロトコルがある。各種ドライバ群は、様々なファイルフォーマットおよび通信プロトコルを抽象化して、単一のモデルにまとめたものである。異なるシナリオ、異なる顧客要件、異なる物理的構成などに対し、複数のドライバを用意することができる。
関係(relationships)
パッケージ内のパーツは、そのパッケージ内の他のパーツへの参照を含むことができる。しかし、一般に、これらの参照は、参照する側のパーツ内で、そのパーツのコンテンツタイプに特有の方法で、つまり、任意のマークアップまたはアプリケーション固有の符号化によって表現される。これは、実際に、そのような参照を含むパーツのコンテンツタイプを認識しないリーダーからのパーツ間の内部リンクを非表示にする。
共通コンテンツタイプ(「リーチパッケージ」セクションで説明されている固定ペイロードマークアップなど)であっても、リーダーは、他のパーツへの参照を発見し解決するために、パーツ内のすべてのコンテンツを解析する必要があるであろう。例えば、ドキュメントを1度に1ページずつ印刷する印刷システムを実装する場合、特定のページに含まれる画像およびフォントを識別できることが望ましい。既存のシステムでは、各ページのすべての情報を解析しなければならず、これは時間のかかる作業である。また、それぞれのページの言語を認識しなければならず、これは特定のデバイスまたはリーダーによってはあり得ない状況である(例えば、デバイスに向かう途中でプロセッサのパイプラインを通るときにドキュメントに対し中間処理を実行しているもの)。その代わりに、本明細書で説明されているシステムおよび方法では、関係を使うことによって、パーツ間の関係を識別し、それらの関係の性質を記述する。この関係言語は単純であり、リーダーが複数の異なる言語を認識することなしに関係を認識できるように、一度だけ定義される。一実施形態においては、これらの関係は、XMLで個々のパーツとして表される。それぞれのパーツは、パーツがソースである関係を含む関連付けられた関係パーツを持つ。
例えば、スプレッドシートアプリケーションでは、このフォーマットを使用し、異なるスプレッドシートをパーツとして記憶する。スプレッドシート言語について何も認識しないアプリケーションであっても、そのまま、スプレッドシートに関連付けられている様々な関係を発見することができる。例えば、アプリケーションでは、スプレッドシート内のイメージおよびスプレッドシートに関連付けられているメタデータを発見することができる。関係スキーマの実施例を以下に示す。
Figure 2010218577
このスキーマでは、2つのXML要素、つまり「relationships」と呼ばれる要素と「relationship」と呼ばれる要素を定義している。「relationship」要素は、本明細書で説明されているような単一の関係を記述するために使用され、属性として(1)ソースパーツの関係先パーツを示す「target」、(2)関係のタイプまたは性質を示す「name」を持つ。「relationships」要素は、0または複数の「relationship」要素を保持できるように定義され、単純に、それらの「relationship」要素を集めて1つのユニットにまとめるために使用される。
本明細書で説明されているシステムおよび方法は、さらに高いレベルの機構を導入して、「関係(relationships)」と呼ばれるこれらの問題を解決する。関係は、パッケージ内のソースパーツとターゲットパーツとの間の接続の種類を表す追加的な手段を提供する。関係は、パーツ内のコンテンツを見ることなしに、直接的に、「発見可能」なパーツ間を接続する。それらはコンテンツ特有のスキーマとは無関係であり、解決が速い。さらに、これらの関係はプロトコルの依存性がない。様々な異なる関係を、特定のパーツに関連付けることができる。
関係は、第2の重要な機能を持ち、パーツを修正することなく関連付けことができる。ときには、この情報は、「注釈」という形で使用され、その場合「注釈付き」パーツのコンテンツタイプでは、与えられた情報を添付する手段を定義しない。実施例として可能なものには、添付された記述的メタデータ、プリントチケット、および実際の注釈がある。最後に、シナリオによっては、情報を既存のパーツに、特にそのパーツを修正せずに添付する必要があるものもある。例えば、パーツが暗号化されているときに解読できない場合や、パーツが電子署名されており、変更すると署名が無効になるような場合である。他の例では、ユーザはJPEGイメージファイルに注釈を添付したい場合がある。JPEGイメージフォーマットは、現在のところ、注釈の識別をサポートしていない。JPEGフォーマットを変更してこのユーザの希望をかなえるようにすることは、現実的ではない。しかし、本明細書で説明されているシステムおよび方法を使用することによって、ユーザはJPEGイメージフォーマットを修正せずに、JPEGファイルに注釈を付加することができる。
一実施形態では、関係は、関係バーツ内においてXMLを使用することで表される。1つまたは複数の関係のソースであるコンテナ内のそれぞれのパーツは、関係パーツが関連付けられている。この関係パーツは、そのソースパーツの関係のリストを保持する(コンテンツタイプapplication/PLACEHOLDERを使用してXMLで表される)。
以下に示す図4は、「スパイン」パーツ402(FixedPanelに似ている)が3つのページ406、408、および410をバインドしてまとめる環境400を示している。スパインによりバインドされまとめられたページ群は、「プリントチケット」404が関連付けられる。さらに、2ページ目には、専用のプリントチケット412がある。スパインパーツ402からプリントチケット404、および2ページ目からそのプリントチケット412までの接続は、関係を使って表される。図4の配置では、スパインパーツ402は、以下の実施例で示されているように、スパインをticket1に接続する関係が含まれる関連付けられた関係パーツを持つ。
Figure 2010218577
関係は、単一の<Relationships>要素内に入れ子になっている<Relationship>要素を使用して表される。これらの要素は、http://mmcfrels(PLACEHOLDER)名前空間内で定義される。関係の実施例については、上のスキーマの実施例、および関連する説明を参照のこと。
関係(relationship)要素は、以下の追加属性を持つ。
Figure 2010218577
Name属性は、必ずしも実際のアドレスではない。異なる種類の関係が、Namesにより識別される。これらの名前は、名前空間がXML名前空間に対し定義されるのと同じようにして定義される。特に、インターネットドメイン名空間にならって付けられた名前を使用することにより、非調整パーティは衝突しない関係名を安全に−XML名前空間について作成するのとちょうど同じようにして−作成できる。
関係パーツは、他の関係に参加することは許されない。しかし、他のすべての意味において1級のパーツである(例えば、URIアドレス指定可能である、開く、読む、削除するなどの操作を行えるなど)。関係は、通常、パッケージの外部にあるものは参照しない。関係ターゲットを識別するために使用されるURIは、一般に、URIスキームを含まない。
パーツおよび関連付けられた関係パーツは、命名規約により接続される。この例では、スパインに対する関係パーツは、/content/_rels/spine.xml.relsに格納され、ページ2に対する関係は、/content/_rels/p2.xml.relsに格納される。ここでは2つの特別な命名規約が使用されていることに注意されたい。まず、名前階層内の与えられた「フォルダ」内のある(他の)パーツに対する関係パーツは、_relsと呼ばれる「サブフォルダ」内に格納される(関係を識別するために)。第2に、この関係保持パーツの名前は、.rels拡張子をオリジナルのパーツの名前に付加することにより形成される。特定の実施形態では、関係パーツは、コンテンツタイプapplication/xml+relationshipsPLACEHOLDERである。
関係は、2つのパーツの間の有向接続を表す。関係を表す方法のため、ソースパーツから関係を行き来する(traverse)のが効率よい(任意に与えられたパーツに対する関係パーツを見つけることは自明であるので)。しかし、関係のターゲットから逆方向に関係を行き来するのは効率的ではない(パーツとのすべての関係を見つける方法はコンテナ内のすべての関係を探すことだからである)。
関係の逆方向トラバース(行き来する)を可能にするために、新しい関係を使用して、他の(トラバース可能な)方向を表す。これは、あるタイプの関係の設計者が使用できるモデリング手法である。上の例に従うと、ticket1が添付されているスパインを見つけられることが重要であるとすれば、以下のようなチケットからスパインに接続する第2の関係を使用する。
Figure 2010218577
パッケージ関係(Package Relationships)
「パッケージ関係」は、パッケージ内のよく知られているパーツを見つけるために使用される。この方法を用いると、パッケージ内のパーツを見つける際に命名規約に依存しなくてすみ、異なるペイロードの同一のパーツ名の間で、衝突がないことが保証される。
パッケージ関係は、ターゲットはパーツであるが、ソースはパーツではない、つまりソースは全体としてパッケージである特別な関係である。「よく知られている」パーツを備えることは、実際には、そのパーツを見つけやすくする「よく知られている」関係名を持つことである。非調整パーティにより関係に名前を付けることができる明確に定義されている機構があるため、これらは機能するが、いくつかの実施形態においては、パーツ名に対するそのような機構がない。したがって、それらの実施形態においては、一組の指針に制限される。パッケージ関係は、パッケージ関係パーツ内に見つかり、関係パーツに対する標準命名規約を使用して名前が付けられる。そこで、名前は「/_rels/.rels」となる。
このパッケージ関係パーツ内の関係は、よく知られているパーツを見つける際に役立つ。
開始パーツ(The Start Part)
パッケージレベルの一例においては、よく知られているパーツはパッケージ「start」パーツである。これは、パッケージが開かれたときに通常処理されるパーツである。これは、パッケージに格納されているドキュメントコンテンツの論理ルートを表す。パッケージの開始パーツは、よく知られているパッケージ関係に従うことにより特定される。一実施例においては、この関係は、「http://mmcf-start-part-PLACEHOLDER」という名前を持つ。
構成パーツ(Composition Part):セレクタおよびシーケンス
説明されているフレームワークでは、セレクタおよびシーケンスというパーツから高次の構造を構築するための2つの機構を定義する。
セレクタは、多数の他のパーツのうちから「選択する」パーツである。例えば、セレクタパーツは、英語版のドキュメントを表すパーツとフランス語版のドキュメントを表すパーツのいずれかを「選択する」ことができる。シーケンスは、多数の他のパーツを「順序付ける」パーツである。例えば、シーケンスパーツは、パーツの1つが5ページのドキュメントを表し、もう1つが10ページのドキュメント表す2つのパーツを(線形的な順序で)組み合わせることができる。
これら2つのタイプの構成パーツ(シーケンスおよびセレクタ)およびそれらを組み立てる規則は、構成モデルからなる。構成パーツは、他の構成パーツを構成することができる。したがって、例えば、2つの構成のうちから選択するセレクタを備えることも可能である。例えば、図5を考察すると、これは、英語とフランス語の両方の表現を含む財務レポートの一例を示している。これらの表現はそれぞれ、さらに、序文(表紙)とそれに続く財務内容(スプレッドシート)からなる。この例では、セレクタ500は、英語表現のレポートとフランス語表現のレポートのうちから選択する。英語表現が選択された場合、シーケンス502により、英語序文パーツ506、英語財務パーツ508と順序付けられる。あるいはその代わりに、フランス語表現が選択された場合、シーケンス504により、フランス語序文パーツ510、フランス語財務パーツ512と順序付けられる。
構成パーツXML
例示され説明されている実施形態においては、構成パーツは、少数のXML要素を使用して記述され、すべて共通構成名前空間(commoncomposition namespace)から取り出される。例えば、以下を考察する。
Figure 2010218577
例えば、上の図5の例に対するXMLを以下に示す。
Figure 2010218577
このXMLでは、MainDocument.xmlは、パッケージ内のパーツ全体を表し、「selection」タグに基づいて、選択が、「item」タグでカプセル化された異なるアイテム、つまり「EnglishRollup.xml」と「FrenchRollup.xml」との間で選択が行われることを示す。
EnglishRollup.xmlおよびFrenchRollup.xmlは、「sequence」タグに基づき、それぞれの「item」タグによりカプセル化されたそれぞれのアイテムを、順序付けしてまとめるシーケンスである。
したがって、単純なXML文法が、セレクタおよびシーケンスの記述のため準備されている。この構成ブロック内のそれぞれのパーツが構築され、1つのオペレーション−選択または順序付けのいずれか−を実行する。パーツの階層を使用することにより、選択およびシーケンスの異なる堅牢なコレクションを構築することができる。
構成ブロック
パッケージの構成ブロック(Composition Block)は、パッケージの開始パーツから到達可能なすべての構成パーツ(セレクタまたはシーケンス)の集合を含む。パッケージの開始パーツがセレクタでもシーケンスでもない場合、構成ブロックは空であると考えられる。開始パーツが構成パーツの場合、それらの構成パーツ内の複数の子<item>が、再帰的にトラバースされて、構成パーツの有向非巡回グラフを生成する(非構成パーツに遭遇するとトラバースが停止する)。このグラフが、構成ブロックである(さらに、実施形態により、パッケージが有効であるためには、非巡回グラフでなければならない)。
構成の意味の決定
上で比較的簡単なXML文法を確立したが、以下では、コンテンツタイプに基づき選択を行えるような情報を表す手段について説明する。つまり、上述のXMLは、組み立てられ1つの構成にまとめられるパーツをリーダーが特定するのに十分な情報を与える。しかし、構成の性質に関する詳細をリーダーに知らせるほど十分ではない。例えば、2つのパーツを構成する選択が与えられたとすると、リーダーはどのような基準(例えば、言語、用紙サイズなど)に基づいてその選択を行うのか?その答えは、これらの規則は構成パーツのコンテンツタイプに関連付けられているということである。したがって、言語に基づいて表現を選択するのに使用されるセレクタパーツは、用紙サイズに基づいて表現を選択するセレクタパーツと異なる関連付けられたコンテンツタイプを持つ。
一般的なフレームワークでは、以下のコンテンツタイプの一般的形式を定義する。
Application/XML+Selector-SOMETHING
Application/XML+Sequence-SOMETHING
これらのコンテンツタイプの中のSOMETHINGは、選択またはシーケンスの性質、例えば、ページサイズ、色、言語、リーダーデバイス上の常駐ソフトウェアなどを示す単語で置き換えることができる。このフレームワークにおいては、こうすると、すべての種類のセレクタおよびシーケンスを創作することができ、それぞれ非常に異なる意味を持ち得る。
説明されているフレームワークは、さらに、すべてのリーダーまたは読み込みデバイスが認識しなければならない、以下のよく知られているコンテンツタイプを定義する。
Figure 2010218577
例として、以下のような考察をしてみる。パッケージはページを持つドキュメントを含むと仮定し、ページの真ん中にビデオが現れる領域がある。この例では、ページのビデオパーツは、Quicktimeビデオの形式のビデオを含むことができる。このシナリオの問題の1つは、Quicktimeビデオは広く受け入れられているわけではないという点である。しかしながら、このフレームワーク、さらに具体的には後述のリーチパッケージフォーマットに従って、広く受け入れられているイメージフォーマット−JPEG−があると仮定する。上述のドキュメントを含むパッケージを作成するときに、作成者は、パッケージの一部としてビデオを定義することに加えて、そのページのJPEGイメージを定義し、SupportedContentTypeセレクタを挿入する。これによって、ユーザのコンピュータにQuicktimeビデオを認識するソフトウェアが装備されている場合は、Quicktimeビデオが選択され、そうでない場合には、JPEGイメージが選択されるようにすることも可能である。
したがって、上述のように、フレームワークレベルのセレクタおよびシーケンスコンポーネントにより、この例では、XMLで定義されている堅牢な階層を構築できる。さらに、コンテンツタイプを使用して、セレクタおよびシーケンスの挙動を識別する明確に定義された手段もある。さらに、一実施形態においては、一般的なフレームワークは、定義済みで、消費者(例えば、リーダーまたは読み取りデバイス)が何を認識し何を認識しないかに基づいてパッケージの処理および利用を可能にする、1つの特定のコンテンツタイプを含む。
他の構成パーツコンテンツタイプも、類似の規則を使用して定義することができ、その実施例について以下で説明する。
記述的メタデータ
一実施形態においては、記述的メタデータパーツは、パッケージのライターまたは作成者に、パッケージのリーダーが高い信頼度で発見できるようにするプロパティの値を保存する手段を提供する。これらのプロパティは、通常、コンテナ内の個々のパーツに関する情報だけでなくをパッケージ全体の追加的情報を記録するために使用される。例えば、パッケージ内の記述的メタデータパーツは、パッケージの著者、キーワード、要約などの情報を保持することが可能である。
例示され説明されている実施形態においては、記述的メタデータは、XMLで表され、よく知られているコンテンツタイプのパーツに保存され、よく知られている関係タイプを使用して見つけることができる。
記述的メタデータは、メタデータプロパティを保持する。メタデータプロパティは、プロパティ名および1つまたは複数のプロパティ値により表される。プロパティ値は、単純データ型を持ち、したがって、それぞれのデータ型は単一のXMLqnameで記述される。記述的メタデータプロパティが単純な型を持つという事実は、複雑なXMLの型を持つデータをパッケージに格納できないということを意味するわけではない。この場合、完全なXMLパーツとして情報を保存しなければならない。これが行われると、単純な型のみの使用に関するすべての制約はなくなるが、「フラット」な記述的メタデータプロパティモデルの簡潔さは失われる。
プロパティの集まりを定義する汎用の機構に加えて、この機構を使用して格納される、特定の明確に定義されているドキュメントコアプロパティの集まりがある。これらのドキュメントコアプロパティは、通常、ドキュメントを記述するために使用され、タイトル、キーワード、著者などのプロパティを含む。
最後に、これらのドキュメントコアプロパティを保持するメタデータパーツは、さらに、ドキュメントコアプロパティのほかに、追加カスタム定義プロパティを保持することもできる。
メタデータフォーマット
一実施形態によれば、記述的メタデータパーツは、コンテンツタイプを持ち、以下の規則に従う関係の対象となる。
Figure 2010218577
以下のXMLパターンは、一実施形態により記述的メタデータを表す場合に使用される。マークアップの各コンポーネントに関する詳細は、サンプルの後の表にまとめた。
Figure 2010218577
Figure 2010218577
ドキュメントコアプロパティ
以下に、プロパティの名前、プロパティの型、および説明を含む、ドキュメントコアプロパティの表を示す。
Figure 2010218577
Figure 2010218577
物理的モデル
物理的モデルにより、ライターおよびリーダーによるパッケージの様々な使用法が定義される。このモデルは、ライター、リーダー、およびそれらの間のパイプの3つのコンポーネントに基づく。図6は、ライターおよびリーダーが連携してパッケージに関する通信を行ういくつかの実施例を示す図である。
パイプは、データをライターからリーダーに搬送する。多くのシナリオにおいて、パイプは、単に、ローカルファイルシステムからパッケージをリーダーに読み出させるAPI呼び出しを含むだけである。これは、直接アクセスと呼ばれる。
しかし、リーダーおよびライターは、ある種のプロトコルを介して互いに通信しなければならない。この通信は、例えば、プロセスの境界にまたがって、またはサーバとデスクトップコンピュータとの間で実行される。これは、ネットワーク接続アクセスと呼ばれ、パイプの通信特性(特に、速度と要求待ち時間)ゆえに重要なものである。
最大の性能を発揮させるために、物理パッケージ設計では、アクセススタイル、レイアウトスタイル、および通信スタイルの3つの重要な領域におけるサポートを考慮しなければならない。
アクセス形式(Accsess Style)
ストリーミング消費
ネットワーク接続アクセスを使用したライターとリーダーとの間の通信は瞬間的なものではないため、パッケージの連続的な作成および消費に対応することが重要である。特に、この実施形態によれば、パッケージのすべてのビットがパイプを通して送り込まれる前に、リーダーが受け取るデータ(例えば、パーツ)の解釈および処理を開始できるように物理的パッケージフォーマットを設計することが推奨される。この機能は、ストリーミング消費(streamingconsumption)と呼ばれる。
ストリーミング作成
ライターがパッケージの作成を開始しても、パッケージに入れられるものを常に知っているとは限らない。一実施例では、アプリケーション側でプリントスプールファイルパッケージのビルドを開始する場合、アプリケーション側では、パッケージに入れる必要のあるページの数がわからない場合がある。他の実施例では、動的にレポートを生成しているサーバ上のプログラムには、レポートを完全に生成するまでは、レポートの長さまたはレポートに含まれる画像の数はわからない。このようなライターを許容するために、物理的パッケージにより、他のパーツがすでに追加されていた場合に、ライターがその後にパーツを動的に追加できるようにしなければならない(例えば、ライターは作成を開始するといくつのパーツが作成されるかをあらかじめ記述しておくように要求されてはならない)。さらに、物理的パッケージを使用することで、ライターはそのパーツの最終的な長さを知らなくてもパーツのコンテンツの書き込みを開始できなければならない。つまり、これらの要件によりストリーミング作成が可能になるのである。
同時作成および消費
高度にパイプライン化されているアーキテクチャでは、ストリーミング作成およびストリーミング消費は、特定のパッケージに対して同時に実行することが可能である。物理的パッケージを設計する際に、ストリーミング作成のサポートとストリーミング消費のサポートで、設計が反対方向に推し進められることがある。しかし、両方をサポートする設計を見つけられる場合も多い。パイプライン化アーキテクチャにはメリットがあるため、物理的パッケージで同時作成および消費をサポートすることを推奨する。
レイアウトスタイル
物理的パッケージは、パーツのコレクションを持つ。これらのパーツは、単純な順序付けとインタリーブの2つのスタイルのうちの1つでレイアウトすることができる。単純な順序付けでは、パッケージ内のパーツは、定められた順序によりレイアウトされる。そのようなパッケージが純粋に直線的な方法で送出される場合、パッケージ内の第1のバイトから始まり、最後のバイトへと続き、第1のパーツのすべてのバイトが最初に到着し、その後、第2のパーツのすべてのバイトが到着し、というように続く。
インタリーブされたレイアウトでは、複数のパーツのバイトがインタリーブされ、いくつかのシナリオではパフォーマンスを改善できる。インタリービングを著しく利用する2つのシナリオとしては、マルチメディアの再生(例えば、ビデオとオーディオを同時に送出する)およびインラインリソース参照(例えば、マークアップファイルの途中でのイメージへの参照)がある。
インタリービングは、インタリーブされたパーツのコンテンツを編成するための特別な規約を通じて処理される。パーツを断片に分け、それらの断片をインタリーブすることにより、元の大きなパーツをそのまま簡単に再構成することが可能としながら、インタリービングの所望の結果を得ることが可能である。インタリービングの仕組みを理解するために、図7では、content.xml 702およびimage.jpeg 704の2つのパーツを伴う単純な例を示している。第1のパーツ、content.xmlでは、ページのコンテンツを記述し、そのページの真ん中に、ページ上に現れなければならないイメージ(image.jpeg)への参照が置かれている。
インタリービングが価値ある理由を理解するために、図8に示されているように、これらのパーツが単純な順序付けを使用してパッケージ内にどのように配置されるかを考察する。このパッケージを処理している(かつ、バイトを順次受け取っている)リーダーは、content.xmlパーツだけでなくimage.jpegをもすべて受け取るまでは、画像を表示することができない。状況によっては(例えば、パッケージが小さく単純な場合、または通信リンクが高速な場合)、これは問題にならないであろう。他の状況では(例えば、content.xmlが非常に大きいか、または通信リンクは非常に低速だった場合)、content.xmlパーツをすべて読み切ってからでないとイメージを取得できないため、許容できないパフォーマンスとなるか、またはリーダーシステムに妥当とは思えないほどのメモリが要求されることになる。
理想的なパフォーマンスに近づけるためには、content.xmlパーツを分割し、image.jpegパーツを中間に、画像が参照された場所のすぐ後ろに、挿入できるとよいであろう。こうすると、リーダーは早い段階でイメージの処理を開始することができ、したがって、参照に出くわすとすぐに、イメージデータが後に続く。例えば、図9に示されているパッケージレイアウトが生成される。パフォーマンスのメリットがあるため、物理的パッケージがインタリービングをサポートするのが望ましい場合が多い。使用されている物理的パッケージの種類に応じて、インタリービングはサポートされる場合もされない場合もある。物理的パッケージが異なれば、インタリービングの内部表現の取り扱い方も異なる。物理的パッケージがインタリービングをどのように処理しようと、インタリービングは、物理的レベルで実行される最適化であり、1つのパーツが物理的ファイル内で複数の断片に分割されているとしても、それは1つの論理的パーツであり、断片自体はパーツでないことに留意することが重要である。
通信形式
ライターとリーダーとの間の通信は、パーツの順次配送に基づくか、または順序バラバラでアクセスできるパーツへのランダムアクセスにより行うことができる。これらの通信形式のうちのどれを使用するかは、パイプおよび物理的パッケージフォーマットの両方の機能に依存する。一般に、パイプはすべて順次配送をサポートする。物理的パッケージは、順次配送をサポートしなければならない。ランダムアクセスのシナリオをサポートするには、使用しているパイプと物理的パッケージの両方がランダムアクセスをサポートしていなければならない。ある種のパイプは、ランダムアクセスを使用可能にできるプロトコルに基づいている(例えば、バイトレンジのサポートがあるHTTP1.1)。これらのパイプが使用されている場合に最大のパフォーマンスを引き出すためには、物理的パッケージでランダムアクセスをサポートすることが推奨される。このようなサポートが行われていないと、リーダーは、必要とするパーツが順次配送されてくるまでひたすら待つことになる。
物理的マッピング
論理パッケージングモデルでは、パッケージ抽象化を定義しており、パッケージの実際のインスタンスは、パッケージのなんらかの特定の物理的表現に基づく。パッケージングモデルは、物理的永続フォーマットだけでなく、様々なトランスポート(例えば、ネットワークベースのプロトコル)にもマッピングすることができる。物理的パッケージフォーマットは、抽象パッケージングモデルのコンポーネントから特定の物理的フォーマットの機能へのマッピングとして説明することができる。パッケージングモデルでは、パッケージのアーカイブ、配布、またはスプーリングに使用すべき物理的パッケージフォーマットを指定しない。一実施形態では、論理的構造のみが指定される。パッケージは、バラバラのファイルのコレクション、.ZIPファイルアーカイブ、複合ファイル、またはその他のフォーマットにより「物理的に」実現することができる。選択されたフォーマットは、ターゲットの消費デバイスまたはそのデバイス用のドライバによりサポートされる。
マッピングされるコンポーネント
それぞれの物理的パッケージフォーマットは、以下のコンポーネントのマッピングを定義する。いくつかのコンポーネントは、オプションであり、特定の物理的パッケージフォーマットではそれらのオプションコンポーネントをサポートしていない場合がある。
Figure 2010218577
共通マッピングパターン
Figure 2010218577
機能が部分的にパッケージングモデルコンポーネントと一致する物理的記憶フォーマットは多数存在する。パッケージングモデルからそのような記憶フォーマットへのマッピングを定義する際に、パッケージングモデルと物理的記憶媒体との間の機能の類似性を利用することが望ましい場合があるが、マッピングのレイヤを使用して追加機能を実現することは、物理的記憶媒体に本来的に持つ機能ではない。例えば、いくつかの物理的パッケージフォーマットは、個々のパーツをファイルシステム内の個別ファイルとして格納することができる。そのような物理的フォーマットでは、多くのパーツ名を直接同じ物理的ファイル名にマッピングするのが自然であろう。有効なファイルシステムファイル名でない文字を使用しているパーツ名は、何らかの種類の回避機構を必要とするかもしれない。
多くの場合、異なる物理的パッケージフォーマットの設計者は、単一の共通マッピング問題に直面する可能性がある。共通マッピング問題の例として、任意のコンテンツタイプをパーツに関連付ける場合と、インタリーブされたレイアウトスタイルをサポートする場合の2つがある。本明細書では、そのような共通マッピング問題に対する共通の解決策を提案する。特定の物理的パッケージフォーマットの設計者は、ここで定義されている共通マッピング解決策を使用するよう奨励されるが、必ずそうしなければならないわけではない。
パーツのコンテンツタイプの識別
物理的パッケージフォーマットのマッピングにより、それぞれのパーツのコンテンツタイプを格納するための機構が定義される。いくつかの物理的パッケージフォーマットは、コンテンツタイプを表すための固有の機構を備える(例えば、MIMEによる「Content−Type」ヘッダ)。このような物理的パッケージについては、マッピングにその固有の機構を使用してパーツのコンテンツタイプを表すよう推奨する。他の物理的パッケージフォーマットについては、他の何らかの機構を使用して、コンテンツタイプを表す。これらのパッケージ内でコンテンツタイプを表すための推奨される機構は、タイプストリームと呼ばれる特別な名前のXMLストリームをパッケージに入れることである。このストリームは、パーツではなく、したがって、それ自体URIアドレス指定可能ではない。しかし、パーツのインタリーブに使用されるのと同じ機構を使用して物理的パッケージ内でインタリーブすることができる。
タイプストリーム(types stream)は、最上位レベルの「Types」要素、および1つまたは複数の「Default」および「Override」子要素を持つXMLを含む。「Default」要素は、パーツ名拡張子からコンテンツタイプへのデフォルトのマッピングを定義する。これは、ファイル拡張子は多くの場合、コンテンツタイプに対応しているという事実を利用している。「Override」要素は、デフォルトのマッピングの対象になっていない、またはデフォルトのマッピングとは整合しないパーツ上で、コンテンツタイプを指定する場合に使用される。パッケージライターは、「Default」要素を使用して、パーツ毎の「Override」要素の個数を減らすことができるが、必ずそうしなければならないわけではない。
「Default」要素は、以下の属性を持つ。
Figure 2010218577
「Override」要素は、以下の属性を持つ。
Figure 2010218577
以下に、タイプストリームに含まれるXMLの一実施例を示す。
Figure 2010218577
以下の表は、パーツのサンプルリスト、および上述のタイプストリームにより定義されるような対応するコンテンツタイプをまとめたものである。
Figure 2010218577
パッケージ内のすべてのパーツについて、タイプストリームは、(a)1つの一致する「Default」要素、(b)1つの一致する「Override」要素、または(c)一致する「Default」要素および一致する「Override」要素の両方(この場合「Override」要素が優先する)のいずれかを含む。一般に、与えられた拡張子に対し、高々1つの「Default」要素と、与えられたパーツ名に対し、高々1つの「Override」要素がある。
タイプストリーム内の「Default」要素および「Override」要素の順序は、重要ではない。しかし、インタリーブされたパッケージでは、物理的パッケージ内において「Default」および「Override」要素は、それらが対応するパーツの前に現れる。
インタリービング
すべての物理的パッケージが、本来含まれるものとしてパーツのデータストリームのインタリービングをサポートしているわけではない。一実施形態では、そのような物理的パッケージへのマッピングでは、このセクションで説明されている一般的な機構を使用してパーツのインタリービングを可能にする。この一般的な機構では、パーツのデータストリームを複数の断片に分割してから、他のパーツの断片、またはパーツ全体とインタリーブするという方法によって動作する。パーツの個々の断片は、物理的マッピング内に存在し、論理的パッケージングモデルではアドレス指定できない。断片のサイズは0であってもよい。
パーツ名からパーツの個々の断片の名前への以下の独特なマッピングが定義され、リーダーは断片を縫い合わせるようにして元の順序に戻し、パーツのデータストリームを形成することができる。
与えられたパーツ名の断片名を導出するための文法は、以下のとおりである。
Figure 2010218577
この文法により生成されたpiece_namesに対しては、以下の妥当性制約条件が存在する。
・断片番号は0から始まり、正の連続する整数である。断片番号は左側が0でパッディングされる。
・パーツの断片の集まりの中の最後の断片は、断片名の中で「.piece」の前に「.last」が付く。
・物理的パッケージ内で名前にマッピングされる前に、断片名は論理的パーツの名前から生成される。
断片を自然な順序で格納する必要はないが、そのような格納方法をとれば最適な効率が得られる可能性がある。インタリーブされた(断片化された)パーツを収めた物理的パッケージは、さらに、非インタリーブ(ワンピース)パーツを含むこともでき、したがって、以下の例は有効であろう。
Figure 2010218577
特定のマッピング
「Windows(登録商標)ファイルシステム内のバラバラのファイル」では、次の物理的フォーマットの特定のマッピングを定義する。
Windows(登録商標)ファイルシステム内のバラバラのファイルへのマッピング
論理的モデルの要素を物理的フォーマットにマッピングする方法をよく理解できるように、MetroパッケージをWindows(登録商標)ファイルシステム内のバラバラのファイルのコレクションとして表す基本的な場合について考察する。論理的パッケージ内のそれぞれのパーツは、別々のファイル(ストリーム)に格納される。論理的モデル内のそれぞれのパーツ名は、ファイルの名前に対応している。
Figure 2010218577
パーツ名は、以下の表に例示されているように、有効なWindows(登録商標)ファイル名に翻訳される。
以下に、論理的パーツ名セグメント(URIセグメント)およびWindows(登録商標)ファイル名に対し有効な2つの文字集合を示す。この表は、以下の重要な2つの事項を明らかにする。
URIをファイル名に変換する際にはエスケープする必要がある、2つの有効なURI記号であるコロン(:)とアスタリスク(*)がある。
URI内に存在し得ない有効なファイル名の記号^{}[]#がある(これらは、インタリービングなどの特別のマッピング目的に使用することができる)。
「エスケープ」は、パーツ名にファイル名内で使用できない文字が含まれている場合に有効なファイル名文字を作り出すための一手法として使用される。文字をエスケープするには、キャレット記号(^)の後にその文字の16進数表現を続ける。
abs_path(パーツ名)からファイル名にマッピングするには、以下のようにする。
先頭の/を除去し、
すべての/を\に変換し、
コロンとアスタリスク文字をエスケープする
例えば、パーツ名/a:b/c/d*.xamlはa^25b\c\d^2a.xamlにというファイル名になる。
逆のマッピングを実行するには、以下のようにする。
すべての\を/に変換し、
/を文字列の先頭に追加し、
^[16進数コード]を対応する文字で置き換えることにより文字のエスケープを解除する
Figure 2010218577
バージョン管理と拡張性
他の技術的仕様と同様、本明細書に含まれる仕様は、将来の技術的進歩とともに発展する可能性がある。この仕様の第1版の設計は、第1版に基づいて書かれたソフトウェアシステムと将来の版に合わせて書かれたソフトウェアシステムとの間でドキュメントを将来交換できるようにする計画を含んでいる。同様に、この仕様により、第三者が仕様に対する拡張機能を作成することができる。このような拡張により、例えば、ある特定のプリンタの存在を認識しない他のリーダーとの互換性を維持しつつ、そのプリンタの機能を利用するドキュメントを構成することができる。
新しいバージョンの固定ペイロードマークアップ、またはマークアップに対するサードパーティー拡張を使用するドキュメントでは、リーダー側で、挙動に関する適切な決定を下す必要がある(例えば、視覚的に表示する方法)。リーダーのガイドとなるように、ドキュメントの作成者(またはドキュメントを生成したツール)は、他の方法では認識されない要素または属性に出会ったリーダーの、適切な挙動を識別しなければならない。リーチドキュメントについては、このタイプのガイダンスが重要である。
新しいプリンタ、ブラウザ、およびその他のクライアントは、将来の機能に対する様々なサポートを実施することができる。新しいバージョンまたは拡張機能を利用するドキュメント作成者は、それらのバージョンの拡張を認識しないリーダーの挙動を慎重に検討しなければならない。
名前空間のバージョン管理
XMLマークアップ認識は、名前空間のURIに基づいている。XML名前空間については、リーダーはその名前空間内で定義されているXML要素およびXML属性の全部を認識するか、またはどれも認識しないことが予想される。リーダーが新しい名前空間を認識しない場合、リーダーはそのドキュメント内で指定されている通りフォールバックレンダリングオペレーション(fallbackrendering operations)を実行する必要がある。
XML名前空間URI「http://PLACEHOLDER/version-control」は、バージョン適応可能なおよび拡張適応可能な固定ペイロードマークアップを構成するために使用されるXML要素および属性を含む。固定ペイロードは、中にバージョン管理要素が含まれている必要はない。しかし、適応可能コンテンツをビルドするには、<ver:Compatibility.Rules>および <ver:AlternativeContent>XML要素のうちの、少なくとも1つを使用しなければならない。
固定ペイロードマークアップの指定には、xmlns URI「http://PLACEHOLDER/pdl」が関連付けられる。固定ペイロード内でこの名前空間を使用することによって、この仕様で定義されている要素のみが使用されることを、リーダーアプリケーションに通知する。この仕様の将来のバージョンには、それ独自の名前空間が付属する。新しい名前空間を知っているリーダーアプリケーションは、旧バージョンで定義されている属性の要素の上位集合をサポートする方法を認識する。新しいバージョンを知らないリーダーアプリケーションは、PDLへの何らかの未知の拡張であるかのように新しいバージョンのURIを検討する。これらのアプリケーションは、名前空間の間に関係が存在すること、一方は他方の上位集合であることを認識できない。
下位互換性と「上位」互換性
本明細書で説明されているシステムおよび方法をサポートしているアプリケーションまたはデバイスに関して、旧バージョンの仕様、または仕様の未知の拡張もしくはバージョンを使用してオーサリングされたドキュメントをクライアントが解析し表示することができるということによって、互換性があることが示される。様々なバージョン管理機構で「下位互換性」に対応しているため、後述のように、クライアントは将来の実装において、仕様のダウンレベルバージョンに基づきドキュメントをサポートできる。
プリンタなどの実装されたクライアントがマークアップ言語の将来のバージョンを使用してビルドされたドキュメントを受け取った場合、クライアントは使用可能なレンダリングオプションを解析し、理解することができる。仕様の旧バージョンに基づいて書かれたクライアントソフトウェアが、新しいバージョンの機能を使用したいくつかのドキュメントを処理できることを、「上位互換性」と呼ぶ。上位互換性を使用できるように書かれたドキュメントは、「バージョン適応可能(version−adaptive)」と呼ばれる。
さらに、実装されたクライアントは新しい要素またはプロパティを表す未知の拡張機能を持つドキュメントをサポートできる必要もあるため、様々な意味を付加して「拡張適応可能(extensionadaptive)」であるドキュメントのより一般的なケースをサポートする。
プリンタまたはビューアが未知の拡張機能に出会った場合、これは、周囲のコンテンツの適応レンダリングに関するガイダンスのための拡張機能を使用することにより埋め込まれている情報を探す。この適応は、未知の要素または属性を認識されているコンテンツで置き換えることを伴う。しかし、適応は、未知のコンテンツを純粋に無視することを含む他の形を取りうる。明示的なガイダンスがない場合、リーダーは、マークアップ内に認識されていない拡張機能が存在していることを、誤った状態として取り扱わなければならない。ガイダンスが提供されない場合、この拡張機能は、コンテンツを認識するための基本であるとみなされる。レンダリングの失敗が記録され、ユーザに報告される。
このモデルをサポートするために、新しいおよび拡張されたバージョンのマークアップ言語は、名前空間内において関連する拡張機能を論理的にグループ化しなければならない。このようにして、ドキュメント作成者は、最小限度の名前空間の数を使用して拡張機能を利用することができる。
マークアップのバージョン管理
拡張適応可能な挙動をサポートするためのXML語彙は、以下の要素を含む。
Figure 2010218577
<Compatibility.Rules>要素
Compatibility.Rulesは、添付属性を保持できる要素だけでなくXamlルート要素にも添付できる。<Compatibility.Rules>要素は、パーサが未知の要素または属性にどのような反応をするかを制御する。通常、このようなアイテムはエラーとして報告される。無視可能な要素をCompatibility.Rulesプロパティに追加することで、特定の名前空間からのアイテムを無視できることをコンパイラに通知できる。
Compatibility.Rulesは、IgnorableおよびMustUnderstand要素を含むことができる。デフォルトでは、すべての要素および属性は、MustUnderstandであると想定される。要素および属性は、Ignorable要素をコンテナのCompatibility.Rulesプロパティに追加することにより、Ignorableにできる。要素またはプロパティは、MustUnderstand要素を入れ子になっているコンテナの1つに追加することにより、これもまたMustUnderstandにできる。1つのIgnorableまたはMustUnderstandは、同じCompatibility.Rules要素内の特定の名前空間URIを参照する。
<Compatibility.Rules>要素は、コンテナの自タグまたは属性ではなく、コンテナのコンテンツに影響を及ぼす。コンテナのタグまたは属性に影響を及ぼすには、コンテナに互換性規則が含まれていなければならない。Xamlルート要素を使用することにより、Canvasなどの、この要素を使用しないとルート要素となる要素に対し互換性規則を指定することができる。Compatibility.Rules複合属性は、コンテナ内の第1の要素である。
<Ignorable>要素
<Ignorable>要素は、囲まれている名前空間URIが無視可能であることを宣言する。<Ignorable>タグが現在のブロックまたはコンテナブロック内のアイテムの前で宣言され、名前空間URIはパーサにとっては未知のものである場合、アイテムは無視可能であるとみなすことができる。URIが知られている場合には、Ignorableタグは無視され、すべてのアイテムが認識される。一実施形態では、Ignorableと明示的に宣言されていないアイテムはすべて認識されなければならない。Ignorable要素は、<ProcessContent>および<CarryAlong>要素を含むことができ、これらは、要素の無視のされ方を修正するために使用されるだけでなく、ドキュメント編集ツールに、そのようなコンテンツを編集済みドキュメント内にどのように保存するかについてのガイダンスを与えるためにも使用される。
<ProcessContent>要素
<ProcessContent>要素は、要素が無視される場合に、その要素のコンテンツが、無視された要素のコンテナに含まれているかのように処理されることを宣言する。
<ProcessContent>属性
Figure 2010218577
<CarryAlong>要素
オプションの<CarryAlong>要素は、ドキュメントが修正されたときに、無視可能なコンテンツを保存すべきかどうかをドキュメント編集ツールに通知する。編集ツールが無視可能なコンテンツを保存または破棄するために使用する方法は、編集ツールの領分である。複数の<CarryAlong>要素が1つの名前空間内の同じ要素または属性を参照している場合、指定された最後の<CarryAlong>が優先する。
<CarryAlong>属性
Figure 2010218577
<MustUnderstand>要素
<MustUnderstand>は、Ignorable要素の効果を反転した要素である。この手法は、例えば、代替えコンテンツと組み合わせたときに、有用である。<MustUnderstand>要素により定義された範囲から外れている場合、要素はIgnorableのままである。
<MustUnderstand>属性
Figure 2010218577
<AlternateContent>要素
<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を保存しなければならないことも指定する。
Figure 2010218577
<MustUnderstand>の使用
以下の実施例は、<MustUnderstand>要素の使い方を説明している。
Figure 2010218577
<MustUnderstand>要素を使用すると、ルート要素内でIgnorableと宣言されているとしても、v3:Luminanceへの参照はエラーとなる。この手法は、例えば、代わりにバージョン2で追加されたCanvasのLuminanceプロパティを使用する代替コンテンツと組み合わせた場合に有用である。Canvas要素の範囲から外れた場合、CircleのLuminanceプロパティは再び無視可能である。
Figure 2010218577
<AlternateContent>の使用
要素または属性が<MustUnderstand>と宣言されているが、<AlternateContent>ブロックの<Prefer>ブロックでは認識されない場合、<Prefer>ブロックは丸ごとスキップされ、<Fallback>ブロックがいつものように処理される(つまり、出会ったMustUnderstandアイテムはエラーとして報告される)。
Figure 2010218577
リーチパッケージフォーマット
以下の説明では、特定のファイルフォーマットについて説明する。このセクションの個別の主要な小見出しとして、「リーチパッケージフォーマットの紹介」。「リーチパッケージの構造」、「固定ペイロードパーツ」、「FixedPageマークアップの基本事項」、「Fixed−Payload要素およびプロパティ」、および「FixedPageマークアップ」がある。それぞれの主要な小見出しは、1つまたは複数の関連する小見出しを持つ。
リーチパッケージフォーマットへの序論
これまではフレームワークの実施例について説明したが、以下の説明は、上述のツールを利用して実現される特有のフォーマットの1つに関する。以下の説明は、1つのフォーマット例を取りあげているにすぎず、請求されている発明の対象の適用を制限する意図ではないことは評価され理解されるであろう。
この実施形態によれば、単一のパッケージに複数のペイロードを入れることができ、それぞれドキュメントの異なる表現として機能を果たす。1つのペイロードは、識別可能な「ルート」パーツ、およびそのルートパーツのその有効な処理に必要なすべてのパーツを含むパーツのコレクションである。例えば、ペイロードは、ドキュメントの固定表現、リフロー可能表現、または任意の表現とすることが可能である。
以下の説明では、固定ペイロードと呼ばれる特定の表現を定義する。固定ペイロードは、FixedPanelマークアップを含むルートパーツを持ち、FixedPanelマークアップはさらにFixedPageパーツを参照する。以上あわせて、マルチページドキュメントの正確な表示を記述する。
少なくとも1つの固定ペイロードを保持し、後述の他の規則に従うパッケージは、リーチパッケージと呼ばれる。リーチパッケージのリーダーおよびライターは、リーチパッケージフォーマットの仕様に基づいて、自前のパーサおよびレンダリングエンジンを実装することができる。
リーチパッケージの特徴
記載されている実施形態によれば、リーチパッケージでは、ドキュメントの配布、アーカイブ、および表示に関する情報作業者側の要求条件を扱う。知られている表示規則を使用することにより、リーチパッケージは、保存されているフォーマットからあいまいなところなくかつ正確に複製または印刷ができ、しかも、クライアントデバイスまたはアプリケーションは、特定のオペレーティングシステムまたはサービスライブラリに縛られない。さらに、リーチペイロードは中立の、アプリケーションに依存しない方法で表されるため、パッケージを作成するために使用されたアプリケーションがなくても、ドキュメントを普通に表示し、印刷することができる。このような機能を実現するために、固定ペイロードという概念を導入し、リーチパッケージに含める。
記載されている実施形態によれば、固定ペイロードは固定されたページ数を持ち、改ページは常に同じである。固定ペイロード内の1ページのすべての要素のレイアウトはあらかじめ設定される。それぞれのページは固定されたサイズと向きを持つ。したがって、消費側ではレイアウトの計算は一切行う必要はなく、コンテンツを単に表示するだけである。これは、グラフィックスのみならず、テキストにも適用され、これは正確な印刷上の配置で固定ペイロードにより表される。ページのコンテンツ(テキスト、グラフィックス、イメージ)は、強力な、しかし単純なビジュアルプリミティブを一式使用して説明される。
リーチパッケージでは、ページを構成するため様々な機構をサポートしている。ページの1グループを次から次へと「接着」し、「FixedPanel」にまとめる。このページグループは、従来のマルチページドキュメントとほぼ等価である。FixedPanelは、その後、さらに、構成−「複合」ドキュメントを組み立てるためビルドシーケンスおよび選択のプロセス−に参加することができる。
例示され、説明されている実施形態では、リーチパッケージは、例えば、一組のFixedPanelを接着して単一のより大きな「ドキュメント」に仕上げるために使用できる、FixedPanelシーケンスと呼ばれる特定の種類の順序列をサポートする。例えば、異なるソースを出所とする、2ページのカバーメモ(FixedPanel)と20ページのレポート(FixedPanel)の2つのドキュメントを、接着してまとめることを考える。
リーチパッケージでは、「同じ」コンテンツの代替的な表現を含むドキュメントパッケージをビルドするときに使用できる、多数の特定のセレクタをサポートする。特に、リーチパッケージでは、言語、色表現能力、およびページサイズに基づいて選択を行うことができる。したがって、例えば、セレクタを使用してドキュメントの英語表現とフランス語表現のいずれかを選ぶバイリンガルドキュメントを用意することも可能である。
リーチパッケージに構成するためにセレクタおよびシーケンスを使用するこれらの単純な方法に加えて、セレクタおよびシーケンスで他のセレクタおよびシーケンスを参照することにより、強力な集合階層を構築できることに留意することが重要である。この実施形態では、何ができて何ができないかの正確な規則は、以下の「リーチパッケージの構造」という表題のセクションで規定される。
さらに、リーチパッケージは、固定ペイロードでない追加ペイロードを含むことができる。しかし、その代わりに、ドキュメントのよりリッチで、おそらく編集可能な表現となる。これにより、パッケージは、編集アプリケーションで正しく動作するリッチで編集可能なドキュメントだけでなく、視覚的に正確な、編集アプリケーションなしで表示できる表現をも含むことができる。
最後に、この実施形態によれば、リーチパッケージは、プリントチケットと呼ばれるものもサポートしている。プリントチケットは、パッケージが印刷されるときに使用すべき設定を提供するものである。これらのプリントチケットは様々な方法で添付することができ、かなり柔軟性が高い。例えば、プリントチケットをパッケージ全体に「添付」することができ、その設定はパッケージ全体に適用される。プリントチケットは、さらに、構造内の下位のレベル(例えば、個々のページ)に添付することもでき、それらのプリントチケットは、パーツを添付先に印刷するときに使用する優先(Override)設定を備える。
リーチパッケージの構造
上で説明したように、リーチパッケージは、「固定」ページ、FixedPanels、構成、プリントチケットなどを含む機能群をサポートする。それらの機能群は、パッケージモデルのコアコンポーネントであるパーツと関係とを使用してパッケージ内に表される。このセクションおよび関連する下位セクションでは、「リーチパッケージ」の完全な定義を与える。さらに、これらのパーツおよび関係すべての組み立て、関連付けなどの作業をどのように行わなければならないかを説明する。
リーチパッケージの構造の概要
図10は、リーチパッケージの実施例および、この実施形態において、パッケージを構成し、またはパッケージ内に見出せる有効な種類の各パーツを示す図である。以下の表は、有効なそれぞれのパーツタイプの一覧であり、またそれぞれについての説明も載せてある。
Figure 2010218577
リーチパッケージは、「どこでも表示して印刷」ドキュメントとなるように設計されているため、リーチパッケージのリーダーおよびライターは、「有効な」リーチパッケージを構成するものについての共通の明確に定義された予測を共有しなければならない。以下では、「有効な」リーチパッケージの定義を与えるために、いくつかの概念を先に定義しておく。
リーチ構成パーツ(Reach CompositionParts)
リーチパッケージは、パッケージの開始パーツから構成ブロックをトラバースすることにより「発見可能」である少なくとも1つのFixedPanelを含んでいなければならない。説明されている実施形態によれば、発見プロセスは以下のアルゴリズムに従う。
・パッケージ開始パーツから始めて、構成パーツのグラフを再帰的にトラバースする。
・このトラバースを実行する際に、リーチ構成パーツ(後述)である構成パーツにのみトラバースする。
・グラフのエッジの終端節点(出て行く弧がない節点)すべてを特定する。
これらの終端節点は(<item>要素を介して)リーチペイロードのルートと呼ばれるパーツ群を参照する。
固定ペイロード(Fixed Payload)
固定ペイロードは、ルートパーツがFixedPanelパーツであるペイロードである。例えば、図10の固定ペイロードはそれぞれ、ルートパーツとして、関連するFixedPanelパーツを持つ。ペイロードは、FixedPanelの有効な処理に必要なパーツのすべての完全閉方(closure)を含む。これらに含まれるのは、以下のとおりである。
・FixedPanel自体
・FixedPanel内から参照されるすべてのFixedPages
・ペイロード内のFixedPagesのどれかにより(直接的に、またはセレクタを通じて間接的に)参照されるすべてのイメージパーツ
・ペイロード内の任意のFixedPagesで使用されるイメージブラシから直接的または間接的に参照されるすべてのリーチセレクタ(後述)
・ペイロード内のFixedPagesのどれかにより参照されるすべてのフォントパーツ
・固定ペイロード内の任意のパーツに添付されるすべての記述的メタデータパーツ
・固定ペイロード内の任意のパーツに添付される任意のプリントチケット
リーチパッケージの有効性(Validity)規則
こうして定義が適切に行われたので、説明されている実施形態に従って「有効な」リーチパッケージを記述する適合性規則について説明することにする。
・リーチパッケージは、上述のようにパッケージ関係の標準の機構を使用して定義された開始パーツを持たなければならない。
・リーチパッケージの開始パーツは、セレクタまたはシーケンスのいずれかでなければならない。
・リーチパッケージは、FixedPanelである少なくとも1つのリーチペイロードルートを持たなければならない。
・PrintTicketパーツは、複数の構成パーツのどれか、複数のFixedPanelパーツ、または1つまたは複数のFixedPanelで識別された複数のFixedPageパーツのどれかに添付することができる。この実施例では、これは、http://PLACEHOLDER/HasPrintTicketRel関係を介して行われる。
・PrintTicketsは、これらのパーツのどれかまたはすべてに添付することができる。
・与えられたパーツは、高々1つのPrintTicketが添付されなければならない。
・記述的メタデータパーツは、パッケージ内の任意のパーツに添付できる。
・FixedPayload内のすべてのFontオブジェクトは、セクション「フォントパーツ」で定義されているフォントフォーマット規則の条件を満たしていなければならない。
・固定ペイロードのFixedPage内からのイメージの参照は、選択を行い(他のセレクタを通じて再帰的に行う可能性がある)、表示される実際のイメージパーツを見つけることができるセレクタを指すことができる。
・固定ペイロードで使用されるすべてのImageオブジェクトは、セクション「イメージパーツ」で定義されているフォントフォーマット規則の条件を満たしていなければならない。
・FixedPageから(直接的に、またはセレクタを通じて間接的に)参照される任意のフォント、イメージ、またはセレクタパーツについて、参照するFixedPageから参照されているパーツへの「必須パーツ」関係(関係名=http://mmcf-fixed-RequiredResource-PLACEHOLDER)がなければならない。
リーチ構成パーツ
リーチパッケージに含まれる構成パーツは何種類あってもよいが、構成パーツのタイプの明確に定義された集合のみが、本明細書に基づく明確に定義された挙動を持つ。挙動が明確に定義されている構成パーツをリーチ構成パーツと呼ぶ。これら以外のパーツは、リーチパッケージの有効性を判断するときに関係しない。
以下のタイプの構成パーツが、リーチ構成パーツとして定義される。
Figure 2010218577
リーチセレクタ
リーチ構成パーツとして定義されているセレクタ構成パーツは、リーチセレクタと呼ばれる。上述のように、言語セレクタは、英語またはフランス語などの自然言語に基づいて表現を選択する。この言語を発見するために、セレクタは各アイテムを検査する。XMLであるもののみ考察する。これらについては、それぞれのXMLのルート要素を検査して、その言語を判別する。xml:lang属性が存在していない場合、パーツは無視される。その後セレクタはそれぞれのパーツを次々に検討し、言語がシステムのデフォルト言語と一致する最初のものを選択する。
カラーセレクタは、モノクロかカラーかに基づいて表現を選択する。ページサイズセレクタは、ページサイズに基づいて表現を選択する。コンテンツタイプセレクタは、コンテンツタイプがシステムにより認識できるかどうかに基づいて表現を選択する。
リーチシーケンス
リーチ構成パーツとして定義されているシーケンス構成パーツは、リーチシーケンスと呼ばれる。固定シーケンスでは、固定コンテンツである子を1つのシーケンスにまとめる。
固定ペイロードパーツ(Fixed PayloadParts)
固定ペイロードは、FixedPanelパーツ、FixedPageパーツ、イメージパーツ、フォントパーツ、プリントチケットパーツ、および記述的メタデータパーツを含むことができ、それぞれの小見出しのところで説明する。
FixedPanelパーツ
以下に示すように、固定ペイロードのドキュメント構造は、FixedPagesをスパインの一部として識別する。スパインパーツとページパーツとの関係は、そのスパインの関係ストリーム内で定義される。FixedPanelパーツは、コンテンツタイプapplication/xml+PLACEHOLDERである。
Fixed−Payloadコンテンツのスパインは、<FixedPanel>要素を<Document>要素内に入れることにより、マークアップで指定する。以下の例では、<FixedPanel>要素により、スパイン内に保持されているページのソースを指定している。
Figure 2010218577
<Document>要素
<Document>要素は、属性を持たず、子は1つだけ、つまり<FixedPanel>を持たなければならない。
<FixedPanel>要素
<FixedPanel>要素は、ドキュメントスパインであり、ページの順序付きシーケンスを単一のマルチページドキュメントに論理的にバインドして、1つにまとめる。ページについては、常に、その幅と高さを指定するが、<FixedPanel>要素は、さらにオプションにより、高さおよび幅を指定することもできる。この情報は、例えば、ページサイズに基づいて代替的な表現を選択することなど、様々な目的のために使用できる。<FixedPanel>要素によって高さと幅を指定している場合、通常は、<FixedPanel>内のページの幅および高さとを揃えられるが、それらの寸法は、個々のページの高さと幅とを指定しているわけではない。
以下の表は、説明されている実施形態によるFixedPanel属性のまとめである。
Figure 2010218577
<PageContent>要素は、<FixedPanel>要素の唯一の許容可能な子要素である。<PageContent>要素は、ドキュメントのページ順序と一致する順次マークアップの順序になっている。
<PageContent>要素
各<PageContent>要素は、単一ページのコンテンツのソースへの参照である。ドキュメント内のページ数を判別するには、<FixedPanel>に含まれる<PageContent>子の数を数える。
<PageContent>要素は、許容可能な子を持たず、単一の必須属性Sourceを持ち、これはページのコンテンツに対するFixedPageを参照する。
<FixedPanel>要素と同様に、<PageContent>要素は、オプションにより、PageHeightおよびPageWidth属性を含むことができ、ここでは単一ページのサイズを反映している。必須ページサイズは、FixedPageパーツで指定され、<PageContent>のオプションサイズは報告のみである。<PageContent>サイズ属性を使用すると、個々のFixedPageパーツをすべてロードして解析することなく、ドキュメントビューアなどのアプリケーションからドキュメントの視覚的レイアウト推定を素早く行うことができる。
以下に示す表は、<PageContent>のまとめであり、属性の説明も載せてある。
Figure 2010218577
ページコンテンツのURI文字列は、パッケージに相対的なコンテンツのパーツ位置を参照しなければならない。
FixedPageパーツ
<FixedPanel>内の<PageContent>要素はFixedPageパーツを名前(URI)で参照する。各FixedPageパーツは、コンテンツの単一ページの表示を記述するFixedPageマークアップを含む。FixedPageパーツは、コンテンツタイプapplication/xml+PLACEHOLDER−FixedPageである。
マークアップでのFixedPagesの記述
以下に、ソースコンテンツのマークアップで上述のスパインマークアップ例で参照されているページを探す実施例を示す(<PageContentSource=“p1.xml”/>)。
Figure 2010218577
以下の表は、FixedPageプロパティのまとめであり、プロパティの説明も載せてある。
Figure 2010218577
FixedPageマークアップの読み込み順序
一実施形態では、FixedPageに含まれるGlyphs子要素のマークアップ順序は、ページのテキストコンテンツの所望の読み込み順序と同じでなければならない。この読み込み順序は、ビューア内のFixedPageからの順次テキストの対話形式による選択/コピーのためと、アクセシビリティ技術による順次テキストへのアクセスを可能にするために使用することができる。マークアップ順序と読み込み順序との間の対応関係を保証するのは、FixedPageマークアップを生成するアプリケーション側の役目である。
イメージパーツ
サポートされているフォーマット
説明されている実施形態によれば、リーチパッケージ内でFixedPagesにより使用されるイメージパーツは、固定された数のフォーマット、例えば、PNGまたはJPEGとすることができるが、他のフォーマットを使用することもできる。
フォントパーツ
説明されている実施形態によれば、リーチパッケージでは、限られた数のフォントフォーマットをサポートする。例示され説明されている実施形態では、サポートされているフォントフォーマットとして、TrueTypeフォーマットとOpenTypeフォーマットがある。
当業者であれば理解するであろうが、OpenTypeフォントフォーマットは、TrueTypeフォントフォーマットの拡張であり、PostScriptフォントデータおよび複雑な印刷レイアウトのサポートを追加したものである。OpenTypeフォントファイルは、TrueTypeアウトラインフォントまたはPostScriptアウトラインフォントのいずれかを含む表形式のデータが格納される。
説明されている実施形態によれば、リーチパッケージでサポートされていないフォントフォーマットは、Adobe type 1、Bitmapフォント、隠し属性付きのフォント(システムフラグを使用してそれを列挙するかどうかを決定する)、ベクトルフォント、およびEUDCフォント(フォントファミリ名がEUDC)である。
フォントのサブセット化
固定ペイロードは、後で詳しく説明するGlyphs要素を使用してすべてのテキストを表す。この実施形態では、フォーマットは固定なので、FixedPayloadsにより要求されるグリフのみを含むように、フォントをサブセット化することが可能である。したがって、リーチパッケージ内のフォントは、グリフの使用法に基づいてサブセット化することができる。サブセット化されたフォントは、オリジナルフォント内のすべてのグリフを含むわけではないが、サブセット化されたフォントは有効なOpenTypeフォントファイルでなければならない。
プリントチケットパーツ
プリントチケットパーツは、パッケージが印刷されるときに使用できる設定を提供する。これらのプリントチケットは様々な方法で添付することができ、かなり柔軟性が高い。例えば、プリントチケットをパッケージ全体に「添付」することができ、その設定はパッケージ全体に適用される。プリントチケットは、さらに、構造内の下位のレベル(例えば、個々のページ)に添付することもでき、それらのプリントチケットは、パーツを添付先に印刷するときに使用する優先(Override)設定を備える。
記述的メタデータ
上述のように、記述的メタデータパーツは、パッケージのライターまたは作成者に、パッケージのリーダーが高い信頼度で発見できるようなプロパティの値を保存する手段を提供する。これらのプロパティは、通常、パッケージ全体だけでなくコンテナ内の個々のパーツに関する追加情報を記録するために使用される。
FixedPageマークアップの基本事項
このセクションでは、FixedPageマークアップに関連する一部の基本情報について説明するが、「固定ペイロードおよびその他のマークアップ標準」、「FixedPageマークアップモデル」、「リソースおよびリソース参照」、および「FixedPage描画モデル」のセクションを含む。
固定ペイロードおよびその他のマークアップ標準
リーチパッケージ内の固定ペイロードのFixedPanelおよびFixedPageマークアップは、Windows(登録商標)LonghornのAvalonXAMLのマークアップから抽出されたサブセットである。つまり、FixedPayloadマークアップは、独立のXMLマークアップフォーマットとして孤立しているが(本明細書で説明しているように)、Longhornシステムと同じ方法でオリジナルのマルチページドキュメントのWYSIWYG複製をロードし、それを表示する。
XAMLマークアップに関するバックグラウンドとして以下について考察する。XAMLマークアップは、ユーザがオブジェクトの階層およびオブジェクトの背後にあるプログラミングロジックを、XMLベースのマークアップ言語として指定できるようにする機構である。これにより、オブジェクトモデルはXMLによって記述できる。このため、マイクロソフト社による.NETFrameworkのCommon Language Runtime(CLR)におけるクラスなどの拡張可能クラスを、XMLにおいてアクセスすることができる。XAML機構は、XMLタグをCLRオブジェクトに直接マッピングし、マークアップの中で関連コードを表すことができるようにする機能を備える。様々な実装において、XAMLのCRLベースの実装を特に利用する必要はないことは評価され理解されるであろう。むしろ、CLRベースの実装は、本明細書で説明されている実施形態の背景においては、XAMLを採用できる一手段をなすにすぎない。
より具体的に、CLR概念(左側のコンポーネント)からXML(右側のコンポーネント)へのマッピングの実施例を例示している図11とともに、以下の点を考察する。名前空間は、リフレクションと呼ばれるCLR概念を使用するxmlns宣言内に見つけられる。クラスは、XMLタグに直接マッピングされる。プロパティおよびイベントは、直接属性にマッピングされる。この階層を使用することにより、ユーザは、XMLマークアップファイル内のCLRオブジェクトの階層木を指定できる。Xamlファイルは、.xaml拡張子を持ち、媒体タイプがapplication/xaml+xmlであるxmlファイルである。Xamlファイルは、通常xmlns属性を使用して名前空間を指定する1つのルートタグを持つ。名前空間は、他のタイプのタグによって指定することができる。
続きであるが、xamlファイル内のタグは、一般に、CLRオブジェクトにマッピングされる。タグは、要素、複合プロパティ、定義、またはリソースである。要素は、一般的に実行時にインスタンス化され、オブジェクトの階層を形成するCLRオブジェクトである。複合プロパティタグは、親タグでプロパティを設定する場合に使用される。定義タグは、コードをページに追加し、リソースを定義するために使用される。リソースタグは、木をリソースとして指定することよってのみオブジェクトの木を再利用できる機能を提供する。定義タグは、さらに、他のタグ内でxmlns属性として定義することもできる。
ドキュメントがマークアップで適切に記述された後(通常は、ライターにより)、マークアップは解析して処理することができる(通常は、リーダーにより)。適宜構成されているパーサは、タグを見つけるためにどのCLRアセンブリおよび名前空間を探索すべきかを、ルートタグから判別する。様々な場合において、パーサは、xmlns属性により指定されたURLで名前空間定義ファイルを探し、見つける。名前空間定義ファイルからは、アセンブリの名前およびそのインストールパスならびにCLR名前空間のリストが得られる。パーサは、タグを見つけると、タグのxmlnsおよびそのxmlnsのxmlns定義ファイルを使用してタグが参照するCLRクラスを判別する。パーサは、定義ファイル内でアセンブリおよび名前空間が指定されている順序で探索する。一致が見つかると、パーサはそのクラスのオブジェクトをインスタンス化する。
そこで、上で説明したばかりの、上記の参照により組み込まれるアプリケーションにおいてより詳しく説明されている機構を使用することにより、マークアップタグを使用するXMLベースのファイルによって、オブジェクトモデルを表すことができる。オブジェクトモデルをマークアップタグとして表すことができるこの機能を使用すると、ベクトルグラフィックドローイング、固定フォーマットドキュメント、適応フロードキュメント、およびアプリケーションUIを非同期でまたは同期して作成することができる。
ws
例示され説明されている実施形態では、Fixed Payloadマークアップはごく最低限度のものであり、AvalonXAMLレンダリングプリミティブのほぼ完全に倹約的なサブセットである。これは、Avalonで表すことができるものであれば何でも視覚的に表し、忠実度も完全である。固定ペイロードマークアップは、AvalonXAML要素およびプロパティのサブセットであるが、Avalon XAMLと比べて、追加規約、標準形式、または使用上の制約がプラスされている。
定義されている完全最小の固定ペイロードマークアップセットにより、プリンタRIPまたは対話形式のビューアアプリケーションなどのリーチパッケージリーダーの実装およびテストにかかわるコストが低減されるだけでなく、関連するパーサの複雑さと占有メモリ量の軽減化をはかることができる。この倹約的マークアップセットでは、さらに、サブセット化、エラー、またはリーチパッケージライターとリーダーとの間の不整合に対する機会を最小限に抑えるため、フォーマットおよびそのエコシステムは本質的により強固なものとなる。
リーチパッケージでは、固定ペイロードマークアップが最小であることに加えて、ハイパーリンク、セクション/アウトライン構造およびナビゲーション、テキスト選択、ならびにドキュメントアクセシビリティなどの機能を含むリーチパッケージドキュメントのビューアまたはプレゼンテーションをサポートするため追加の意味的情報用のマークアップを指定する。
最後に、上述のバージョン管理および拡張性機構を使用すると、特定のターゲット消費アプリケーション、ビューア、またはデバイスに対して、最小の固定ペイロードマークアップを、よりリッチな要素群によって補助することが可能である。
FixedPageマークアップモデル
例示され説明されている実施形態では、FixedPageパーツは、XML要素、XML属性、およびXML名前空間に基づくXMLベースのマークアップ言語で表される。本明細書では、3つのXML名前空間はFixedPageマークアップに含まれるように定義されている。このような名前空間の1つは、本明細書の他の場所で定義されているバージョン管理要素および属性を参照する。FixedPageマークアップで要素および属性に使用される主名前空間は、「http://schemas.microsoft.com/MMCF-PLACEHOLDER-FixedPage」である。そして最後に、FixedPageマークアップでは、後述の第3の名前空間を必要とする「リソース」という概念を導入する。
FixedPageマークアップは、XML要素およびXML属性を使用して表されるが、その仕様は、「コンテンツ」および「プロパティ」の高水準抽象モデルに基づく。FixedPage要素は、すべてXML要素として表される。ほんの一握りのFixedPage要素で、子XML要素として表される、「コンテンツ」を保持することができる。しかし、プロパティ値は、XML属性を使用するか、または子XML要素を使用して表すことができる。
FixedPageマークアップは、さらに、リソース辞書およびリソース参照の双子の概念に依存する。リソース辞書と複数のリソース参照を組み合わせることにより、単一のプロパティ値を複数のFixedPageマークアップ要素の複数のプロパティにより共有することができる。
FixedPageマークアップのプロパティ
例示され説明されている実施形態では、FixedPageマークアッププロパティの値を指定するために使用できる3つの形式のマークアップがある。
プロパティがリソース参照を使用して指定される場合、プロパティ名はXML属性名として使用され、属性値の特別なシンタックスはリソース参照が存在することを示す。リソース参照を表すシンタックスは、「リソースおよびリソース参照」という表題のセクションで説明される。
リソース参照として指定されていないプロパティ値は、値が設定されているプロパティを識別する入れ子になっている子XML要素を使用して、XMLで表すことができる。この「複合プロパティシンタックス」については後述する。
最後に、いくつかの非リソース参照プロパティ値は、単純テキスト文字列として表すことができる。このようなプロパティ値はすべて複合プロパティシンタックスを使用して表すことができるが、これらはさらに、単純なXML属性シンタックスを使用して表すこともできる。
与えられた要素について、プロパティは、値を指定するのに使用されているシンタックスに関係なく、高々1回設定することができる。
単純属性シンタックス
単純文字列として表すことができるプロパティ値については、XML属性シンタックスを使用してプロパティ値を指定することができる。例えば、「Color」というプロパティを持つ「SolidColorBrush」と呼ばれるFixedPageマークアップ要素が与えられた場合、以下のシンタックスを使用してプロパティ値を指定できる。
Figure 2010218577
複合プロパティシンタックス
ある種のプロパティ値は、単純文字列として表すことができず、例えば、XML要素を使用してプロパティ値を記述する。このようなプロパティ値は、単純な属性シンタックスを使用して表すことはできない。しかし、複合プロパティシンタックスを使用すると表すことができる。
複合プロパティシンタックスでは、子XML要素が使用されるが、XML要素名は親要素名とプロパティ名との組合せを、ピリオドで区切ったものから派生される。<SolidColorBrush>に設定することができるプロパティ「Fill」を持つFixedPageマークアップ要素<Path>が与えられた場合、以下のマークアップを使用して、<Path>要素の「Fill」プロパティを設定することができる。
Figure 2010218577
複合プロパティシンタックスは、プロパティ値を表すのに単純な属性シンタックスで十分であっても使用することができる。したがって、前のセクションの例は以下のようになる。
Figure 2010218577
代わりに以下のように複合プロパティシンタックスで表すことができる。
Figure 2010218577
複合プロパティシンタックスを使用してプロパティ値を指定する場合、「Properties」を表す子XML要素は、「Contents」を表す子XML要素の前になければならない。個々の複合プロパティ子XML要素の順序は重要でなく、親要素の「Contents」の前にまとめて現れればよい。
例えば、<Canvas>要素(後述)のClipおよびRenderTransformプロパティの両方を使用する場合、両方とも<Canvas>の<Path>および<Glyphs>コンテンツの前に現れなければならない。
Figure 2010218577
リソースおよびリソース参照
リソース辞書は、それぞれリソースと呼ばれる共有可能プロパティ値を保持するために使用することができる。それ自体FixedPageマークアップ要素であるプロパティ値は、リソース辞書内に保持することができる。リソース辞書内のリソースには、それぞれ名前が付く。リソースの名前を使用して、プロパティのXML属性からリソースを参照することができる。
例示され説明されている実施形態では、<Canvas>および<FixedPage>要素は、リソース辞書を伴うことができる。リソース辞書は、「Resources」と呼ばれるプロパティ内の<Canvas>および<FixedPage>要素のプロパティとしてマークアップで表現される。しかし、個々のリソース値は、直に<FixedPage.Resources>または<Canvas.Resources>XML要素内に埋め込まれる。構文上は、<Canvas.Resources>および<FixedPage.Resource>のマークアップは、「Contents」を含むマークアップ要素のそれに類似している。
この実施形態によれば、<Canvas.Resources>または<FixedPage.Resources>は、<Canvas>または<FixedPage>の複合プロパティシンタックスプロパティ値の前になければならない。これらも、同様に、<Canvas>または<FixedPage>の「Contents」の前になければならない。
固定ペイロードリソース辞書の定義
<FixedPage>または<Canvas>は、<Canvas.Resources>XML要素を使用して表される、リソース辞書を伴うことができる。単一のリソース辞書内のそれぞれの要素は、要素に関連付けられたXML属性を使用して識別される固有の名前が付けられる。プロパティに対応する属性からこの「Name」属性を区別するために、Name属性をFixedFormat要素のとは別の名前空間からとる。そのXML名前空間に対するURIは、「http://schemas.microsoft.com/PLACEHOLDER-for-resources」である。下の例では、2つのジオメトリが定義されており、1つは矩形で、もう1つは円である。
Figure 2010218577
リソースの参照
プロパティ値を上で定義したリソースの1つに設定するには、リソース名を{}で囲むXML属性値を使用する。例えば、「{Rectangle}」は使用されるジオメトリを表す。以下のマークアップの例では、辞書内のジオメトリオブジェクトにより定義される矩形領域は、SolidColorBrushにより塗りつぶされる。
Figure 2010218577
この実施形態によれば、リソース参照は、リソース辞書内のリソースの定義の範囲にあってはならない。
リソース参照を解決するためのスコープ規則
同じリソース辞書内で単一の名前を2回使用することはできないが、単一のFixedPageパーツ内の2つの異なるリソース辞書内であれば同じ名前を使用できる。さらに、内側の<Canvas>のリソース辞書では、何らかの外側の<Canvas>または<FixedPage>のリソース辞書内で定義された名前を再利用することができる。
要素のプロパティを設定するのにリソース参照が使用される場合、与えられた名前のリソースの検索は様々なリソース辞書内で行われる。プロパティを持つ要素が<Canvas>であれば、その<Canvas>のリソース辞書が存在する場合、目的の名前のリソースの検索に使用される。要素が<Canvas>でない場合、検索は<Canvas>または<FixedPage>を含む最も近いものから始まる。目的の名前が最初に検索されたリソース辞書内で定義されていない場合、<Canvas>または<FixedPage>を含む次に最も近いものが検索される。検索が<FixedPage>ルート要素まで続けられ、目的の名前のリソースがその<FixedPage>と関連するリソース辞書内に見つからない場合には、エラーが発生する。
以下の実施例は、これらの規則を説明している。
Figure 2010218577
FixedPage描画モデル
FixedPage(または入れ子になっているCanvas子)要素は、他の要素が上に表示される要素である。コンテンツの配列は、FixedPage(またはCanvas)について指定されたプロパティ、FixedPage(またはCanvas)上の要素に対して指定されたプロパティ、および固定ペイロード名前空間に対し定義されている構成規則により制御される。
要素の位置決めにCanvasを使用する
固定マークアップでは、すべての要素は、座標系の現在の原点(0,0)に相対的に配置される。現在の原点を削除するには、RenderTransform属性を、要素を含むFixedPageまたはCanvasのそれぞれの要素に適用する。
以下の例では、RenderTransformを通じて要素の位置決めを行うことを例示している。
Figure 2010218577
座標系および単位
例示され説明されている実施形態によれば、座標系は、最初、浮動小数点数として表される、1インチ(2.54cm)の1/96に等しくなるように設定され、座標系の原点(0,0)はFixedPage要素の左上角である。
RenderTransform属性を子要素上で指定することにより、アフィン変換を現在の座標系に適用することができる。
ページ寸法
ページ寸法は、FixedPage要素上の「PageWidth」および「PageHeight」パラメータにより指定される。
構成規則
FixedPagesでは、アルファチャネルとともにペインタのモデルを使用する。説明されている実施形態によれば、構成は構成規則に従い、以下の順序で実行されなければならない。
・FixedPage(または入れ子になっているCanvas)は、子要素がマークアップ内に現れる順序で描画される非束縛サーフェス(unboundedsurface)として考えられる。このサーフェスのアルファチャネルは「0.0」(すべて透明)に初期化されている。実際、理想的な非束縛サーフェスは、すべての子要素を表示することにより作られるすべてのマークを保持できる十分な大きさのビットマップバッファと考えることができる。
・サーフェスのコンテンツは、FixedPage(またはCanvas)のRenderTransformプロパティにより指定されたアフィン変換を使用して変換される。
・すべての子要素は、サーフェス上に表示され、FixedPage(またはCanvas)のClipプロパティ(これもまたRenderTransformプロパティを使用して変換される)によりクリッピングされる。FixedPageは、さらに、(0,0,PageWidth,PageHeight)で指定された矩形にクリッピングされる。子要素がOpacityプロパティまたはOpacityMaskプロパティを持つ場合、サーフェス上に表示される前にその子要素に適用される。
・最後に、FixedPage(またはCanvas)のコンテンツが、含む側の要素上に表示される。FixedPageの場合、含む側の要素は物理的結像面である。
レンダリングは、以下の規則に従って実行される。
・サーフェスにマークを作る要素は、「Glyphs」および「Path」だけである。
・他のすべてのレンダリング効果は、「Glyphs」および「Path」要素を「Canvas」上に配置し、その様々な有効な属性を適用することにより得られる。
固定ペイロード要素およびプロパティ
例示され説明されている実施形態によれば、固定ペイロードは、ページおよびそのコンテンツを表現するためにマークアップ内で使用される、XML要素の小さな集まりを含む。FixedPanelパーツ内のマークアップは、<Document>、<FixedPanel>、および<PageContent>要素を使用することで、ドキュメントの複数のページをふつうのインデックスの作成しやすいルートにまとめる。それぞれのFixedPageパーツは、<Path>および<Glyphs>要素(いっしょになって描画すべてを行う)、およびそれらをグループにまとめるための<Canvas>要素のみを含む、<FixedPage>要素内のページのコンテンツを表す。
固定ペイロードマークアップの要素階層を、「最上位レベルの要素」、「パスのジオメトリ、クリップ」、「パス、グリフ、またはOpacityMaskを塗りつぶすために使用されるブラシ」、「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について考察する。これらは最上位レベル要素に共通の唯一のプロパティであるだけでなく、上記の構成規則のセクションで説明したように、親要素から子要素へ結果を「累積する」唯一のプロパティでもある。累積は、構成規則の適用結果である。以下の表は、これらの共通属性に関するまとめの説明であり、その後に、各属性の詳細な説明を載せた。
Figure 2010218577
Figure 2010218577
Opacity属性
不透明は、表示(アルファブレンディング)の際に2つの要素を透過的にブレンドするために使用される。Opacity属性は、0(完全透明)から1(完全不透明)まで様々な範囲を指定する。包含する範囲外の値は、マークアップ解析時にこの範囲に固定される。したがって、実際に、[−∞...0]は透明であり、[1..∞]は不透明である。
Opacity属性は、以下の計算を通じて適用される(事前乗算されていないソースおよびデスティネーション色を仮定し、両方ともscRGBとして指定される)。
OE:OpacityMaskでの対応する位置にある要素またはアルファ値の不透明属性
AS:ソースサーフェスに存在するアルファ値
RS:ソースサーフェスに存在する赤色値
GS:ソースサーフェスに存在する緑色値
BS:ソースサーフェスに存在する青色値
AD:デスティネーションサーフェスにすでに存在するアルファ値
RD:デスティネーションサーフェスにすでに存在する赤色値
GD:デスティネーションサーフェスにすでに存在する緑色値
BD:デスティネーションサーフェスにすでに存在する青色値
A*:デスティネーションサーフェスに対する結果のアルファ値
R*:デスティネーションサーフェスに対する結果の赤色値
G*:デスティネーションサーフェスに対する結果の緑色値
B*:デスティネーションサーフェスに対する結果の青色値
下付文字Tで指定されている値はすべて一時的な値である(例えば、RT1)。
ステップ1:ソースアルファ値に不透明度値を乗算する
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を参照)。
Clipプロパティは次のようにして適用される。
・Clip子要素により記述されている幾何学的要素の内側に入るすべての表示されたコンテンツは可視である。
・Clip子要素により記述されている幾何学的要素の外側にあるすべての表示されたコンテンツは可視ではない。
RenderTransform子要素
MatrixTransformは、要素に利用できる唯一の変換属性である。これは、アフィン変換を表す。シンタックスは以下のとおりである。
Figure 2010218577
Matrix属性で指定されている6個の数値は、m00、m01、m10、m11、dx、dyである。
完全な行列は以下のようになる。
m00 m01 0
m10 m11 0
dx dy 1
与えられた座標X、Yは、RenderTransformにより、以下の計算を適用することで変換され、座標X’、Y’に関する結果が得られる。
X’=X*m00+Y*m10+dx
Y’=X*m01+Y*m11+dy
OpacityMask子要素
OpacityMaskでは、Brushを指定するが、Fill Brushとは対照的に、ブラシのアルファチャネル(上のOpacity属性を参照)のみを、要素を表示するための追加パラメータとして使用する。さらに、要素の各ピクセルの各アルファ値に、OpacityMaskBrush内の対応する位置のアルファ値を掛ける。
<Canvas>要素
<Canvas>要素は、複数の要素をひとまとめにする場合に使用される。通常、FixedPage要素が<Canvas>でひとまとめにされるのは、構成された共通属性(つまり、Opacity、Clip、RenderTransform、またはOpacityMask)を共有する場合である。これらの要素をCanvas上でグループ化することにより、共通属性を個々の要素ではなくキャンバスに適用できる場合が多い。
<Canvas>の属性および子要素
<Canvas>要素は、前記の共通属性、つまりOpacity、Clip、RenderTransform、およびOpacityMaskのみを持つ。これらは、以下の表で説明されているような<Canvas>要素とともに使用される。
Figure 2010218577
Figure 2010218577
以下のマークアップの実施例は、<Canvas>の使い方を説明している。
Figure 2010218577
Canvasマークアップの読み込み順序に関して、以下の点について考察する。FixedPageの場合と同様、Canvas内に含まれるGlyphs子要素のマークアップ順序は、テキストコンテンツの所望の読み込み順序と同じでなければならない。この読み込み順序は、ビューア内のFixedPageからの順次テキストの対話形式による選択/コピーのためと、アクセシビリティ技術による順次テキストへのアクセスを可能にするために使用することができる。マークアップ順序と読み込み順序との間の対応関係を保証するのは、FixedPageマークアップを生成するアプリケーション側の役目である。
入れ子になっているCanvas要素内に含まれる子Glyphs要素は、Canvasの前後に出現する兄弟Glyphs要素の間で一列に順序付けられる。
実施例:
Figure 2010218577
<Path>要素
Path要素は、幾何学的領域を記述するXMLベースの要素である。幾何学的領域とは、塗りつぶすことができる、またはクリッピングパスとして使用できる形状のことである。矩形および楕円などのふつうのジオメトリタイプは、Pathジオメトリを使用して表すことができる。パスは、Geometry.Data子要素およびFillまたはOpacityなどのレンダリング属性を指定することにより記述される。
<Path>のプロパティおよび子要素
後述のように、以下のプロパティは<Path>要素に適用可能である。
Figure 2010218577
Figure 2010218577
<Path.Data>子要素のジオメトリにより記述される領域を塗りつぶす方法を記述するために、Fillプロパティを使用する。<Path.Data>形状を描画できる領域を制約する場合には、Clipプロパティを使用する。
ジオメトリの記述のために<Path>を使用する
パスのジオメトリは、以下に示すように、<Path.Data>の入れ子になっている子要素の系列として指定される。ジオメトリは、<PathGeometry>子要素の集合を含む<GeometryCollection>、または<PathFigures>を含む単一の<PathGeometry>子要素で表すことができる。
Figure 2010218577
同じ<GeometryCollection>または<PathGeometry>要素により、Canvas、Path、またはGlyphsのClipプロパティで使用されるクリッピングパスに対するジオメトリが定義される。
以下の表では、Pathジオメトリを定義する子要素の階層を導入している。
Figure 2010218577
GeometryCollection
GeometryCollectionは、Boolean CombineModeオプションに従って表示するためにひとまとめにされる幾何学的オブジェクトの集合である。GeometryCollection要素は、FixedPageマークアップ内の、幾何学的形状の視覚的組合せを作るための機構である。
Figure 2010218577
CombineMode属性は、GeometryCollection内の幾何学的形状の集合を組み合わせるために使用されるブール演算を指定する。モードに応じて、様々な領域が含まれたり、除外されたりする。
Figure 2010218577
CombineModesは、以下のように取り扱われる。
非可換: ComplementおよびExcludeは、非可換であり、したがって、GeometryCollection内の第1のジオメトリとそれぞれの個別の残りのジオメトリとの間で定義される。例えば、集合{g1,g2,g3}に対して、ExcludeのCombineModeは((g1exclude g2)and (g1exclude g3))として適用される。
可換: ブール演算Union、Xor、Intersectは、可換であり、したがって、順序独立性がジオメトリに適用される。
PathGeometry
PathGeometry要素は、PathFigure要素の集合を含む。PathFiguresの和集合は、PathGeometryの内部を定義する。
Figure 2010218577
FillRule属性に関して、以下の事項を考察する。PathGeometryの塗りつぶされた領域は、Filled属性が真に設定されている包含されるPathFigureのすべてをとり、FillRuleを適用して囲まれている領域を決定することにより定義される。FillRuleオプションは、Geometryに含まれるFigure要素の共通部分領域を組み合わせることで、Geometryの結果領域を形成する方法を指定する。
説明されている実施形態では、EvenOdd FillおよびNonZeroFillアルゴリズムが実現されている。
EvenOdd Fillアルゴリズムでは、キャンバス上のある点の「内部性」、つまり内部にあるかどうかを判定するために、その点から任意の方向に無限大まで延びる光線を描画し、その後、形状のセグメントがその光線を横切る場所を調べる。カウント0から始め、セグメントが左から右へ光線を横切るたびに1を加え、パスセグメントが右から左へ光線を横切るたびに1を引く。交差点を数えた後、その結果が0であればその点はパスの外部にある。そうでなければ内部にある。
NonZero Fillアルゴリズムでは、キャンバス上のある点の「内部性」、つまり内部にあるかどうかを判定するために、その点から任意の方向に無限大まで延びる光線を描画し、その光線が横切る与えられた形状からのパスセグメントの個数を数える。この数が奇数であればその点は内部にあり、偶数であればその点は外部にある。
PathFigure
PathFigure要素は、1つまたは複数の線分もしくは曲線セグメントの集合からなる。セグメント要素により、PathFigureの形状が定義される。PathFigureでは、常に、閉じた形状を定義しなければならない。
Figure 2010218577
図はまず開始点が必要であり、その後、各線分または曲線セグメントは加えられた最後の点から続く。PathFigure集合内の第1のセグメントは、StartSegmentでなければならず、CloseSegmentは最後のセグメントでなければならない。StartSegmentはPoint属性を持つ。CloseSegmentは属性を持たない。
Figure 2010218577
Path.Dataジオメトリの固定ペイロードマークアップ
以下では、キャンバス上にパスを描画し塗りつぶすためのマークアップを取りあげる。以下の特定の実施例では、矩形パスがキャンバス上に描画され、濃い緑色のブラシで塗りつぶされる。
Figure 2010218577
以下のマークアップでは、ベジエ三次曲線の描画が記述される。つまり、PolyLineSegmentのほかに、固定ペイロードマークアップは、ベジエ三次曲線を描画するPolyBezierSegmentを含む。
Figure 2010218577
ブラシ
ブラシは、<Path>要素により定義された幾何学的形状の内部を塗りつぶす場合、および<Glyphs>要素で表示されたキャラクタビットマップを塗りつぶす場合に使用される。ブラシは、さらに、<Canvas.OpacityMask>、<Path.OpacityMask>、および<Glyphs.OpacityMask>でアルファ透明マスクを定義する際にも使用される。FixedPageマークアップは、以下のブラシを含む。
Figure 2010218577
属性は、ブラシ毎に異なるが、すべてのブラシがOpacity属性を持つ。ImageBrushおよびDrawingBrushはタイリング機能を共有する。この2つのグラディエント塗りつぶしブラシは、属性も共通に持つ。
マークアップでブラシの子要素を使用する方法を以下に示す。
Figure 2010218577
ブラシの共通プロパティ
説明されている実施形態によれば、以下のプロパティは、オプションの子要素が比較的少ない単純なブラシであるSolidColorBrushを除く、すべてのブラシに適用可能である。
Figure 2010218577
Figure 2010218577
DrawinBrushおよびImageBrushの共通属性
Figure 2010218577
Horizontal Alignment属性は、書き込まれる領域内でブラシを水平方向に揃える方法を指定する。VerticalAlignment属性は、書き込まれる領域内でブラシを垂直方向に揃える方法を指定する。ViewBox属性は、デフォルト値として(0,0,0,0)を持ち、未設定と解釈される。未設定の場合、調整は行われず、Stretch属性は無視される。ビューボックスは、コンテンツに対する新しい座標系を指定する、つまり、ビューポートの範囲と原点を再定義する。Stretch属性を使用すると、コンテンツがどのようにビューポートにマッピングされるかを指定しやすい。viewBox属性の値は、ホワイトスペースおよび/またはカンマで区切られた4つの「無次元」数のリスト、<min−x>、<min−y>、<width>、および<height>であり、Rect型である。Viewboxrectは、境界ボックスにマッピングされるユーザ空間内の矩形を指定する。この動作は、scaleXおよびscaleYを挿入することと同じである。Stretch属性(オプションがnone以外の場合)により、グラフィックスのアスペクト比を維持する制御をさらに行える。追加変換を与えられた要素のすべての子孫に適用することで、指定された効果を生み出す。Brushに対する変換がある場合、これは、ViewBoxへのマッピングの「上で」適用される。
Stretch属性は、None、Fill、Uniform、UniformToFillの4つのモードを持つ。
Figure 2010218577
単純なブラシとその属性
Path.BrushおよびCanvas.Brush子要素は、SolidColorBrush、ImageBrush、およびDrawingBrushを含む。
SolidColorBrushは、定義済みの幾何学的領域をベタ一色に塗りつぶす。色のアルファ成分がある場合、それはBrush内の対応する不透明属性と乗法的に結合される。
Figure 2010218577
以下の例は、SolidColorBrushに対する色属性の表し方を例示している。
Figure 2010218577
ImageBrushは、空間をイメージで塗りつぶす場合に使用することができる。ImageBrushのマークアップでは、URIを指定することができる。他のすべての属性がデフォルト値に設定されている場合、イメージは、その領域の境界ボックスいっぱいに引き延ばされる。
Figure 2010218577
ImageSource属性は、サポートされているリーチイメージフォーマットまたはそれらのタイプのうちの1つのイメージが得られるセレクタのいずれか一方を参照しなければならない。
DrawingBrushは、空間をベクトルドローイングで塗りつぶす場合に使用することができる。DrawingBrushはDrawingChild要素を持ち、マークアップでの使い方は以下に示されている。
Figure 2010218577
グラディエントブラシとその属性
グラディエントは、グラディエントブラシのXML子要素としてグラディエントストップ(gradient stops)の集合を指定することにより描画される。これらのグラディエントストップは、ある種の数列で色を指定する。このフレームワークでサポートされているグラディエントブラシは2種類ある、つまり線形と放射状である。
グラディエントは、指定された色空間内のグラディエントストップ間の補間を実行することにより描画される。LinearGradientBrushおよびGradientBrushは、以下の共通属性を共有する。
Figure 2010218577
Figure 2010218577
SpreadMethod属性に関して、以下の事項を考察する。SpreadMethodオプションにより、空間の塗りつぶし方を指定する。デフォルト値はPadである。
Figure 2010218577
MappingMode属性
LinearGradientBrushに関して、以下の事項を考察する。LinearGradientBrushは、ベクトルに沿って線形グラディエントブラシを指定する。
Figure 2010218577
以下のマークアップの実施例は、LinearGradientBrushの使い方を説明している。矩形パスが含まれるページは、線形グラディエントで塗りつぶされる。
Figure 2010218577
この実施例は、線形グラディエントで塗りつぶされる矩形パスが含まれるページを示している。パスは、さらに、パスをクリッピングする八角形のクリッププロパティも持つ。
Figure 2010218577
RadialGradientは、プログラミングモデルにおいては線形グラディエントに似ている。しかし、線形グラディエントはグラディエントベクトルを定義する始点と終点を持つが、放射状グラディエントは、グラディエントの挙動を定義する焦点を伴う円を持つ。この円は、グラディエントの終点を定義する、つまり、1.0でのグラディエントストップは、円の周囲の色を定義する。焦点は、グラディエントの中心を定義する。0.0のグラディエントストップは、焦点での色を定義する。
Figure 2010218577
アルファおよび透明
例示され説明されている実施形態によれば、それぞれの要素の各ピクセルは、0.0(完全透明)から1.0(完全不透明)までの範囲のアルファ値を伴う。アルファ値は、透明の視覚的効果を生み出すために要素をブレンドする場合に使用される。
それぞれの要素は、要素の各ピクセルのアルファ値に一様に乗じられるOpacity属性を持ちうる。
さらに、OpacityMaskを使用することで、表示されたコンテンツをブレンドしてデスティネーションに送るのを制御するピクセル毎の不透明度を指定することができる。OpacityMaskで指定された不透明度は、コンテンツのアルファチャネル内にすでにたまたま存在しうる不透明度と乗法的に結合される。OpacityMaskにより指定されたピクセル毎の不透明度は、マスク内の各ピクセルのアルファチャネルを見ることにより判別されるが、色データは無視される。
OpacityMaskのタイプはBrushである。これにより、様々な方法でBrushのコンテンツをコンテンツの及ぶ範囲へマッピングする仕方を指定することができる。ジオメトリの塗りつぶしに使用された場合と同様に、ブラシは、デフォルトでは、コンテンツ空間全体を塗りつぶし、そのコンテンツを適宜引き延ばすかまたは複製する。これは、ImageBrushがそのImageSourceを引き延ばして、コンテンツを完全に覆い、GradientBrushは辺から辺へ延びることを意味する。
アルファブレンディングに必要な計算は、「Opacity属性」という前のセクションで説明されている。
以下の実施例は、OpacityMaskを使用して、「フェード効果」をGlyphs要素に与える方法を例示している。実施例のOpacityMaskは、不透明黒色から透明黒色へフェードする線形グラディエントである。
Figure 2010218577
リーチドキュメント内のイメージ
FixedPagesでは、イメージは囲まれている領域を塗りつぶす。FixedPage上にイメージを配置するには、ページ上で領域をまず指定しなければならない。この領域は、Path要素のジオメトリにより定義される。
Path要素のFillプロパティは、描かれている領域に対する塗りつぶしコンテンツを指定する。イメージは、ImageBrushにより領域内に描画される、一種の塗りつぶしである。すべてのブラシは、適宜ブラシコンテンツの引き延ばしまたは反復(タイリング)のいずれかにより領域全体を塗りつぶすデフォルトの挙動を持つ。ImageBrushの場合、ImageSourceプロパティにより指定されたコンテンツは、その領域を完全に覆うように引き延ばされる。
以下のマークアップは、イメージをキャンバス上に置く方法を示している。
Figure 2010218577
多くのイメージは矩形なので、リソース辞書に矩形パス要素を入れることは、マークアップの簡素化に役立つと考えられる。その後、RenderTransform属性を使用してPathの位置を決めることができる(上を参照)。
Figure 2010218577

色は、scRGBまたはsRGB表記を使用して例示され説明されているマークアップで指定することができる。scRGB規格は、「IEC61966−2−2 scRGB」と呼ばれ、www.iec.chから入手することができる。
ARGBパラメータを以下の表に示す。
Figure 2010218577
カラーマッピング
現在、カラーコンテキストを指定するメタデータで、色分け要素のタグ付けをすることが検討中である。このようなメタデータは、ICCカラープロファイルまたは他の色定義データを含むことが可能である。
<Glyphs>要素
テキストは、Glyphs要素を使用して固定ペイロードにより表される。要素は、印刷およびリーチドキュメントの要件を満たすように設計されている。
Glyphs要素は、以下のプロパティの複数の組合せを持つことができる。
Figure 2010218577
Figure 2010218577
Figure 2010218577
Figure 2010218577
テキストマークアップの概要
グリフメトリクス
それぞれのグリフは、他のグリフとの位置の揃え方を指定するメトリクスを定義する。一実施形態によるメトリクスの実施例を図12に示す。
送り幅(Advance width)と組合せマーク
一般に、フォント内のグリフは、ベースグリフまたはベースグリフに付けられる組合せマークのいずれかである。ベースグリフは、通常、非ゼロの送り幅と0,0のオフセットベクトルを持つ。組合せマークは、通常、送り幅が0である。オフセットベクトルは、組合せマークの位置を調整するために使用することができ、したがって、組合せマークに対して非0,0値を設定することができる。
グリフラン内の各グリフは、その位置を制御する3つの値を持つ。これらの値は、原点、送り幅、およびグリフオフセットを示すが、以下ではこれらについて説明する。
・原点:各グリフは、名目上の原点が与えられていると想定され、ランの中の最初のグリフに対して、これはランの原点である。
・送り幅:各グリフの送り幅は、このグリフ原点に対する次のグリフの原点を与える。アドバンスベクトルは、常にランの進行方向に描画される。
・グリフオフセット(ベースまたはマーク):グリフオフセットベクトルにより名目上の原点に関してこのグリフ位置を調整する。
文字、グリフ、およびクラスタマップ
クラスタマップは、Unicodeコードポイントによる1つのエントリを含む。エントリ内の値は、このコードポイントを表すGlyphIndices配列内の第1のグリフのオフセットである。それとは別に、コードポイントが不可分の文字クラスタを表すコードポイントのグループの一部である場合、GlyphIndices配列内の第1のグリフは、そのクラスタを表す第1のグリフのオフセットを表す。
クラスタマッピング
クラスタマップは、1対1、多対1、1対多、または多対多であるコードポイント−グリフ間マッピングを表すことができる。1対1マッピングは、それぞれのコードポイントがちょうど1つのグリフで表される場合のもので、図13のクラスタマップエントリは、0、1、2、...である。
多対1マッピングは、2つ以上のコードポイントが単一のグリフにマッピングされる場合のものである。これらのコードポイントのエントリは、グリフインデックスバッファ内でそのグリフのオフセットを指定する。図14の例では、「f」および「i」の文字は、多くのセリフフォントの通常の活字組方法と同様に、合字で置き換えられている。
1対多マッピングに関しては、図15について以下の事項を考察する。「Sara Am」は、前のベース文字の上に置かれている部分(リング)とベース文字の右に置かれている部分(フック)を含む。タイ語のテキストが微調整される場合、フックはベース文字から間隔をあけて並べられるが、リングは、ベース文字の上に残り、したがって、多くのフォントでは、リングとフックを別々のグリフとして符号化する。1つのコードポイントが2つ以上のグリフにマッピングされる場合、そのコードポイントに対するClusterMap内の値は、そのコードポイントを表すGlyphIndeces配列内の第1のグリフを参照する。
多対多マッピングに関しては、図16について以下の事項を考察する。ある種のフォントでは、文字クラスタのコードポイントの不可分グループは、複数のグリフにマッピングされる。例えば、これは、インド語書き文字をサポートするフォントでは普通のことである。コードポイントの不可分のグループが1つまたは複数のグリフにマッピングされる場合、それらのコードポイントのそれぞれに対するClusterMap内の値は、そのコードポイントを表すGlyphIndeces配列内の第1のグリフを参照する。
以下の実施例は、タミル語の単語□□□□のUnicodeおよびグリフの表現を示している。最初の2つのコードポイントが組み合わさって、3つのグリフができる。
クラスタの指定
クラスタ指定は、非1:1クラスタの第1のグリフに対するグリフ指定の前に来る(マッピングは、1文字対1グリフよりも複雑になる)。
各クラスタ指定は、以下の形式を持つ。
(ClusterCodepointCount[:ClusterGlyphCount])
Figure 2010218577
<Glyphs>マークアップ
Glyphs要素では、フォントをURI、書体インデックス、および上述の一組の他の属性として指定する。例えば、
Figure 2010218577
各グリフ指定は、以下の形式を持つ。
[GlyphIndex][,[Advance][,[uOffset][,[vOffset][,[Flags]]]]]
グリフ指定の各部はオプションである。
Figure 2010218577
丸め誤差が累積しないアドバンス計算について、以下の事項を考察する。それぞれのアドバンス値は、後続のグリフの丸めを行っていない正確な原点から先行するグリフの計算で求めた(つまり、丸めた)送り幅の合計を、引いた値として計算しなければならない。このようにして、各グリフは、正確な位置のemの0.5%以内で位置決めされる。
グリフマークアップの実施例
Figure 2010218577
Figure 2010218577
グリフマークアップのサイズの最適化
グリフインデックスおよび送り幅などのマークアップの詳細は、ターゲットのクライアントがそれらを確実に再生できれば省略できる。以下のオプションにより、通常使用される単純なスクリプトの劇的な最適化が可能になる。
グリフインデックスのマークアップの最適化
グリフインデックスは、Unicode文字列内の文字の位置とグリフ文字列内のグリフの位置との間の1対1マッピングがある場合にマークアップから省略することができ、グリフインデックスは、フォントのCMAP(キャラクタマッピング)テーブル内の値であり、Unicode文字はあいまいさのない意味を持つ。
グリフインデックスは、文字からグリフへのマッピングが以下の場合にマークアップ内に用意すべきである。
・2つ以上のコードポイントが単一のグリフを形成する場合(合字)など、1対1でないか、または
・1つのコードポイントで複数のグリフを生成しているか、または
・OpenType機能の適用などによる、他の形態のグリフ置換が生じた場合。
グリフインデックスは、レンダリングエンジンがフォント内のCMAP(キャラクタマッピング)テーブル内のグリフと異なるグリフを置き換えるおそれがある場合に、マークアップに用意すべきである。グリフインデックスは、所望のグリフ表現がフォントのCMAPテーブル内にある表現でない場合に用意すべきである。
グリフ位置のマークアップの最適化
グリフ送り幅は、必要な送り幅が、正確にフォントのHMTX(水平メトリクス)またはVMTX(垂直メトリクス)テーブル内のグリフの送り幅である場合、マークアップから省略することができる。
グリフ垂直オフセットは、それが0の場合にマークアップから省略することができる。これは、ベース文字についてはほとんどいつでもそのとおりであり、より単純なスクリプト内の組合せマークについても一般的にそのとおりである。しかし、これは、アラビア語やインド語などのより複雑なスクリプト中の組合せマークについては当てはまらないことが多い。
グリフフラグのマークアップの最適化
グリフフラグは、通常のジャスティフィケーション優先度を持つベースグリフについては省略できる。
結論
上記のモジュール型のコンテンツフレームワークおよびドキュメントフォーマットの方法およびシステムでは、ドキュメント中心のコンテンツの構成、パッケージ化、配布、および表示のためのビルディングブロックを一式備える。これらのビルディングブロックは、ソフトウェアおよびハードウェアシステムによりドキュメントの生成、交換、および表示を、信頼性が高く一貫性のある形で行えるようにするドキュメントフォーマットのためのプラットフォーム依存性のないフレームワークを定義する。例示され説明されているリーチパッケージフォーマットは、ページ付けまたは事前ページ付けドキュメントを格納するためのフォーマットであり、これにより、様々な環境および様々なシナリオにわたるデバイスおよびアプリケーション間でのリーチパッケージのコンテンツの完全に忠実な表示または印刷が可能になる。本発明は構造的機能および/または方法論的ステップに固有の言語で説明されているが、付属の請求項で定められている発明は、説明した特定の機能またはステップに必ずしも限られないことは理解されるであろう。むしろ、特定の機能およびステップは請求されている発明を実施する好ましい形態として開示されている。

Claims (11)

  1. 関連付けられた名前をそれぞれが有する複数のパーツから構成されるドキュメントを定義するパッケージを作成するステップと、
    前記複数のパーツに関連付けられたマークアップ表示を含めるステップであって、前記マークアップ表示は、当該好ましいコンテンツを処理できるアプリケーションによって用いられる好ましいコンテンツと、前記好ましいコンテンツを処理できないアプリケーションによって用いられるフォールバックコンテンツとを含む、ステップと、
    を含むことを特徴とする方法。
  2. 請求項1記載の方法において、前記マークアップ表示は、未知の属性に対するアプリケーションの反応を制御する要素を更に含むことを特徴とする方法。
  3. 請求項1記載の方法において、前記マークアップ表示は、名前空間を無視可能であると宣言する要素を更に含むことを特徴とする方法。
  4. 請求項1記載の方法において、前記マークアップ表示は、名前空間に関連付けられているすべての要素及び属性を無視可能であると宣言する要素を更に含むことを特徴とする方法。
  5. 請求項1記載の方法において、前記マークアップ表示は、無視可能なコンテンツに対する動作を指定する要素を更に含むことを特徴とする方法。
  6. 請求項1記載の方法において、前記マークアップ表示は、無視可能であると宣言された名前空間の効果を反転させる要素を更に含むことを特徴とする方法。
  7. 請求項1記載の方法において、前記好ましいコンテンツと前記フォールバックコンテンツとは任意の方法で入れ子にできることを特徴とする方法。
  8. 請求項1記載の方法において、前記マークアップ表示を処理しているときに前記好ましいコンテンツが処理の停止を示す場合には、前記マークアップ表示の前記処理は前記フォールバックコンテンツによって続行することを特徴とする方法。
  9. 請求項1記載の方法において、前記マークアップ表示は、未知の属性に対するアプリケーションの反応を制御する属性を更に含むことを特徴とする方法。
  10. コンピュータ可読命令が記憶されており、前記命令が実行されると、請求項1に記載の方法が実行されることを特徴とする1又は複数のコンピュータ読取り可能媒体。
  11. 請求項10に記載の前記コンピュータ読取可能媒体を実現することを特徴とするコンピューティングシステム。
JP2010129676A 2004-04-30 2010-06-07 ドキュメントを処理する方法および装置 Expired - Fee Related JP5334916B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/837,043 US8661332B2 (en) 2004-04-30 2004-04-30 Method and apparatus for document processing
US10/837,043 2004-04-30

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007510682A Division JP4854658B2 (ja) 2004-04-30 2004-07-22 ドキュメントを処理する方法および装置

Publications (2)

Publication Number Publication Date
JP2010218577A true JP2010218577A (ja) 2010-09-30
JP5334916B2 JP5334916B2 (ja) 2013-11-06

Family

ID=35240754

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007510682A Expired - Fee Related JP4854658B2 (ja) 2004-04-30 2004-07-22 ドキュメントを処理する方法および装置
JP2010129676A Expired - Fee Related JP5334916B2 (ja) 2004-04-30 2010-06-07 ドキュメントを処理する方法および装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2007510682A Expired - Fee Related JP4854658B2 (ja) 2004-04-30 2004-07-22 ドキュメントを処理する方法および装置

Country Status (6)

Country Link
US (2) US8661332B2 (ja)
EP (1) EP1658565A4 (ja)
JP (2) JP4854658B2 (ja)
KR (1) KR101137171B1 (ja)
CN (1) CN1799046A (ja)
WO (1) WO2005111848A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9073207B2 (en) 2012-12-17 2015-07-07 Hyundai Motor Company Method for improving sensitivity of robot

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
WO2005124579A1 (en) * 2004-06-17 2005-12-29 Objective Systems Pty Limited Reproduction of documents into requested forms
US7984037B2 (en) * 2004-07-16 2011-07-19 Canon Kabushiki Kaisha Method for evaluating xpath-like fragment identifiers of audio-visual content
US7770180B2 (en) 2004-12-21 2010-08-03 Microsoft Corporation Exposing embedded data in a computer-generated document
US8135750B2 (en) * 2005-04-22 2012-03-13 Microsoft Corporation Efficiently describing relationships between resources
US7386558B2 (en) * 2005-04-22 2008-06-10 Microsoft Corporation Methods and systems for filtering an Extensible Application Markup Language (XAML) file to facilitate indexing of the logical content contained therein
WO2006116676A2 (en) 2005-04-28 2006-11-02 Wms Gaming Inc. Wagering game device having ubiquitous character set
CA2628846A1 (en) 2005-08-09 2007-02-15 Zalag Corporation Methods and apparatuses to assemble, extract and deploy content from electronic documents
EP1965327A4 (en) * 2005-12-05 2015-11-11 Sursen Corp METHOD AND SYSTEM FOR DOCUMENT DATA SECURITY MANAGEMENT
EP1965309A4 (en) * 2005-12-05 2009-04-01 Sursen Corp SYSTEM AND METHOD FOR HIERARCHISTIC PROCESSING OF DOCUMENTS
US20130179774A1 (en) * 2005-12-05 2013-07-11 Sursen Corp. Method and apparatus for processing document conforming to docbase standard
JP5530101B2 (ja) * 2005-12-05 2014-06-25 サーセン コーポレイション 文書処理システム及びその方法
WO2007065356A1 (fr) * 2005-12-05 2007-06-14 Beijing Sursen Co., Ltd Procede de traitement documentaire
CN100547590C (zh) * 2005-12-05 2009-10-07 北京书生国际信息技术有限公司 文档处理系统
US20080104203A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Viewing Digital Information Over a Network
AU2006249239B2 (en) * 2006-12-07 2010-02-18 Canon Kabushiki Kaisha A method of ordering and presenting images with smooth metadata transitions
US7855799B2 (en) * 2007-01-16 2010-12-21 Shah Pradip K Print workflow automation
US8407299B2 (en) * 2007-10-27 2013-03-26 Research In Motion Limited Content disposition system and method for processing message content in a distributed environment
CN101452408B (zh) * 2007-11-28 2013-07-17 国际商业机器公司 在软件应用程序中进行错误报告的系统和方法
US9558172B2 (en) * 2008-03-12 2017-01-31 Microsoft Technology Licensing, Llc Linking visual properties of charts to cells within tables
US8856647B2 (en) * 2009-02-20 2014-10-07 Microsoft Corporation Font handling for viewing documents on the web
US20110072371A1 (en) * 2009-09-18 2011-03-24 Microsoft Corporation Application programming interface for user interface creation
US20110115797A1 (en) * 2009-11-19 2011-05-19 Kaplan Gregory A Dynamic Streaming of Font Subsets
US8938668B2 (en) * 2011-08-30 2015-01-20 Oracle International Corporation Validation based on decentralized schemas
US8643652B2 (en) 2010-08-31 2014-02-04 Adobe Systems Incorporated Dynamic augmentation of extensible font subsets
US20130173522A1 (en) * 2011-10-04 2013-07-04 Paul William Watkinson System and method for applying distinguishing indicia to language in a model
JP2013089140A (ja) * 2011-10-20 2013-05-13 Canon Inc 文書管理装置およびその制御方法、並びにプログラム
US9240073B2 (en) * 2011-11-15 2016-01-19 Pixar File format for representing a scene
CN102520899B (zh) * 2011-12-07 2014-08-06 中国航空无线电电子研究所 通用座舱显示管理系统
CA2863522C (en) 2012-01-23 2018-08-28 Microsoft Corporation Formula detection engine
US20140164904A1 (en) * 2012-08-20 2014-06-12 Open-Xchange, Inc. Content management system
US10489493B2 (en) 2012-09-13 2019-11-26 Oracle International Corporation Metadata reuse for validation against decentralized schemas
CN103955550B (zh) * 2012-11-12 2018-04-24 罗克韦尔自动化技术公司 用于人机接口动画图形元素的计算机辅助设计的方法及装置
US20140258852A1 (en) * 2013-03-11 2014-09-11 Microsoft Corporation Detection and Reconstruction of Right-to-Left Text Direction, Ligatures and Diacritics in a Fixed Format Document
US9330070B2 (en) 2013-03-11 2016-05-03 Microsoft Technology Licensing, Llc Detection and reconstruction of east asian layout features in a fixed format document
US9497151B2 (en) * 2013-10-31 2016-11-15 Oracle International Corporation Optimization framework for in-memory storage of policy session data
US9792276B2 (en) * 2013-12-13 2017-10-17 International Business Machines Corporation Content availability for natural language processing tasks
US20160378735A1 (en) * 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Metamorphic documents
CN105786779B (zh) * 2016-03-01 2019-03-05 万达信息股份有限公司 Wps在线插件中实现基于文档模板的多行报告的方法
CN109933752B (zh) * 2017-12-15 2023-05-30 北京京东尚科信息技术有限公司 一种导出电子文档的方法和装置
CN108170660B (zh) * 2018-01-22 2021-08-06 北京百度网讯科技有限公司 多语言排版的显示方法、装置、浏览器、终端及介质
CN113674382A (zh) * 2020-05-15 2021-11-19 永中软件股份有限公司 一种线性渐变颜色在ofd文件流转版中的处理方法
CN113760246B (zh) * 2021-09-06 2023-08-11 网易(杭州)网络有限公司 应用程序文本语言处理方法、装置、电子设备及存储介质
KR102385792B1 (ko) * 2021-10-09 2022-04-14 (주) 바우디움 안내 문서, 행위 문서 및 제안 문서를 관리하는 방법 및 이를 이용한 장치
KR102693165B1 (ko) * 2022-05-06 2024-08-08 (주)키출판사 어도비 인디자인 전자편집(dtp) 프로그램을 이용한 단락상의 외톨이줄 제거 방법

Family Cites Families (450)

* Cited by examiner, † Cited by third party
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
US4556959A (en) 1983-03-29 1985-12-03 International Business Machines Corp. Printer selection of options
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
US5179702A (en) 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
WO1991014222A1 (en) 1990-03-05 1991-09-19 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
US5504818A (en) 1991-04-19 1996-04-02 Okano; Hirokazu Information processing system using error-correcting codes and cryptography
US6484189B1 (en) 1991-04-26 2002-11-19 Amiga Development Llc Methods and apparatus for a multimedia authoring and presentation system
US6005574A (en) 1991-07-05 1999-12-21 International Business Machines Corporation Data processing system including method and apparatus for performing graphics clipping operations
CA2098461A1 (en) 1992-06-17 1993-12-18 Antony S. Williams Method and system for registering data formats for objects
US5437008A (en) 1992-06-23 1995-07-25 Adobe Systems Incorporated Method of establishing constraints and links in a distribution frame between graphical elements and resolving the constaints
US5469533A (en) 1992-07-10 1995-11-21 Microsoft Corporation Resource-oriented printer system and method of operation
US5638498A (en) 1992-11-10 1997-06-10 Adobe Systems Incorporated Method and apparatus for reducing storage requirements for display data
DE69331064T2 (de) 1992-12-14 2002-07-18 Commw Of Australia Canberra Sicherheit einer elektronischen nachricht
US5745910A (en) 1993-05-10 1998-04-28 Apple Computer, Inc. Frame structure which provides an interface between parts of a compound document
US5911138A (en) 1993-06-04 1999-06-08 International Business Machines Corporation Database search facility having improved user interface
US5487138A (en) 1993-09-02 1996-01-23 Hewlett-Packard Company Method to reduce memory requirements in Asian printers while improving performance
US5369702A (en) 1993-10-18 1994-11-29 Tecsec Incorporated Distributed cryptographic object method
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
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
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
US5806078A (en) 1994-06-09 1998-09-08 Softool Corporation Version management system
AUPM704594A0 (en) 1994-07-25 1994-08-18 Canon Information Systems Research Australia Pty Ltd Efficient methods for the compositing of graphical elements
US5579466A (en) 1994-09-01 1996-11-26 Microsoft Corporation Method and system for editing and formatting data in a dialog window
US5881213A (en) 1994-10-05 1999-03-09 Microsoft Corporation Deferred printing
US5602974A (en) 1994-10-05 1997-02-11 Microsoft Corporation Device independent spooling in a print architecture
US6571279B1 (en) 1997-12-05 2003-05-27 Pinpoint Incorporated Location enhanced information delivery system
JPH08297669A (ja) 1994-12-27 1996-11-12 Internatl Business Mach Corp <Ibm> 複合ドキュメント内の複数のパートを自動的にリンクするシステムおよび方法
JPH08212205A (ja) 1995-02-07 1996-08-20 Nec Corp 複合文書管理システム
AU4783796A (en) 1995-02-22 1996-09-11 Plougmann, Ole Graphical environment for managing and developing applications
US5929852A (en) 1995-05-05 1999-07-27 Apple Computer, Inc. Encapsulated network entity reference of a network component system
US6952801B2 (en) 1995-06-07 2005-10-04 R.R. Donnelley Book assembly process and apparatus for variable imaging system
US5699493A (en) 1995-06-23 1997-12-16 Lexmark International, Inc. Method and apparatus for providing job accounting information to a host computer from a printer
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 情報処理方法
US5727220A (en) 1995-11-29 1998-03-10 International Business Machines Corporation Method and system for caching and referencing cached document pages utilizing a presentation data stream
US5893109A (en) 1996-03-15 1999-04-06 Inso Providence Corporation Generation of chunks of a long document for an electronic book system
US5940581A (en) 1996-03-21 1999-08-17 Apple Computer, Inc. Dynamic font management for large character sets
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
AU3060097A (en) 1996-05-14 1997-12-05 Ricoh Corporation Java printer
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
JPH1021023A (ja) 1996-07-02 1998-01-23 Ibm Japan Ltd データ出力制御装置
GB2314957A (en) 1996-07-05 1998-01-14 Esselte Nv Label printer
US5974548A (en) 1996-07-12 1999-10-26 Novell, Inc. Media-independent document security method and apparatus
US20040139049A1 (en) 1996-08-22 2004-07-15 Wgrs Licensing Company, Llc Unified geographic database and method of creating, maintaining and using the same
US6144974A (en) 1996-12-13 2000-11-07 Adobe Systems Incorporated Automated layout of content in a page framework
JP2001508883A (ja) 1996-12-20 2001-07-03 ファイナンシャル サーヴィシーズ テクノロジー コンソーティアム 電子文書を処理する方法およびシステム
US6138162A (en) 1997-02-11 2000-10-24 Pointcast, Inc. Method and apparatus for configuring a client to redirect requests to a caching proxy server based on a category ID with the request
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
JPH113072A (ja) * 1997-06-12 1999-01-06 Sony Corp 情報ネットワークシステム及び通信端末
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
US6078934A (en) 1997-07-09 2000-06-20 International Business Machines Corporation Management of a document database for page retrieval
US8386912B2 (en) 1997-07-28 2013-02-26 Ca, Inc. Hypermedia document publishing including hypermedia document parsing
JP4054444B2 (ja) 1997-07-30 2008-02-27 キヤノン株式会社 印刷制御装置及び印刷制御方法並びに記憶媒体
US6447184B2 (en) 1997-07-30 2002-09-10 Canon Kabushiki Kaisha Method and apparatus for controlling a printing operation
US6070175A (en) 1997-08-26 2000-05-30 The United States As Represented By The Director The National Security Agency Method of file editing using framemaker enhanced by application programming interface clients
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
US6173295B1 (en) 1997-09-15 2001-01-09 International Business Machines Corporation Method, system, and program for creating a job ticket inlcuding information on components and print attributes of a print job
US6094665A (en) 1997-09-18 2000-07-25 Hewlett-Packard Company Method and apparatus for correcting a uniform resource identifier
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
US6480206B2 (en) 1998-02-24 2002-11-12 Sun Microsystems, Inc. Method and apparatus for an extensible editor
US6088702A (en) 1998-02-25 2000-07-11 Plantz; Scott H. Group publishing system
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
JP4817474B2 (ja) 1998-03-17 2011-11-16 キヤノン株式会社 データ処理装置およびデ―タ処理方法およびコンピュ―タが読み出し可能なプログラムを格納した記憶媒体
US6281896B1 (en) 1998-03-31 2001-08-28 International Business Machines Corporation Data processor controlled interface with multiple tree of elements views expandable into individual detail views
US6115044A (en) 1998-03-31 2000-09-05 International Business Machines Corporation Data processor controlled display with a tree of items with modification of child item properties designated at parent level without modification of parent item properties
US6002814A (en) 1998-04-14 1999-12-14 Hewlett-Packard Company Means and method for configuring a data processing pipeline
US6247018B1 (en) 1998-04-16 2001-06-12 Platinum Technology Ip, Inc. Method for processing a file to generate a database
US6393442B1 (en) 1998-05-08 2002-05-21 International Business Machines Corporation Document format transforations for converting plurality of documents which are consistent with each other
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
JP3870551B2 (ja) * 1998-05-22 2007-01-17 セイコーエプソン株式会社 周辺機器の選択システム及び選択方法
KR19990086289A (ko) 1998-05-27 1999-12-15 윤종용 프리젠테이션 문서를 출력하는 장치 및 방법
US6298446B1 (en) 1998-06-14 2001-10-02 Alchemedia Ltd. Method and system for copyright protection of digital images transmitted over networks
JP4206515B2 (ja) 1998-06-15 2009-01-14 パナソニック株式会社 電子メール端末
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
US6654147B1 (en) 1998-07-06 2003-11-25 Creo Il Ltd. Anti-aliasing for digital printing
US6891632B2 (en) 1998-07-17 2005-05-10 Peerless Systems, Inc. Method and apparatus for selecting print strategy for optimal performance
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
US6385727B1 (en) 1998-09-25 2002-05-07 Hughes Electronics Corporation Apparatus for providing a secure processing environment
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
US20020174145A1 (en) 1998-10-16 2002-11-21 Brady Duga Automatic data formatting using a hypertext language
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
US6427230B1 (en) 1998-11-09 2002-07-30 Unisys Corporation System and method for defining and managing reusable groups software constructs within an object management system
JP3869135B2 (ja) 1998-11-10 2007-01-17 ソフトバンクモバイル株式会社 デジタル無線電話による情報提供サービスシステム
JP2000163356A (ja) 1998-11-25 2000-06-16 Canon Inc 周辺機器装置及びその制御方法及び記憶媒体
JP3767721B2 (ja) 1998-11-27 2006-04-19 セイコーエプソン株式会社 プリンタおよびプリンタの制御方法並びにプリンタを制御するプログラムを記録した記録媒体
US6583789B1 (en) 1998-12-03 2003-06-24 International Business Machines Corporation Method and system for processing glyph-based quality variability requests
US6342904B1 (en) 1998-12-17 2002-01-29 Newstakes, Inc. Creating a slide presentation from full motion video
US6993527B1 (en) 1998-12-21 2006-01-31 Adobe Systems Incorporated Describing documents and expressing document structure
US7043688B1 (en) 1998-12-22 2006-05-09 Casio Computer Co., Ltd. Document processing apparatus capable of increasing printing efficiency by forming virtual document and storage medium
US6675356B1 (en) 1998-12-22 2004-01-06 Xerox Corporation Distributed document-based calendaring system
US7031002B1 (en) 1998-12-31 2006-04-18 International Business Machines Corporation System and method for using character set matching to enhance print quality
US7274483B2 (en) 1999-01-19 2007-09-25 Canon Kabushiki Kaisha Processing of print data received over a network, and image formation using the processed data
US6505219B1 (en) 1999-01-27 2003-01-07 Xerox Corporation Process management system wherein process descriptions provide indices to document histories
TW475125B (en) 1999-02-12 2002-02-01 Inst Information Industry Data management system and method of structured electronic document
US6952831B1 (en) 1999-02-26 2005-10-04 Microsoft Corporation Driverless printing
US6426798B1 (en) 1999-03-04 2002-07-30 Canon Kabushiki Kaisha Data structure for printer description file
JP2000259484A (ja) 1999-03-05 2000-09-22 Sharp Corp 情報処理システム及び情報処理プログラムを記憶した記憶媒体
DE69911370T2 (de) 1999-03-08 2004-07-22 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Drucken von Dokumenten aus einem Rechner
US6498657B1 (en) 1999-03-17 2002-12-24 Prout Ag Programmable data extractor, data analyzer, and printer report generator
AU4077900A (en) 1999-04-07 2000-10-23 Critical Path Inc. Apparatus and methods for use of access tokens in an internet document management 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
US7000186B1 (en) 1999-05-03 2006-02-14 Amicas, Inc. Method and structure for electronically transmitting a text document and linked information
US6661526B1 (en) 1999-05-04 2003-12-09 Hewlett-Packard Development Company, L.P. Printer drivers using filters that are operating system-independent and printer-independent
US6369830B1 (en) 1999-05-10 2002-04-09 Apple Computer, Inc. Rendering translucent layers in a display system
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
US6466935B1 (en) 1999-06-04 2002-10-15 International Business Machines Corporation Applying relational database technology to process control in manufacturing processes
US6587128B2 (en) 1999-07-15 2003-07-01 International Business Machines Corporation Method for displaying hidden objects by varying the transparency of overlapping objects
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
US6560620B1 (en) 1999-08-03 2003-05-06 Aplix Research, Inc. Hierarchical document comparison system and method
US6598161B1 (en) 1999-08-09 2003-07-22 International Business Machines Corporation Methods, systems and computer program products for multi-level encryption
US7640318B1 (en) 1999-09-17 2009-12-29 Ricoh Co., Ltd. Method and apparatus for publishing documents over a network
US6763343B1 (en) 1999-09-20 2004-07-13 David M. Brooke Preventing duplication of the data in reference resource for XML page generation
EP1087306A3 (en) 1999-09-24 2004-11-10 Xerox Corporation Meta-documents and method of managing them
WO2001025920A1 (en) 1999-10-05 2001-04-12 Ejasent, Inc. Virtual resource id mapping
JP3937666B2 (ja) 1999-11-02 2007-06-27 キヤノン株式会社 印刷制御方法および装置
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
AU1405000A (en) 1999-12-15 2001-06-25 Sun Microsystems, Inc. Preparation of a software configuration using an xml type programming language
JP2001175648A (ja) 1999-12-21 2001-06-29 Murata Mach Ltd 文書管理システム
JP4693326B2 (ja) 1999-12-22 2011-06-01 ウビコム インコーポレイテッド 組込み型プロセッサにおいてゼロタイムコンテクストスイッチを用いて命令レベルをマルチスレッド化するシステムおよび方法
US6976257B2 (en) 1999-12-30 2005-12-13 International Business Machines Corporation Context based execution prioritization in Workflow-Management-Systems
EP1132808A1 (en) 2000-01-04 2001-09-12 Océ-Technologies B.V. Method and system for submitting jobs to a reproduction center
US20010044813A1 (en) 2000-01-10 2001-11-22 Frank Kenneth B. Document production platform
US6559966B1 (en) 2000-01-10 2003-05-06 Imagex, Inc. Trapping of graphic image files
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
US20020038348A1 (en) 2000-01-14 2002-03-28 Malone Michael K. Distributed globally accessible information network
US6643652B2 (en) 2000-01-14 2003-11-04 Saba Software, Inc. Method and apparatus for managing data exchange among systems in a network
US6701314B1 (en) 2000-01-21 2004-03-02 Science Applications International Corporation System and method for cataloguing digital information for searching and retrieval
JP3879350B2 (ja) 2000-01-25 2007-02-14 富士ゼロックス株式会社 構造化文書処理システム及び構造化文書処理方法
US20010039552A1 (en) 2000-02-04 2001-11-08 Killi Tom E. Method of reducing the size of a file and a data processing system readable medium for performing the method
US6992785B1 (en) 2000-02-09 2006-01-31 International Business Machines Corporation Method, data structure and apparatus for identifying resources prior to printing
US6785673B1 (en) 2000-02-09 2004-08-31 At&T Corp. Method for converting relational data into XML
US8122344B2 (en) 2000-03-01 2012-02-21 Research In Motion Limited System and method for rapid document conversion
US6591278B1 (en) 2000-03-03 2003-07-08 R-Objects, Inc. Project data management system and method
AU2001243513A1 (en) 2000-03-07 2001-09-17 Broadcom Corporation An interactive system for and method of automating the generation of legal documents
DE10109365A1 (de) 2000-03-17 2001-09-20 Heidelberger Druckmasch Ag Vorrichtung zur Erkennung von Funktionseinheiten
US6782507B1 (en) 2000-03-22 2004-08-24 Alex F. Dove Document size management method and data processing computer program
US7284199B2 (en) 2000-03-29 2007-10-16 Microsoft Corporation Process of localizing objects in markup language documents
JP2001282603A (ja) 2000-03-29 2001-10-12 Toshihiro Wakayama 情報コンテンツの連携管理システム
AU2001247934A1 (en) 2000-04-03 2001-10-15 Craig Goren Method and system for content driven electronic messaging
US7007232B1 (en) 2000-04-07 2006-02-28 Neoplasia Press, Inc. System and method for facilitating the pre-publication peer review process
US7055095B1 (en) 2000-04-14 2006-05-30 Picsel Research Limited Systems and methods for digital document processing
US6789229B1 (en) 2000-04-19 2004-09-07 Microsoft Corporation Document pagination based on hard breaks and active formatting tags
US20040049737A1 (en) 2000-04-26 2004-03-11 Novarra, Inc. System and method for displaying information content with selective horizontal scrolling
US6615281B1 (en) 2000-05-05 2003-09-02 International Business Machines Corporation Multi-node synchronization using global timing source and interrupts following anticipatory wait state
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
US6917976B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Message-based leasing of resources in a distributed computing environment
GB0011426D0 (en) 2000-05-11 2000-06-28 Charteris Limited A method for transforming documents written in different XML-based languages
US7864346B2 (en) 2000-05-16 2011-01-04 Xerox Corporation Apparatus and method for describing, planning and automatically programming complex finishing tasks
US7003723B1 (en) 2000-05-17 2006-02-21 Eastman Kodak Company System and method for representing and managing pages in a production printing workflow
US6509974B1 (en) 2000-05-17 2003-01-21 Heidelberger Druckmaschinen Ag Automated job creation for job preparation
FR2828307B1 (fr) 2000-05-18 2004-10-22 Il System Procede pour la constitution d'une base de donnees relative aux informations contenues dans un document
US6968332B1 (en) 2000-05-25 2005-11-22 Microsoft Corporation Facility for highlighting documents accessed through search or browsing
US7747611B1 (en) 2000-05-25 2010-06-29 Microsoft Corporation Systems and methods for enhancing search query results
US6519557B1 (en) 2000-06-06 2003-02-11 International Business Machines Corporation Software and method for recognizing similarity of documents written in different languages based on a quantitative measure of similarity
US6941510B1 (en) 2000-06-06 2005-09-06 Groove Networks, Inc. Method and apparatus for efficient management of XML documents
US6999101B1 (en) 2000-06-06 2006-02-14 Microsoft Corporation System and method for providing vector editing of bitmap images
US6771291B1 (en) 2000-06-07 2004-08-03 The Perfect Web Corporation Method for developing electronic documents employing multiple display regions
GB2364141A (en) 2000-06-28 2002-01-16 Peter David Hudson System for producing a patent specification and application
JP2002024211A (ja) 2000-06-30 2002-01-25 Hitachi Ltd 文書管理方法およびシステム並びにその処理プログラムを格納した記憶媒体
AU2001277868A1 (en) 2000-07-11 2002-01-21 Juice Software, Inc. A method and system for integrating network-based functionality into productivity applications and documents
GB0018042D0 (en) 2000-07-21 2000-09-13 Monsell Edm Ltd Method of and software for recordal and validation of changes to markup language files
US6826626B1 (en) 2000-07-21 2004-11-30 Clear Blue Technologies Management, Inc. Method of and apparatus for rapid retrieval of data in a content distribution network
US6681223B1 (en) 2000-07-27 2004-01-20 International Business Machines Corporation System and method of performing profile matching with a structured document
WO2002010970A2 (en) 2000-07-28 2002-02-07 Glaxo Group Limited Document management and publication using reusable packages and components
US20020049790A1 (en) 2000-08-08 2002-04-25 Ricker Jeffrey M Data interchange format transformation method and data dictionary used therefor
US20020116416A1 (en) 2000-08-11 2002-08-22 Falko Tesch Methods and systems for processing embedded objects
WO2002017115A2 (en) 2000-08-21 2002-02-28 Thoughtslinger Corporation Simultaneous multi-user document editing system
US6941511B1 (en) 2000-08-31 2005-09-06 International Business Machines Corporation High-performance extensible document transformation
JP2002149635A (ja) 2000-08-31 2002-05-24 Dowa Planning:Kk レイアウトシステムとそのコンピュータプログラム
US20030018694A1 (en) 2000-09-01 2003-01-23 Shuang Chen System, method, uses, products, program products, and business methods for distributed internet and distributed network services over multi-tiered networks
US7209921B2 (en) 2000-09-01 2007-04-24 Op40, Inc. Method and system for deploying an asset over a multi-tiered network
US20030050932A1 (en) 2000-09-01 2003-03-13 Pace Charles P. System and method for transactional deployment of J2EE web components, enterprise java bean components, and application data over multi-tiered computer networks
JP2002091958A (ja) 2000-09-12 2002-03-29 Canon Inc 情報処理装置及びその方法、コンピュータ可読メモリ
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
AU2001294555A1 (en) 2000-09-14 2002-03-26 Bea Systems Inc. Xml-based graphical user interface application development toolkit
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
US7131060B1 (en) 2000-09-29 2006-10-31 Raytheon Company System and method for automatic placement of labels for interactive graphics applications
US20020065857A1 (en) 2000-10-04 2002-05-30 Zbigniew Michalewicz System and method for analysis and clustering of documents for search engine
US7162538B1 (en) 2000-10-04 2007-01-09 Intel Corporation Peer to peer software distribution system
US7246348B1 (en) 2000-10-13 2007-07-17 International Business Machines Corp. Method and apparatus for using print jobs for downloading and executing printer controller code
JP3212983B1 (ja) 2000-10-31 2001-09-25 株式会社シイエム・シイ 部品説明書の作成支援方法、部品説明書の作成支援システム、及びコンピュータ読取可能な記録媒体
US7051330B1 (en) 2000-11-21 2006-05-23 Microsoft Corporation Generic application server and method of operation therefor
US20020090934A1 (en) 2000-11-22 2002-07-11 Mitchelmore Eliott R.D. Content and application delivery and management platform system and method
US7089490B1 (en) 2000-11-30 2006-08-08 Google, Inc. Identifying navigation bars and objectionable navigation bars
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
US6968557B1 (en) 2000-12-18 2005-11-22 Stratum8 Corporation Reducing stack memory resources in a threaded computer system
WO2002052480A1 (en) 2000-12-22 2002-07-04 Trac Medical Solutions, Inc. Dynamic electronic chain-of-trust document with audit trail
US8411298B2 (en) 2001-01-11 2013-04-02 Sharp Laboratories Of America, Inc. Methods and systems for printing device load-balancing
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
JP2002229976A (ja) 2001-02-01 2002-08-16 Canon Inc 情報処理装置及びその方法、コンピュータ可読メモリ、プログラム
JP2004192017A (ja) * 2001-02-06 2004-07-08 Dainippon Printing Co Ltd Icカードを装着した移動体通信端末を利用した情報家電端末の遠隔制御システムとそれに使用する移動体通信端末とicカード
US20020107886A1 (en) 2001-02-07 2002-08-08 Gentner Donald R. Method and apparatus for automatic document electronic versioning system
US6978420B2 (en) 2001-02-12 2005-12-20 Aplix Research, Inc. Hierarchical document cross-reference system and method
US7084998B2 (en) 2001-02-13 2006-08-01 Ariba, Inc. Method and system for processing files using a printer driver
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
US6925632B2 (en) 2001-03-08 2005-08-02 Martin Shiu System for configuration programming
US7302634B2 (en) 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US20020143523A1 (en) 2001-03-30 2002-10-03 Lakshmi Balaji System and method for providing a file in multiple languages
CA2343494A1 (en) 2001-04-03 2002-10-03 Ibm Canada Limited - Ibm Canada Limitee Method and device for semantic reconciling of complex data models
JP4322462B2 (ja) * 2001-04-10 2009-09-02 日本電気株式会社 マークアップ文書変換方式
US7500017B2 (en) 2001-04-19 2009-03-03 Microsoft Corporation Method and system for providing an XML binary format
US7216290B2 (en) 2001-04-25 2007-05-08 Amplify, Llc System, method and apparatus for selecting, displaying, managing, tracking and transferring access to content of web pages and other sources
GB2374953B (en) 2001-04-26 2005-11-16 Hewlett Packard Co Method and apparatus for embodying documents
US20020169738A1 (en) 2001-05-10 2002-11-14 Giel Peter Van Method and system for auditing an enterprise configuration
US20040015890A1 (en) 2001-05-11 2004-01-22 Windriver Systems, Inc. System and method for adapting files for backward compatibility
US7512879B2 (en) 2001-05-11 2009-03-31 Microsoft Corporation Intelligent virtual paging paradigm
US7302440B2 (en) 2001-07-27 2007-11-27 Metatomix, Inc. Methods and apparatus for statistical data analysis and reduction for an enterprise application
US7325193B2 (en) 2001-06-01 2008-01-29 International Business Machines Corporation Automated management of internet and/or web site content
RU2202825C2 (ru) 2001-06-04 2003-04-20 Арсен Ревазов Способ визуализации объектов рекламно-информационного содержания
US20020188638A1 (en) 2001-06-08 2002-12-12 Walter Hamscher Document negotiation
WO2003001413A1 (en) 2001-06-22 2003-01-03 Nosa Omoigui System and method for knowledge retrieval, management, delivery and presentation
US8001465B2 (en) 2001-06-26 2011-08-16 Kudrollis Software Inventions Pvt. Ltd. Compacting an information array display to cope with two dimensional display space constraint
US6968504B2 (en) 2001-06-29 2005-11-22 Microsoft Corporation Automated document formatting tool
AU2002324485A1 (en) * 2001-07-10 2003-01-29 Cyneta Networks, Inc. System, method, and apparatus for measuring application performance management
US7017162B2 (en) 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US7165239B2 (en) * 2001-07-10 2007-01-16 Microsoft Corporation Application program interface for network software platform
WO2003006257A1 (en) 2001-07-11 2003-01-23 Ecole Polytechnique Federale De Lausanne Images incorporating microstructures
US7636792B1 (en) 2001-07-13 2009-12-22 Oracle International Corporation Methods and systems for dynamic and automatic content creation for mobile devices
US20030020948A1 (en) 2001-07-27 2003-01-30 Jarvis Daniel Cook Dynamically loaded applications in a printer
US7240120B2 (en) 2001-08-13 2007-07-03 Texas Instruments Incorporated Universal decoder for use in a network media player
EP1421501B1 (en) 2001-08-24 2006-08-02 Intel Corporation A general intput/output architecture, protocol and related methods to implement flow control
US9460414B2 (en) 2001-08-28 2016-10-04 Eugene M. Lee Computer assisted and/or implemented process and system for annotating and/or linking documents and data, optionally in an intellectual property management system
US6986135B2 (en) 2001-09-06 2006-01-10 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment
US20040205539A1 (en) 2001-09-07 2004-10-14 Mak Mingchi Stephen Method and apparatus for iterative merging of documents
US6959437B2 (en) 2001-09-07 2005-10-25 Sharp Laboratories Of America, Inc. System and method for installing printer driver software
JP2003091544A (ja) 2001-09-19 2003-03-28 Fuji Photo Film Co Ltd 画像保管方法および装置、並びに画像保管システムおよびプログラム
US20070179957A1 (en) 2001-09-19 2007-08-02 Gibson Jerry T System and Method for Disseminating Drug Information
GB2380016A (en) 2001-09-21 2003-03-26 Hewlett Packard Co Generating a contract
US7054841B1 (en) 2001-09-27 2006-05-30 I2 Technologies Us, Inc. Document storage and classification
JP2005505039A (ja) 2001-09-28 2005-02-17 コムヴォールト・システムズ・インコーポレーテッド 情報記憶装置にオブジェクトをアーカイブする装置及び方法
US20030065946A1 (en) 2001-10-01 2003-04-03 Holliday John F. Paragraph management software system
AU2002328118A1 (en) 2001-10-04 2003-04-22 Koninklijke Philips Electronics N.V. Method of styling a user interface and device with adaptive user interface
US7590554B2 (en) 2001-10-11 2009-09-15 Hewlett-Packard Development Company, L.P. System and method for forecasting uncertain events with adjustments for participants characteristics
US20050179921A1 (en) 2001-10-26 2005-08-18 International Business Machines Corporation Method, apparatus and program product for device independent print job ticketing
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
JP3480844B2 (ja) 2001-10-26 2003-12-22 株式会社リコー 文書管理装置、文書管理制御方法及び文書管理制御プログラム
US20030090705A1 (en) 2001-11-13 2003-05-15 Ferlitsch Andrew R. Providing print job accounting in a computer system configuration
JP2003223440A (ja) 2001-11-21 2003-08-08 Ricoh Co Ltd 文書処理装置
US7328261B2 (en) 2001-11-21 2008-02-05 Clearcube Technology, Inc. Distributed resource manager
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
US8274719B2 (en) 2001-11-30 2012-09-25 Canon Kabushiki Kaisha Printing system, print preview method, and preview method using a printer driver
US6785654B2 (en) 2001-11-30 2004-08-31 Dictaphone Corporation Distributed speech recognition system with speech recognition engines offering multiple functionalities
KR100426307B1 (ko) 2001-12-12 2004-04-08 한국전자통신연구원 에스오에이피-엑스엠엘을 이용한 데이터 액세스 장치 및방법
US7496841B2 (en) 2001-12-17 2009-02-24 Workshare Technology, Ltd. Method and system for document collaboration
TW561377B (en) 2001-12-17 2003-11-11 Webstorage Corp Intelligent document management and usage method
US7146564B2 (en) 2001-12-21 2006-12-05 Xmlcities, Inc. Extensible stylesheet designs using meta-tag and/or associated meta-tag information
US7155670B2 (en) 2002-01-18 2006-12-26 Internet Disclosure Co., Ltd. Document authoring system and authoring management program
US6912555B2 (en) 2002-01-18 2005-06-28 Hewlett-Packard Development Company, L.P. Method for content mining of semi-structured documents
JP4291999B2 (ja) 2002-01-18 2009-07-08 株式会社インターネットディスクロージャー 書類作成システム及び作成管理プログラム
US7307745B2 (en) 2002-01-21 2007-12-11 Canon Kabushiki Kaisha Web-based print server and client
US20040205656A1 (en) 2002-01-30 2004-10-14 Benefitnation Document rules data structure and method of document publication therefrom
US20030142128A1 (en) 2002-01-30 2003-07-31 Benefitnation User interface for a document component management and publishing system
US7239412B2 (en) 2002-01-31 2007-07-03 Sharp Laboratories Of America, Inc. True print preview method and apparatus
US6836808B2 (en) 2002-02-25 2004-12-28 International Business Machines Corporation Pipelined packet processing
US7451236B2 (en) 2002-02-26 2008-11-11 Ricoh Company, Ltd. Document distribution and storage system
US7478170B2 (en) 2002-03-05 2009-01-13 Sun Microsystems, Inc. Generic infrastructure for converting documents between formats with merge capabilities
US7200668B2 (en) 2002-03-05 2007-04-03 Sun Microsystems, Inc. Document conversion with merging
US7689899B2 (en) 2002-03-06 2010-03-30 Ge Corporate Financial Services, Inc. Methods and systems for generating documents
US7992088B2 (en) 2002-03-12 2011-08-02 International Business Machines Corporation Method and system for copy and paste technology for stylesheet editing
US6765584B1 (en) 2002-03-14 2004-07-20 Nvidia Corporation System and method for creating a vector map in a hardware graphics pipeline
JP2003281197A (ja) 2002-03-25 2003-10-03 Honda Motor Co Ltd 電子パーツリストシステム
JP2003281198A (ja) 2002-03-25 2003-10-03 Honda Motor Co Ltd 電子パーツリストシステム及び電子パーツリストの作成方法
JP3824153B2 (ja) 2002-03-26 2006-09-20 本田技研工業株式会社 電子パーツリストシステム
JP3824152B2 (ja) 2002-03-26 2006-09-20 本田技研工業株式会社 総合検査システム及び総合検査方法
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
JP2003288237A (ja) 2002-03-27 2003-10-10 Hitachi Ltd 制御装置における実行時間測定装置及び実行時間測定方法
JP2003288334A (ja) 2002-03-28 2003-10-10 Toshiba Corp 文書処理装置及び文書処理方法
US20030195784A1 (en) 2002-04-11 2003-10-16 United Parcel Service Of America, Inc. Intelligent authorized return systems and methods
US7769639B2 (en) 2002-04-15 2010-08-03 Arnaud Delenda Method and system for real-time allocation of a resource among several entities
US20030196176A1 (en) 2002-04-16 2003-10-16 Abu-Ghazalah Maad H. Method for composing documents
JP3882905B2 (ja) 2002-04-16 2007-02-21 セイコーエプソン株式会社 コンテンツ配信のためのシステム及び方法
US7370032B2 (en) 2002-04-30 2008-05-06 Sap Ag Data gathering
US20040030987A1 (en) 2002-04-30 2004-02-12 Manelli Donald D. Method for generating customized patient education documents
US20030222890A1 (en) 2002-05-31 2003-12-04 David Salesin System and method for adaptable presentations
US7212297B2 (en) 2002-06-05 2007-05-01 Transdimension Inc. Universal printing system
US7281245B2 (en) 2002-06-05 2007-10-09 Microsoft Corporation Mechanism for downloading software components from a remote source for use by a local software application
WO2004001581A1 (en) 2002-06-19 2003-12-31 Jmarc Technologies, Llc Creating an html document from a source document
US7669120B2 (en) 2002-06-21 2010-02-23 Microsoft Corporation Method and system for encoding a mark-up language document
US7149966B2 (en) 2002-06-24 2006-12-12 Microsoft Corporation Word processor for freestyle editing of well-formed XML documents
US7716676B2 (en) 2002-06-25 2010-05-11 Microsoft Corporation System and method for issuing a message to a program
US7392479B2 (en) 2002-06-27 2008-06-24 Microsoft Corporation System and method for providing namespace related information
US7458018B2 (en) 2002-06-27 2008-11-25 Microsoft Corporation System and method for obtaining and using namespace related information for opening XML documents
US7523394B2 (en) 2002-06-28 2009-04-21 Microsoft Corporation Word-processing document stored in a single XML file that may be manipulated by applications that understand XML
US6839910B2 (en) 2002-07-05 2005-01-11 David Morrow Protective athletic equipment
US20040015782A1 (en) 2002-07-17 2004-01-22 Day Young Francis Templating method for automated generation of print product catalogs
US8245137B2 (en) 2002-07-25 2012-08-14 Xerox Corporation Electronic filing system with scan-placeholders
US20040021905A1 (en) 2002-08-01 2004-02-05 Holmstead Stanley Bruce System and method for managing printable assets
US20040031029A1 (en) 2002-08-06 2004-02-12 Kyu-Woong Lee Methods and systems for automatically updating software components in a network
JP2004070868A (ja) 2002-08-09 2004-03-04 Seiko Epson Corp 画像データ送信装置、及び、画像データ送受信システム
AU2003259744A1 (en) 2002-08-09 2004-02-25 Corticon Technologies, Inc. Rule engine
US7605930B2 (en) 2002-08-09 2009-10-20 Brother Kogyo Kabushiki Kaisha Image processing device
US7171471B1 (en) 2002-08-15 2007-01-30 Cisco Technology, Inc. Methods and apparatus for directing a resource request
US20060155529A1 (en) 2002-08-16 2006-07-13 Teamware Group Oy System and method for a context-independent framework for management and execution of xml processing tasks
EP1395006B1 (en) 2002-08-29 2007-02-21 Hewlett-Packard Company Method and apparatus for data distribution through a network
US6865354B2 (en) 2002-08-30 2005-03-08 Eastman Kodak Company Method for using a user interface to resolve mismatches between printer resources and print job requirements
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
EP1403778A1 (en) 2002-09-27 2004-03-31 Sony International (Europe) GmbH Adaptive multimedia integration language (AMIL) for adaptive multimedia applications and presentations
US20040061729A1 (en) 2002-09-30 2004-04-01 Brett Green System and method for a dynamically modifiable driver interface
US20040066527A1 (en) 2002-10-02 2004-04-08 Nexpress Solutions Llc Finish verification in printing
US7249067B2 (en) 2002-10-04 2007-07-24 Vpi Color, Llc System and method for creating customized catalogues
US6925599B2 (en) 2002-10-04 2005-08-02 Clinisys, Inc. Methodology for performing validated clinical studies of pharmeceutical related products
US7327482B2 (en) 2002-10-15 2008-02-05 Sharp Laboratories Of America, Inc. Integrated printer monitoring
JP2004139484A (ja) 2002-10-21 2004-05-13 Hitachi Ltd 帳票処理装置、該装置実行のためのプログラム、及び、帳票書式作成プログラム
AU2003284292A1 (en) 2002-10-21 2004-05-13 Bitfone Corporation System with required enhancements to syncml dm environment to support firmware updates
US20040083430A1 (en) 2002-10-29 2004-04-29 Boonen Paul J. J. Method and apparatus to process portable document format data containing transparency
US7319542B2 (en) 2002-10-29 2008-01-15 Hewlett-Packard Development Company, L.P. Document rehabilitation
US20040085551A1 (en) 2002-10-31 2004-05-06 David Serisky Methods and systems for estimating print imaging material usage
KR100636909B1 (ko) 2002-11-14 2006-10-19 엘지전자 주식회사 확장성 표기 언어 기반의 전자문서 버전 매김 및 버전을이용한 갱신 문서 제공 방법
US20040103073A1 (en) 2002-11-21 2004-05-27 Blake M. Brian System for and method of using component-based development and web tools to support a distributed data management system
US7136941B2 (en) 2002-12-04 2006-11-14 Microsoft Corporation Print management architecture for computing devices having a set of filters functions wherein the functions are prevented from conflicting with one another
JP3962679B2 (ja) 2002-12-05 2007-08-22 キヤノン株式会社 印刷制御方法及び装置
US7441116B2 (en) 2002-12-30 2008-10-21 International Business Machines Corporation Secure resource distribution through encrypted pointers
US7319533B2 (en) 2003-01-06 2008-01-15 Sharp Laboratories Of America, Inc. System for face-up printing from a duplex printer
EP1452956A3 (en) 2003-02-12 2010-03-17 Canon Kabushiki Kaisha print control system
US20040172584A1 (en) 2003-02-28 2004-09-02 Microsoft Corporation Method and system for enhancing paste functionality of a computer software application
US7017112B2 (en) 2003-02-28 2006-03-21 Microsoft Corporation Importing and exporting markup language data in a spreadsheet application document
US20040181753A1 (en) 2003-03-10 2004-09-16 Michaelides Phyllis J. Generic software adapter
US7461337B2 (en) 2003-03-12 2008-12-02 International Business Machines Corporation Exception markup documents
JP2004280488A (ja) 2003-03-17 2004-10-07 Hitachi Ltd 文書管理方法及び文書管理装置
US8014013B2 (en) 2004-06-24 2011-09-06 Sharp Laboratories Of America, Inc. Systems and methods for segmenting pages and changing settings for graphical elements in printing
US7493614B2 (en) 2003-03-31 2009-02-17 Microsoft Corporation System architecture and related methods for dynamically adding software components to extend functionality of system processes
US8290958B2 (en) 2003-05-30 2012-10-16 Dictaphone Corporation Method, system, and apparatus for data reuse
US20040221233A1 (en) 2003-04-29 2004-11-04 David Thielen Systems and methods for report design and generation
US7496853B2 (en) 2003-05-08 2009-02-24 International Business Machines Corporation Method of managing items on a clipboard
US20040225960A1 (en) 2003-05-09 2004-11-11 Microsoft Corporation System for hosting graphical layout/presentation objects
US20040230896A1 (en) 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with unique node identifications
CA2472552C (en) 2003-05-17 2012-06-26 Microsoft Corporation System and method for providing multiple renditions of document content
US7213035B2 (en) 2003-05-17 2007-05-01 Microsoft Corporation System and method for providing multiple renditions of document content
US7168035B1 (en) 2003-06-11 2007-01-23 Microsoft Corporation Building a view on markup language data through a set of components
US7409673B2 (en) 2003-06-24 2008-08-05 Academia Sinica XML document editor
US20040267553A1 (en) 2003-06-25 2004-12-30 Brunton Greg M. Evaluating storage options
US6962449B2 (en) 2003-06-30 2005-11-08 Electronics For Imaging, Inc. Methods and apparatus for media selection in cluster printing systems
US20050015767A1 (en) 2003-07-01 2005-01-20 Brian Nash Operating system configuration tool
US7299410B2 (en) 2003-07-01 2007-11-20 Microsoft Corporation System and method for reporting hierarchically arranged data in markup language formats
EP1656620A2 (en) 2003-07-11 2006-05-17 Sonolink Communications Systems, LLC System and method for advanced rule creation and management within an integrated virtual workspace
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
US7426525B2 (en) 2003-08-08 2008-09-16 Hewlett-Packard Development Company, L.P. Method and apparatus for identifying an object using an object description language
US20050066335A1 (en) 2003-09-23 2005-03-24 Robert Aarts System and method for exposing local clipboard functionality towards external applications
US20050063010A1 (en) 2003-09-24 2005-03-24 Hewlett-Packard Development Company, L.P. Multiple flow rendering using dynamic content
US7694293B2 (en) 2003-09-26 2010-04-06 Hewlett-Packard Development Company, L.P. Update package catalog for update package transfer between generator and content server in a network
US20050068558A1 (en) 2003-09-30 2005-03-31 Jianxin Wang Method and system to automatically update in real-time a printer driver configuration
US7525684B2 (en) 2003-10-14 2009-04-28 Hewlett-Packard Development Company, L.P. Color calibration
US7882488B2 (en) 2003-10-20 2011-02-01 Robert Zeidman Software tool for synthesizing a real-time operating system
US20050091343A1 (en) 2003-10-22 2005-04-28 Bookfactory, Llc System, method and computer program product for network resource processing
US7721254B2 (en) 2003-10-24 2010-05-18 Microsoft Corporation Programming interface for a computer platform
US8065616B2 (en) 2003-10-27 2011-11-22 Nokia Corporation Multimedia presentation editor for a small-display communication terminal or computing device
EP1678609A1 (en) 2003-10-27 2006-07-12 American Power Conversion Corporation System and method for updating a software program
US8627489B2 (en) 2003-10-31 2014-01-07 Adobe Systems Incorporated Distributed document version control
US8074184B2 (en) 2003-11-07 2011-12-06 Mocrosoft Corporation Modifying electronic documents with recognized content or other associated data
JP4194476B2 (ja) 2003-11-13 2008-12-10 キヤノン株式会社 文書処理装置及び文書処理方法
US7543286B2 (en) 2003-11-18 2009-06-02 Microsoft Corporation Method and system for mapping tags to classes using namespaces
US7650512B2 (en) 2003-11-18 2010-01-19 Oracle International Corporation Method of and system for searching unstructured data stored in a database
US7434160B2 (en) 2003-12-03 2008-10-07 Hewlett-Packard Development Company, L.P. PDF document to PPML template translation
US7617447B1 (en) 2003-12-09 2009-11-10 Microsoft Corporation Context free document portions
US7464330B2 (en) 2003-12-09 2008-12-09 Microsoft Corporation Context-free document portions with alternate formats
US7434157B2 (en) 2003-12-09 2008-10-07 Microsoft Corporation Programmable object model for namespace or schema library support in a software application
US7290222B2 (en) 2003-12-15 2007-10-30 International Business Machines Corporation Methods, systems and computer program products for providing tree diagram graphical user interfaces having secondary expansion capabilities
US20050138540A1 (en) 2003-12-22 2005-06-23 Xerox Corporation Systems and methods for user-specific document change highlighting
GB2409541A (en) 2003-12-23 2005-06-29 Mandorla Technology Ltd Editable information management system and method
US20050144556A1 (en) 2003-12-31 2005-06-30 Petersen Peter H. XML schema token extension for XML document compression
US7647281B2 (en) 2004-02-19 2010-01-12 Microsoft Corporation Systems and methods for modeling approximate market equilibria
US7242415B1 (en) 2004-02-25 2007-07-10 Adobe Systems Incorporated Processing illustrations using stored information
US7161598B2 (en) 2004-02-26 2007-01-09 Research In Motion Limited Method of rendering text on an output device
US20050204016A1 (en) 2004-03-03 2005-09-15 Bottomline Technologies (De) Inc. Thin client system and method for dynamically retrieving data and data processing systems related to data content within a portable document file
US20050198561A1 (en) 2004-03-03 2005-09-08 Bottomline Technologies (De) Inc. System and method for dynamically linking data within a portable document file with related data content stored in a database
US7992145B2 (en) 2004-03-05 2011-08-02 Microsoft Corporation Multilevel ticket-based job management architecture for computing devices
US20050198069A1 (en) 2004-03-05 2005-09-08 Cherry Darrel D. Meta-data association
US7296038B2 (en) 2004-04-01 2007-11-13 Sap Aktiengesellschaft Context resolution
US20050223373A1 (en) 2004-04-05 2005-10-06 Dell Products L.P. Method for updating the firmware of a device
US7739679B2 (en) 2004-04-06 2010-06-15 Hewlett-Packard Development Company, L.P. Object ordering tool for facilitating generation of firmware update friendly binary image
US7383500B2 (en) 2004-04-30 2008-06-03 Microsoft Corporation Methods and systems for building packages that contain pre-paginated documents
US7512878B2 (en) 2004-04-30 2009-03-31 Microsoft Corporation Modular document format
US7549118B2 (en) 2004-04-30 2009-06-16 Microsoft Corporation Methods and systems for defining documents with selectable and/or sequenceable parts
US7359902B2 (en) 2004-04-30 2008-04-15 Microsoft Corporation Method and apparatus for maintaining relationships between parts in a package
US7487448B2 (en) 2004-04-30 2009-02-03 Microsoft Corporation Document mark up methods and systems
US8661332B2 (en) 2004-04-30 2014-02-25 Microsoft Corporation Method and apparatus for document processing
US7418652B2 (en) 2004-04-30 2008-08-26 Microsoft Corporation Method and apparatus for interleaving parts of a document
US8363232B2 (en) 2004-05-03 2013-01-29 Microsoft Corporation Strategies for simultaneous peripheral operations on-line using hierarchically structured job information
US7580948B2 (en) 2004-05-03 2009-08-25 Microsoft Corporation Spooling strategies using structured job information
US7755786B2 (en) 2004-05-03 2010-07-13 Microsoft Corporation Systems and methods for support of various processing capabilities
US8243317B2 (en) 2004-05-03 2012-08-14 Microsoft Corporation Hierarchical arrangement for spooling job data
US7802182B2 (en) 2004-05-21 2010-09-21 Bea Systems Inc. System and method for performing visual property updates
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
US7290205B2 (en) 2004-06-23 2007-10-30 Sas Institute Inc. System and method for management of document cross-reference links
US7788662B2 (en) 2004-07-28 2010-08-31 Microsoft Corporation Automatic upgrade of pluggable components
EP1779234A4 (en) 2004-08-02 2007-10-31 Justsystems Corp DOCUMENT PROCESSING AND ADMINISTRATIVE APPROACH TO EDITING A DICTIONARY LANGUAGE DOCUMENT
US20060025091A1 (en) 2004-08-02 2006-02-02 Matsushita Electric Industrial Co., Ltd Method for creating and using phrase history for accelerating instant messaging input on mobile devices
US20060031760A1 (en) 2004-08-05 2006-02-09 Microsoft Corporation Adaptive document layout server/client system and process
JP4144883B2 (ja) 2004-08-06 2008-09-03 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US9286275B2 (en) 2004-08-23 2016-03-15 Oracle America, Inc. System and method for automatically generating XML schema for validating XML input documents
US7712027B2 (en) 2004-08-31 2010-05-04 Research In Motion Limited Method for document page delivery to a mobile communication device
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
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
US20060080316A1 (en) 2004-10-08 2006-04-13 Meridio Ltd Multiple indexing of an electronic document to selectively permit access to the content and metadata thereof
US20060117268A1 (en) 2004-11-30 2006-06-01 Micheal Talley System and method for graphical element selection for region of interest compression
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
US8108773B2 (en) 2004-12-17 2012-01-31 Xerox Corporation Method and apparatus for generating instances of documents
US20060136816A1 (en) 2004-12-20 2006-06-22 Microsoft Corporation File formats, methods, and computer program products for representing documents
US7617444B2 (en) 2004-12-20 2009-11-10 Microsoft Corporation File formats, methods, and computer program products for representing workbooks
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
US7617451B2 (en) 2004-12-20 2009-11-10 Microsoft Corporation Structuring data for word processing documents
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
US7770180B2 (en) 2004-12-21 2010-08-03 Microsoft Corporation Exposing embedded 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
US20060146353A1 (en) 2004-12-30 2006-07-06 Microsoft Corporation Strategies for rendering job information using a multi-personality driver device
US7412649B2 (en) 2005-01-24 2008-08-12 International Business Machines Corporation Viewing and editing markup language files with complex semantics
US7412647B2 (en) 2005-03-04 2008-08-12 Microsoft Corporation Method and system for laying out paginated content for viewing
US7154503B2 (en) 2005-03-31 2006-12-26 Microsoft Corporation Methods and systems for brush composition
US20060259854A1 (en) 2005-05-10 2006-11-16 Microsoft Corporation Structuring an electronic document for efficient identification and use of document parts
US20070022128A1 (en) 2005-06-03 2007-01-25 Microsoft Corporation Structuring data for spreadsheet documents
US20060277452A1 (en) 2005-06-03 2006-12-07 Microsoft Corporation Structuring data for presentation documents
US7512265B1 (en) 2005-07-11 2009-03-31 Adobe Systems Incorporated Merge and removal in a planar map of a raster image
GB2430060A (en) 2005-09-08 2007-03-14 Hewlett Packard Development Co Flows for variable data printing
US7725530B2 (en) 2005-12-12 2010-05-25 Google Inc. Proxy server collection of data for module incorporation into a container document
US7676741B2 (en) 2006-01-31 2010-03-09 Microsoft Corporation Structural context for fixed layout markup documents
US7271935B2 (en) 2006-02-10 2007-09-18 Eastman Kodak Company Self-calibrating printer and printer calibration method
US7487464B2 (en) 2006-02-16 2009-02-03 International Business Machines Corporation Enhanced visualization and selection of multi-layered elements in a containment hierarchy

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN7012003040; David Orchard: Versioning XML Vocabularies , 20031203 *
JPN7012003041; Information technology - Open Document Architecture (ODA) and interchange format: Document structure , 199303, page 8 , page 212, INTERNATIONAL TELECOMMUNICATION UNION *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9073207B2 (en) 2012-12-17 2015-07-07 Hyundai Motor Company Method for improving sensitivity of robot

Also Published As

Publication number Publication date
WO2005111848A1 (en) 2005-11-24
US8661332B2 (en) 2014-02-25
US20050251735A1 (en) 2005-11-10
JP2007535748A (ja) 2007-12-06
JP5334916B2 (ja) 2013-11-06
CN1799046A (zh) 2006-07-05
US20050273704A1 (en) 2005-12-08
KR20070010096A (ko) 2007-01-22
EP1658565A1 (en) 2006-05-24
JP4854658B2 (ja) 2012-01-18
EP1658565A4 (en) 2011-12-07
KR101137171B1 (ko) 2012-04-19

Similar Documents

Publication Publication Date Title
JP5334916B2 (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: 20120727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130612

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130730

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees