JP4936715B2 - ワードプロセッシングアプリケーションにおけるデータバインディング - Google Patents

ワードプロセッシングアプリケーションにおけるデータバインディング Download PDF

Info

Publication number
JP4936715B2
JP4936715B2 JP2005352580A JP2005352580A JP4936715B2 JP 4936715 B2 JP4936715 B2 JP 4936715B2 JP 2005352580 A JP2005352580 A JP 2005352580A JP 2005352580 A JP2005352580 A JP 2005352580A JP 4936715 B2 JP4936715 B2 JP 4936715B2
Authority
JP
Japan
Prior art keywords
document
data
word processor
content
store
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.)
Expired - Fee Related
Application number
JP2005352580A
Other languages
English (en)
Other versions
JP2006323813A (ja
JP2006323813A5 (ja
Inventor
エー.デービス トリスタン
サウィッキー マーシン
エム.ジョーンズ ブライアン
エー.リトル ロバート
サンダーランド マーク
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 JP2006323813A publication Critical patent/JP2006323813A/ja
Publication of JP2006323813A5 publication Critical patent/JP2006323813A5/ja
Application granted granted Critical
Publication of JP4936715B2 publication Critical patent/JP4936715B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

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)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は一般に、ワードプロセッシングアプリケーションに関し、より詳細には、XMLデータとその表示とを切り離すことに関する。
近年、マークアップ言語が広く人気を博している。マークアップ言語の一種である拡張マークアップ言語(XML)は、さまざまな種類のデータを識別し、交換し、処理するための方法を提供する汎用言語である。たとえばXMLは、さまざまなアプリケーションプログラムが利用できるドキュメントを作成するために使用される。XMLファイルの要素は通常、関連付けられたネームスペースおよびスキーマを有する。
ネームスペースは、要素/属性の名前およびタイプを定義するためにXMLドキュメント内で使用される、名前のコレクション用の一意の識別子である。ネームスペースの名前は一般に、XMLドキュメントのそれぞれのクラスを、一意に識別するために使用される。この一意のネームスペースによって、別々のソースに由来するが偶然に同じ名前を有する、マークアップ要素が区別される。
XMLスキーマは、XML環境内でデータを記述し、認証するための方法を提供する。スキーマは、XMLドキュメント内のコンテンツを記述するためにどんな要素および属性が使用されるか、それぞれの要素がどこで許可されるか、その中でどんなタイプのコンテンツが許可されるか、およびどの要素が他のどの要素の中に現れることができるかについて記載する。スキーマを使用することによって、ドキュメントは必ず一貫した予測可能な方法で構造化される。スキーマは、ユーザによって作成され、一般にXMLなどの関連付けられたマークアップ言語によってサポートされることができる。XMLエディタを使用することによって、ユーザはXMLファイルを操作し、自分が作成したスキーマに準拠するXMLドキュメントを作成することができる。従来のワードプロセッサアプリケーションでは、カスタムXMLスキーマ用のサポートがアプリケーションに追加され、ユーザは、カスタムXMLマークアップ(たとえば<title>)によってドキュメントのコンテンツに「タグを付ける」ことができるようになり、いわゆる従来のテキストの無差別な実行に対して意味(semantic meaning)を基本的に与えるようになった。つまり、それまではフォーマット設定を有する単なるテキストであり、他のアプリケーションが処理する上では何の意味も持たなかったドキュメントが、他の任意のXML対応型アプリケーションが見つけ出して理解できる任意のユーザ定義のXMLスキーマからのXMLマークアップの特定の断片を含む、構造化されたXMLドキュメントになることができるようになった。
基本的な例では、あるドキュメントの最上部にあるテキストには、ユーザ定義のXMLスキーマからの<title>というXML要素によってタイトルとして「タグを付ける」ことができ、つまり他のXML対応型アプリケーションは、テキストのこの範囲には「タイトル」が含まれていることを容易に理解し、それを適切に抽出できるようになる。これによってバックエンドプロセスは、ドキュメントの一部を適切なセマンティクスおよびコンテキスト(たとえば、このテキストは<title>である)と共に、インテリジェントに抽出することができる。
しかし、従来のワードプロセッサアプリケーションに付随する欠点は、カスタムXMLマークアップの追加および維持が、ドキュメントの表示と結び付いているという事実に端を発する。すなわち既存の実装形態では、ワードプロセッサドキュメントのXMLマークアップ(たとえば、XMLフォーマットで表記された顧客のインボイスの詳細)と、ドキュメント表面上のその表示(たとえば、3パラグラフのプレーンテキストの後に、特定のテーブル形式を有する5列×4行のテーブルが続く表示)の間に、不動のリンクがある。したがって、従来のワードプロセッサアプリケーションにおいて表記されるXMLデータは、(その表示と結び付いているため)ドキュメントのコンテンツと厳密に一致しなければならない。たとえば、インボイス用のXMLスキーマが、<date>の次に<address>が来て、その次に<phoneNumber>が来ると記載している場合、これら3つのXML要素は、ドキュメント内に表示される際、厳密にその順序で現れなければならない。つまり、表示フォーマットが変更されると(たとえば、<date>を含むテーブルの行を移動すると)、そのドキュメント内に含まれるXMLデータの構造も変化することになり、このデータを、関連するXMLスキーマの構造に必ず準拠させるために、ソリューション開発者の側に余分なステップが必要となる。したがって、ドキュメントのエンドユーザには、表示を制約なく操作する自由は与えられない。これは、そうすれば必ずデータのセマンティクスが変更される可能性が生じ、そのデータ用のXMLスキーマに違反するおそれがあるためである。
その上、従来のワードプロセッサアプリケーションに追加して開発されるソリューションは、バックエンドアプリケーション用のドキュメントとの間でデータの読み取り/書き込みを試みる際の表示の持つ意味を、より注意深く考慮する必要がある。したがって、ボールドテキストのパラグラフにタイトルとしてタグを付けると、結果として従来のワードプロセッサアプリケーションによって保存されるXMLは、次のようになるだろう。
Figure 0004936715
上に示されているように、カスタムXMLのタグ付けは、従来のワードプロセッサアプリケーションにきわめて固有のXMLタグ、この例ではw:pやw:rなどによって両側を囲まれている。つまり、このデータを処理しているXML対応型ソリューションは、(<Title>要素を含む)自分自身のデータフォーマットを理解するだけでなく、従来のワードプロセッサアプリケーションのフォーマット設定の厳密な詳細も理解しなければならず、そうすることによって、自分自身のデータを探している際にその情報を飛び越して無視することを知るようになる。したがって、この種の実装形態では、ドキュメント内のテキストの外観をわずかに変更すると(たとえば、<Title>要素のコンテンツをテーブルのセルにドラッグするなどすると)、結果として、周囲のワードプロセッサの元のタグ内において、カスタムXMLタグの位置が大幅に変わる可能性があるため、依然としてユーザにはいくつかの要件が課されている。したがって、プログラマ/コード開発者は、従来のワードプロセッサアプリケーションが表示に基づいてカスタムXML要素をどこに置くかを予測および理解して、さまざまな順列(permutations)のすべてに対処するための追加のコードを書くことが必要となる場合が多い。つまり、結果としてでき上がるソリューションは、依然として従来のワードプロセッサアプリケーションの特定のニーズに対処するための重要な論理コードを含む必要がある可能性がある。
従来のワードプロセッサアプリケーションと共に作業するプログラマ/コード開発者は、読み取りおよび書き込みオペレーションについて考慮する際、ドキュメントのレイアウトフォーマットの持つ意味についても考慮に入れる必要がある。たとえばユーザは、企業レポートを書くユーザ用の簡単な機能強化として、<StockSymbol>要素の値を取り込み、同じドキュメント内の<CompanyName>要素内に企業のフルネームを記入するためにその値を使用することを試みる場合がある。ドキュメントの整合性を維持するために、ユーザは、ドキュメントからの希望のデータの読み取りおよび書き込みの双方において、ドキュメントの現在のレイアウトフォーマットを考慮する必要があり、その後でなければ、これらのアクションを実行するための機能的なコードを書くことができなかった。たとえばユーザは、従来のワードプロセッサアプリケーションのフォーマット設定情報を、ドキュメント内に挿入された際に所望の結果を生み出すように構築するために、自分が記入していた値がテーブルのセルや黒丸付きのリストなどの中にあったかどうかを知っておくことが必要となる場合がある。これが、ワードプロセッサアプリケーションの表示セマンティクスを理解するために追加のコーディングが必要となる別の潜在的な理由である。
従来のワードプロセッサアプリケーションのさらに別の制限は、XML要素の編集行為が「脆弱」とみなされる場合があるという点である。これは一部には、前述のように、ドキュメント表面上のタグの配置が、ユーザ定義のスキーマに基づいてXMLデータの構造を決定するという事実によって、編集行為が制限されるためである。したがって、複数の問題が生じる場合がある。第1に、典型的なユーザオペレーション(たとえば、1つのセクションから別のセクションへのコピー/ペースト)によって、XML構造が変更され、関連するXMLスキーマに従ってドキュメントが無効になる可能性がある。第2に、このようなワードプロセッサの実装形態では、カスタマー定義のXMLスキーマによって必要とされるすべての要素は、何らかの形態でドキュメント表面上に含まれる必要がある。つまり開発者は、ドキュメント表面上に表示されずに、むしろメタデータとして機能するドキュメントに関する追加情報を保持するための方法として、関連するXMLデータを作成する際に苦労する可能性がある。そして第3に、ドキュメント表面上では意味論的に不要な要素(たとえば、混合コンテンツをマークしていないノンリーフ要素)も、このようなワードプロセッサの実装形態に含む必要があり、一般的なユーザオペレーションによってXMLデータが変更される可能性がさらに高まる。
多くの場合、XMLデータ(たとえば、メモドキュメントを構成するデータ)を定義するスキーマは、複数の異種の処理システム間でこのデータの通信を容易にするために、単一の標準化団体によって厳格に定義される傾向がある。しかしそのようにバックエンド通信を容易にする際に、ドキュメントデータに対する人間による可読性および編集可能性が犠牲にされることが多く、そのためにユーザにとっては、このデータを理解および解析することが困難になる。たとえばXML標準は、dd-mm-yyyyThh:mm:ss.ssssなど、日付用の標準的なフォーマットを定義することがある。XML対応型アプリケーションによって解析するには、すべての日付をこのフォーマットで表記する必要がある。明らかにこのフォーマットは、ユーザにとって正確に入力することが困難であり、ユーザが一般的に日付を入力する方法と一致しない場合が多い(たとえば多くの場面では、通常はdd-mm-yyyyではなくmm-dd-yyyyが使用される、といった具合である)。
2004年9月30日に出願された「Methods, System, and Computer-Readable Medium For Managing Specific Types of Content In An Electronic Document」という名称の本譲受人による譲渡された米国特許出願第10/955,612号明細書
したがって必要とされているのは、開発者がワードプロセッサアプリケーションなどのアプリケーションにおいて、XMLデータとそのようなデータの表示とを切り離すことができるようにする方法である。
本発明の実施形態は、データと表示を切り離すことができるワードプロセッサドキュメントを作成するためのワードプロセッサアプリケーションを提供する。より詳細には、データは、ワードプロセッサドキュメントの表示フォーマットとは別の場所に保存されるワードプロセッサドキュメントへ入力され、そこから抽出されることができる。本発明の実施形態によれば、ワードプロセッサアプリケーションのユーザは、ワードプロセッサドキュメントデータ用の別個の記憶場所を作成し、そのデータのコンテンツと表示表面の間にリンク(またはバインディング)を確立することができる。ワードプロセッシングアプリケーションのユーザは、絶え間なく変化している可能性のある表示フォーマットの複雑さに対処する必要はなく、リンクされているデータを直接変更することによって、ワードプロセッサドキュメントの表示の内容を修正することができる。ビュー/表示とデータを切り離すことによって、ユーザは、自由な形式でドキュメントの編集を継続することができ、その一方で、単一の既知の構造的なフォーマットにおける持続的なファイルフォーマットにおいてデータを表すことができる。ワードプロセッサドキュメントのコンテンツを修正するために外部プロセスを使用する場合、ユーザは、表示表面またはフォーマットの現在のレイアウトをまったく意識せずに、ワードプロセッサファイル内に保存されているXMLデータの切り離された断片を編集することができる。またこれらのリンク(またはバインディング)は、表示表面の構造に対する変更によってXMLデータの構造が決定されないように、また逆にXMLデータの構造に対する変更によってワードプロセッサドキュメントの表示表面のレイアウトが決定されるように作成され、これらのリンクは、ドキュメントのコンテンツに悪影響を与えることなく作成または破棄することができる。本発明の実施形態は、ワードプロセッサドキュメント内における構造化されたデータの追加、編集、および抽出を簡略化する上で役に立つ。
本発明の実施形態によれば、ワードプロセッサドキュメントには、テキストの特定の領域用のセマンティクスによってタグを付けることができるが、関連付けられたデータは、そのドキュメント内の別のXMLデータファイルに保存される。このデータは、データバインディングを使用して、そのドキュメント内のテキストの範囲、すなわちタグ付けされた領域にリンクされる。したがってデータは、データバインディングがそのコンテンツをドキュメントの表示表面内のどこに置くか、またはそのデータがどのように表示されるかにかかわらず、自分自身のXMLデータファイル内の一貫した場所(「データストア」)に保存することができる。したがってユーザは、ドキュメント内におけるデータの移動/変更/削除などについて心配する必要はない。これは、そのデータ用のXML構造は、一貫した場所におけるカスタムXML内に配置され、表示表面への変更によって影響を受けることはありえないためである。さらに本発明の実施形態は、ワードプロセッサアプリケーション用のプログラミングインターフェースを提供する。ユーザは、このプログラミングインターフェースを使用して、データストア、またはドキュメントの1つまたは複数のエリア内の変更に対応するためのコードを作成することができる。
本明細書および特許請求の範囲を通じて、次の用語は、ここで明確に関連付けられた意味を有するものとする。ただし文脈によってその他の意味が明示される場合は除く。
「データ」という用語は、ワードプロセッシングドキュメントに伴う、ワードプロセッシングドキュメントを参照する、またはワードプロセッシングドキュメントによって使用される任意の補足的な情報を指す。この情報は、しばしば膨大であり、ドキュメントの表示層上にその全体が露出される可能性は低い。
「マークアップ言語」または「ML」という用語は、アプリケーションによってドキュメントの部分がどのように解釈されるかを指定する、ドキュメント内の特別なコード用の言語を指す。ワードプロセッサファイル内で、マークアップ言語は、テキストがどのようにフォーマットされ、またはレイアウトされるかを指定する。
「要素」という用語は、XMLドキュメントの基本的なユニットを指す。要素は、XMLドキュメント用の属性、他の要素、テキスト、および他のコンテンツ領域を含むことができる。
「表示」という用語は、ドキュメントの見える部分、すなわちそのドキュメントが印刷された場合に表示されるテキストおよびレイアウトを指す。
「タグ」という用語は、ドキュメント内に挿入されて、XMLドキュメント内の要素を描写する文字を指す。それぞれの要素は、2つのタグ、すなわち開始タグおよび終了タグしか有することができない。空の(すなわちコンテンツのない)要素を有することも可能であり、この場合は1つのタグが認められる。
タグとタグの間にあるXMLコンテンツは、要素の「子」(または子孫)とみなされる。したがって、要素のコンテンツ内に組み込まれた他の要素は、「子要素」、または「子ノード」、あるいは要素と呼ばれる。要素のコンテンツ内に直接組み込まれたテキストは、要素の「子テキストノード」とみなされる。子要素と要素内のテキストとが合わさって、その要素の「コンテンツ」を構成する。
「属性」という用語は、特定の値に設定され、要素に関連付けられている追加のプロパティを指す。要素は、自分に関連付けられた任意の数の属性設定を有することができ、そうした属性設定をまったく有さない場合もある。属性は、さらなる要素を含まない要素、またはテキストノードとして扱われる要素に、さらなる情報を関連付けるために使用される。
「コンテンツ領域」という用語は、ユーザによって入力されるタイプのコンテンツ用のコンテナとして機能する、ドキュメント内の境界で区切られた領域、および/または任意選択でラベル付けされた領域を指す(特許文献1参照)。
「XPath」は、パターン式(pattern expression)を使用して、XMLドキュメント内のノードを識別する演算子である。XPathパターンは、XMLドキュメントを通るパスを記述する、子要素名の切り離されたリストである。このパターンは、パスにマッチする要素を「選択」する。
「XMLデータストア」という用語は、ファイルが開いている間にワードプロセッサドキュメント内に(たとえばXMLフォーマットで)保存されているデータを格納および修正するためのアクセスを提供する、ワードプロセッシングドキュメント内のコンテナを指す。
「データバインディング」という用語は、コンテンツ領域のコンテンツを保存できるワードプロセッサドキュメント内のXMLデータの1つまたは複数の断片内においてXPathの位置を確定する、コンテンツ領域上のプロパティを指す。本明細書で使用される際、
「ref」は、個々のバインディングによって使用される、それぞれのバインドされたXMLドキュメント用の一意の整数を指し、
「ID」は、XMLデータストア内の個々の項目用の一意のIDを指し、
「selectionNamespaces」は、XMLデータストア内において関連付けられたXMLドキュメント用の(ネームスペースと略称を結び付ける)プレフィックスマッピングを指し、
「rootURI」は、XMLデータストア内において関連付けられたXMLドキュメントのルートネームスペースを指す。
(例示的な動作環境)
本発明の実施形態は、XMLデータの保存と表示を切り離すことができるワードプロセッサドキュメントを作成するためのワードプロセッサアプリケーションを提供する。より詳細には、ワードプロセッサドキュメントとの間で入力および抽出できるデータは、ワードプロセッサドキュメントの表示フォーマットとは別の場所に保存される。したがって、ワードプロセッサアプリケーションのユーザは、ワードプロセッサドキュメント内に含まれるXMLデータ用の別個の記憶場所を作成し、そのデータのコンテンツと表示表面の間にリンク(またはバインディング)を確立することができ、これによってユーザは、表示の内容を編集することによって、関連付けられているXMLデータを編集することができ、その一方で同じトークンによって、関連付けられているXMLデータの構造をユーザが変更することが防止される。たとえば、インボイス用のデータは、ワードプロセッサファイルフォーマット内にXMLとして別個に保存することができ、これによって、ドキュメント内でリンクの位置を移動しても、切り離されているデータストアの構造は変更されない。したがって、この構造化されたデータは、ユーザのドキュメント編集方法によって影響を受けることのない既知の構造を有するようになるため、この構造化されたデータのバックエンド処理はより容易になる。ユーザは、ワードプロセッサドキュメント内でデータを編集し、リッチ表示フォーマットの設定などを含めてデータのフォーマットを設定することができ、テキストコンテンツに対する変更のみが、ドキュメントの背後に保存されているXMLデータへ「押し」戻される。しかし、本発明によれば、ユーザとワードプロセッサドキュメントとの対話を介して更新されるすべてのデータは、XMLの当初の元のストリーム内において利用可能である。本発明はまた、リンクされているXMLデータを直接変更することによって、ワードプロセッサドキュメントのコンテンツを修正できるようにし、絶え間なく変化している可能性のあるそのデータの表示フォーマットの複雑さには対処する必要はない。その際、ワードプロセッサドキュメント内での構造化されたデータの追加、編集、および抽出が大幅に簡略化される。
図1を参照すると、本発明を実施するための1つの典型的なシステムは、コンピューティングデバイス100などのコンピューティングデバイスを含む。非常に基本的な構成では、コンピューティングデバイス100は通常、少なくとも1つの処理装置102およびシステムメモリ104を含む。コンピューティングデバイスの厳密な構成およびタイプに応じて、システムメモリ104は、(RAMなどの)揮発性、(ROMやフラッシュメモリなどの)不揮発性、またはその双方の組合せとすることができる。システムメモリ104は通常、オペレーティングシステム105、1つまたは複数のアプリケーション106を含み、プログラムデータ107を含む場合もある。一実施形態では、アプリケーション106は、ワードプロセッサアプリケーション120を含むことができる。この基本的な構成が、破線108内のこれらのコンポーネントによって、図1に示されている。
コンピューティングデバイス100は、追加の機能または機能性を有することができる。たとえばコンピューティングデバイス100は、磁気ディスク、光ディスク、テープなどの(取り外し可能および/または取り外し不可能な)追加のデータストレージデバイスを含むこともできる。このような追加のストレージは、取り外し可能なストレージ109、および取り外し不可能なストレージ110として図1に示されている。コンピュータストレージメディアは、コンピュータ読取り可能命令、データ構造、プログラムモジュール、他のデータなどの情報を記憶するための任意の方法または技術において実装される揮発性メディアおよび不揮発性メディア、ならびに取り外し可能なメディアおよび取り外し不可能なメディアを含むことができる。システムメモリ104、取り外し可能なストレージ109、および取り外し不可能なストレージ110は、すべてコンピュータストレージメディアの例である。コンピュータストレージメディアは、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは希望の情報を記憶するために使用可能で、コンピューティングデバイス100によってアクセス可能な他の任意のメディアを含むが、これらには限定されない。このような任意のコンピュータストレージメディアは、デバイス100の一部とすることができる。コンピューティングデバイス100は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの(1つまたは複数の)入力デバイス112を有することもできる。またディスプレイ、スピーカ、プリンタなどの(1つまたは複数の)出力デバイス114を含むこともできる。これらのデバイスは、当技術分野でよく知られており、本明細書において詳細に論じる必要はない。
また、コンピューティングデバイス100は通信接続116も含み、これによってネットワークを介するなどして、他のコンピューティングデバイス118と通信することができる。通信接続116は、通信メディアの一例である。通信メディアは通常、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または搬送波や他の伝送機構などの被変調データ信号内の他のデータによって具体化することができ、任意の情報伝達メディアを含む。「被変調データ信号」という用語は、情報をその信号内で符号化するような方法で設定または変更された、その特性の1つまたは複数を有する信号を意味する。たとえば通信メディアは、有線ネットワークや直接有線接続などの有線メディアと、音波メディア、無線周波数(RF)メディア、赤外線メディア、他の無線メディアなどの無線メディアとを含むが、これらには限定されない。本明細書で使用するコンピュータ読取り可能記憶媒体という用語は、ストレージメディアと通信メディアの両方を含む。
ワシントン州レドモンドのMICROSOFT CorporationによるWINDOWS(登録商標) XPオペレーティングシステムなど、ネットワーク化されたパーソナルコンピュータの動作を制御するのに適したオペレーティングシステム105を含む、複数のプログラムモジュールおよびデータファイルを、コンピューティングデバイス100のシステムメモリ104内に格納することができる。またシステムメモリ104は、後述するワードプロセッサアプリケーション120、およびその他ものなどの1つまたは複数のプログラムモジュールを格納することもできる。ワードプロセッサアプリケーション120は、電子ドキュメントを作成し、編集し、および処理するための機能を提供するように動作する。
本発明の一実施形態によれば、ワードプロセッサアプリケーション120は、MICROSOFT CorporationのWORDプログラムを含む。しかし本発明のさまざまな態様を具体化するために、他の製造業者によるワードプロセッサアプリケーションプログラムも利用できることが理解できるはずである。さらに本発明のさまざまな態様は、ワードプロセッサアプリケーションプログラムに限定されるものではなく、スプレッドシートアプリケーションプログラム、データベースアプリケーションプログラム、プレゼンテーションアプリケーションプログラム、描画またはコンピュータ支援アプリケーションプログラムなど、さまざまな形態のコンテンツ(たとえばテキスト、イメージ、画像など)を処理できる他のアプリケーションプログラム106も利用できることが理解できるはずである。
本発明の実施形態は、コンピュータプロセスやコンピューティングシステムとして、またはコンピュータプログラム製品やコンピュータ読取り可能記憶媒体などの製品として実装することができる。コンピュータプログラム製品は、コンピュータシステムによって読み取り可能な、コンピュータプロセスを実行するための命令のコンピュータプログラムをコード化している、コンピュータストレージメディアとすることができる。コンピュータプログラム製品は、コンピューティングシステムによって読取り可能な、コンピュータプロセスを実行するための命令のコンピュータプログラムをコード化している、搬送波上で伝搬される信号とすることもできる。
(ワードプロセッサアプリケーションにおけるデータのバインディング)
図2は、本発明の実施形態を実施するための典型的な環境を示すブロック図である。図2に示されている典型的な環境は、ワードプロセッサアプリケーション202と、ワードプロセッサドキュメント204と、プログラミング環境206と、データストア208と、スキーマファイル210と、XML処理モジュール212とを含むワードプロセッサ環境200である。しかし前述のように、本発明は、スプレッドシートアプリケーションプログラム、データベースアプリケーションプログラム、プレゼンテーションアプリケーションプログラム、描画またはコンピュータ支援アプリケーションプログラム、およびその他のプログラムなどの、さまざまな形態のコンテンツ(たとえばテキスト、イメージ、画像など)を処理できるその他のアプリケーションプログラム106に適用することもできる。プログラミング環境206は、XML処理モジュール212用の簡単なアプリケーションプログラミングインターフェース(API)を提供することができ、これによって、ドキュメント204またはXMLデータストア208のコンテンツのいずれかを修正するコードを作成することができる。本発明は、本明細書に記載されているいかなる特定の実施形態または実施例によっても限定されることを意図するものではないことが理解できるであろう。たとえばワードプロセッサ環境は、複数のワードプロセッサドキュメント204、データストア208、および/またはスキーマファイル210を含むことができる。本発明の一実施形態によれば、XML処理モジュール212は、拡張マークアップ言語に従ってフォーマット設定されたデータを処理するために、ワードプロセッサアプリケーション202によって使用される。適切なXML処理モジュール212は、ワシントン州レドモンドのMICROSOFT Corporationによって製造および市販されているMSXMLである。
ワードプロセッサアプリケーション202は、1つまたは複数の自分自身のネームスペースと、ワードプロセッサアプリケーション202に関連付けられた(1つまたは複数の)ドキュメント204と共に使用するために定義される、スキーマ210またはスキーマのセットとを含む。スキーマ210によってワードプロセッサアプリケーション202用に定義されたタグおよび属性のセットは、ドキュメント204のフォーマットを定義する。後述するように、本発明の実施形態によれば、データストア208はデータ209を含むことができる。スキーマ210は、データストア208内でデータ209に添付されることが好ましい。ワードプロセッサドキュメント204はまた、後述するように、ユーザによって作成されたコンテンツ領域207を含む。複数のデータストア208、関連付けられたXMLデータ209、およびスキーマ210は、ワードプロセッサアプリケーション202の一部として含むことができる。所与のXMLデータ209内に含むことができるデータのタイプおよび構造を規定する、データのタイプに関する文法的なルールのセットをXMLデータ209に提供するために、ユーザが所与のXMLデータ209に注釈を付ける際に使用できる、XMLの要素およびタグのそれぞれを規定するルールを提供するための、1つまたは複数のXMLスキーマ210を、XMLデータ209に関連付けることができる。スキーマ210は、それらの要素をXMLデータ209に適用できる順序を規定するルールと、XMLデータ209に適用される個々の要素に関連付けられた特定のルールとを含む。
本発明の実施形態は、ワードプロセッシングドキュメントと共に保存される別個のデータストア208の存在を介してデータと表示を切り離すことができる、ワードプロセッサドキュメント204を作成するように動作できるワードプロセッサアプリケーション202を提供する。より詳細には、ワードプロセッサドキュメント204との間で入力および抽出できるデータは、そのドキュメントのデータストア208内の1つまたは複数のXMLデータ209のファイルに保存され、これによってそのデータは、ワードプロセッサドキュメント204の表示フォーマットから切り離される。したがってワードプロセッサアプリケーション202のユーザは、ワードプロセッサドキュメント204のデータ用の別個の記憶場所を作成し、そのデータのコンテンツと表示表面203の間に1つまたは複数のコンテンツ領域207に関連付けられたリンク(またはバインディング)205を確立することができる。これによってユーザは、表示の内容を編集することによってそのデータを編集することができ、その一方で同じトークンによって、データ209の構造をユーザが変更することが防止される。ドキュメント204内でコンテンツ領域207の位置を移動しても、切り離されているデータストア208内のXMLデータ209の構造は変更されない。さらにデータの表示、ボールド、イタリック、行端ぞろえなどに対して行われる変更は、データの構造に影響を与えない。したがってXMLデータ209は、ユーザがドキュメント204を編集する方法によって影響を受けることのない既知の構造と一致するため、この構造化されたデータのバックエンド処理は簡略化される。
本発明の実施形態では、絶え間なく変化している可能性のある表示フォーマットの複雑さに対処する必要はなく、リンクされているデータを直接変更することによって、ワードプロセッサドキュメント204のコンテンツを修正することができる。これを行う際に、ワードプロセッサドキュメント204内での構造化されたデータの追加、編集、および抽出が、大幅に簡略化される。さらに、構造化されたXMLデータ209にバインドされたデータバインディング205は、データの構造に影響を与えることなくドキュメント204内で移動することができる。コンテンツ領域207上のデータバインディング205は、ユーザインターフェースまたはプログラミングウィンドウ206を介して定義できるXPath式を使用して有効にすることが好ましい。
ユーザは、XPath式(XMLツリー内のノード213を識別するための標準的なXMLメソッド)を使用して、ドキュメントコンテンツ領域のバインド先となるべき所望のXMLノード213を一意に識別する。ワードプロセッシングアプリケーション202は、データバインディング領域用の所望のターゲットを見つけ出すためにXPathを自動的に解析して使用するように動作する。つまり、XPathの規格に精通している開発者は、事実上半動的(semi-dynamic)なデータバインディング205を作成するためのXMLのこの使用法を、利用できるということでもある。すなわち、データ209に対する他の変更、または表示203に対する変更に基づいて、異なるターゲットノード213を識別することである。たとえばユーザが、与えられた期間内に最大の売り上げを達成した従業員の名前を表示したいと仮定する。この情報が、ドキュメント204に関連付けられたXMLデータ209内にある場合、ユーザは、達成された明細の最高の数字を有する個人の名前にリンクするXPath式を作成することができ、データが変更されると、そのリンクは適切な場所(ノード213)へ自動的に移動する。このリンクはまた、コード211、ユーザインターフェース、またはプログラミング環境206を使用することによって、複数のノード213の間で変更することもできる。
あるいは、ユーザは、ドキュメントコンテンツ領域207のバインド先とすることができるデータ209内のノード213を表すオブジェクトを一意に識別するデータバインディングを作成することもできる。ワードプロセッシングアプリケーション202は、データバインディング領域用の所望のターゲットを見つけ出すために、XPathを自動的に確定するように動作する。しかしこれは、この場合、同じXPath式とは対照的に、データバインディング205は、自分が必ず同一のオブジェクトを指し示すようにそのXPathを自動的に更新させることを意味する。
プログラミングコード211は、簡単に前述したように、XML処理モジュール212を利用して、いずれの方向へも(すなわち、ドキュメント表面203上のコンテンツ領域207から、データストア208内のXMLデータ209内におけるノード213へ、およびその逆へ)移動する変更に、対応するように作成することができる。ユーザは、ドキュメント表面203とデータストア208内の特定のコンテンツとの関係を定義する、コード211を作成することができる。さらに編集、追加、削除など、ドキュメント204のバインドされた領域内またはデータストア208内での変更、トラッピングまたはインターセプティングイベントに対応するコード211を作成することができる。たとえばユーザが、必ず1つのドキュメントのみが特定のタイトルを使用できるようにしたいと仮定する。コード211は、タイトルノードに何が入力されるかに基づいて、そのタイトルが既に使用されているかどうかについて中央データベースをチェックすることができる。そのタイトルが使用されている場合、コード211は、別のタイトルを入力するようユーザに促すか、および/またはそのタイトルが利用できないことをユーザに警告することができる。本発明の実施形態によって、ユーザは、関連付けられたXMLによってコード211を1回だけ書けばよく、このコードは、ターゲットアプリケーションの厳密なセマンティクスについて心配することなく、XML構造の使用をサポートするすべてのドキュメントタイプに移植することができ、これによってアプリケーション開発が大幅に簡略化および合理化される。
本発明の実施形態によれば、ワードプロセッサドキュメント204には、テキストの特定の領域(たとえばTitleやBodyなど)用のセマンティクスを表すコンテンツ領域207によってタグを付けることができ、データバインディング205を追加することによって、そのコンテンツ領域207内の関連付けられたテキストは、ドキュメント204内のデータストア208内におけるあるXMLデータ209の内部のノード213内に保存される。データ209は、1つまたは複数のデータバインディング205を使用して、ドキュメント内のコンテンツ領域207、すなわちタグ付けされた領域にリンクされる。データ209は、表示203内の関連付けられたコンテンツ、すなわちドキュメント204の特定のドキュメントを編集する際にユーザが対話するデジタル表示(たとえば、特定のユーザドキュメントを示すWORDウィンドウ)の位置を、データバインディング205がどこに示すか、またはそのデータ209がどのように表示されるかを問わず、自分自身のXMLストリーム内の一貫した場所(「データストア」)に保存することができる。したがってユーザは、XMLデータ209が一貫した場所のデータストア208内に配置されるため、ドキュメント204内で移動するデータについて心配する必要はない。さらにデータストア208は、ドキュメント204内のデータバインディング205によって参照されないデータ209を含むことができる。メタデータなどの「特別な」データは、ドキュメントユーザには関係のない可能性のある追加の情報を、ソリューション開発者などのユーザに提供する。
本発明の実施形態によれば、データの構造は、切り離された場所、すなわちドキュメントのデータストア208内のXMLデータ209の1つまたは複数の断片内で保持され、これによってユーザは、データ構造に影響を与えることなく、表示203内でリンク(すなわちデータバインディング205)を移動することができる。したがってXMLデータ209の構造は変更されず、ワードプロセッサドキュメント204に関連付けられたXMLデータ209の表示のみが変更される。したがってドキュメント204内のデータ表示のフォーマットを変更しても、データストア208の構造は影響を受けない。ユーザがドキュメント表面203を操作しても、実際のデータ209は移動しておらず、したがってユーザは、ストア208内に別個に保持されているデータ209に対する悪影響について心配する必要はなく、表示を完全に制御することができる。このように本発明の実施形態によって、ユーザは、表示情報から切り離されたカスタムXML情報にアクセスすることができる。
1つまたは複数のデータバインディング205を使用して、本明細書ではXMLデータ209と呼ばれるデータソースのコンテンツ(データストア208内のXMLデータ209)をドキュメント204内の場所へ「バインド」することができる。本明細書で使用されるXMLデータ209は、(プレーンまたはリッチフォーマットの)テキスト、イメージ、特定のタイプのコンテンツ(日付)など、任意のタイプのコンテンツを含む。データバインディング205の構造は、XPathリンクとして記述することができ、これによってワードプロセッサアプリケーション202は、ドキュメント204に関連付けられたXMLデータストア208内のXMLノード213に対して接続する/同期化する/リンクを維持することができる。XMLデータストア208は、ドキュメント204の一部であること(すなわちストア208は、ワードプロセッサファイルと共に保存され、特定のドキュメント204と共に移動するか、または特定のドキュメント204に関連付けられること)が最も好ましい。データバインディング205はまた、データ209が、表示(たとえば、ワードプロセッサのドキュメント表面203)とデータストア208との間でどのように変換されるべきかを制御するための情報を含むこともできる。ワードプロセッサアプリケーション202のユーザは、データストア208内に保存されるデータ209(バックエンドアプリケーションによって操作されるデータ)を標準的なフォーマットで保存し、その一方で同じ情報をワードプロセッサドキュメント204内により分かりやすいフォーマットで表示することができる(たとえばユーザには2004年1月29日と見えるが、データは29−01−004T12:00:00.0000としてdateTimeフォーマットで保存されている)。別の例として、データバインディング情報はイメージを含むことができ、データ209にとって、このイメージは外見的には意味のない文字列として表されるが、上述の同じ変換原理によれば、ユーザにはワードプロセッサドキュメント204のコンテンツ領域207にイメージが見えることになる。ユーザは、このイメージに追加/変更を行うことができ、XMLデータ209にとってはXMLでコード化された表示が維持され、これによっていかなるバックエンドプロセスも、その情報を保存/操作することができる。
一実施形態によれば、ユーザは、データバインディング情報205をコンテンツ領域207へ追加する際、XPath式を指定することによって、興味のある(たとえば、1つまたは複数のノード213を識別する)リンクされたXMLデータ209を提供する。いったんバインドされると、このコンテンツ領域207のコンテンツは、そのXPathによって返されたノード213のコンテンツ(XMLデータ)にリンクまたはバインドされる。したがって、つまりXPathによって返されたXMLノード213を変更するような方法でそのXMLノード213が追加/削除/変更される場合、ドキュメント204内のコンテンツ領域207のコンテンツは自動的に更新される。あるいは変更が生じた結果、特定のデータバインディング205によって返されるノード213がない場合、そのデータバインディング205は、後述する「未帰着参照(dangling reference)」の状態へと移行する。
たとえば、ドキュメント204は次のパラグラフを含み、その中の「Microsoft Corporation」は、そのドキュメント用のデータストア208内におけるいくつかのリンクされたXMLデータ209内のXPath/contract(1)/header(1)/company(1)にバインドされた(下線で表示されている)プレーンテキストコンテンツ領域207に相当すると仮定する。表示203上に表示されるパラグラフは、次のようになる。
"Microsoft Corporation is located at One Microsoft Way."
一実施形態によれば、プログラミング環境206において、(たとえば)次のようなコードを1行だけ指定することによって、リンクをセットアップすることができる。
Figure 0004936715
対応するリンクされたXMLデータ209は、次のような体裁とすることができる(リンク先のノード213は、シングルクォーテーションマークで示されている)。
Figure 0004936715
次いで、ユーザは、データストア208のAPIを使用して、新たな<company>ノード213を<header>の第1の子として追加すると仮定する(新たなノード213は、シングルクォーテーションマークで示されている)。
Figure 0004936715
コンテンツ領域207上に結果として作成されるバインディング205は、依然として同じXPath(「/contract(1)/header(1)/company(1)」)にバインドされており、したがってドキュメントのコンテンツはすぐに更新されて、次のようにそのノード213の新たなコンテンツが表示される。

"Fabrikam Corporation is located at One Microsoft Way."
本発明によれば、ワードプロセッサドキュメント204の1つまたは複数の領域が、データがバインドされたコンテンツ領域207を含む場合、ドキュメント204は、リンクされたコンテンツのいずれのソースに対する変更にも対応する。したがって、ドキュメント204のある範囲にデータがバインドされている場合、関連付けられているXMLデータ209内のXMLノード213のコンテンツを変更すると、コンテンツ領域207のテキストが自動的に変更される結果となる。これと同様に、ドキュメント204のある範囲にデータがバインドされている場合、ドキュメント204内のそのバインドされたコンテンツ領域207のテキストを変更すると、対応するXMLデータ209内のXMLノード213のコンテンツが自動的に変更される結果となる。すなわち、同一のバインディング205を有する複数のコンテンツ領域207が、ドキュメント204内の複数の場所に存在することができる。たとえば、ある名前に対するデータバインディング205を有するコンテンツ領域207を、ドキュメント204のヘッダならびに本文に追加することができる。これらの位置のいずれを変更しても、そのテキストはXMLデータストア208と同期化され、ドキュメント204内においてノード213に対するデータバインディング205を有するコンテンツ領域207が存在するすべての場所で、その変更が反映されることになる。
XMLデータ209内のXMLノード213は、ドキュメント204に対して一対多の関係を有することができ、つまりXMLデータ209内の同じXMLノード213を複数のデータバインディング205によって参照することができる。ドキュメント204内の、データがバインドされたコンテンツ領域207が更新されると常に、XMLデータ209内の該当するXMLノード213に対する変更が行われ、ドキュメント204内の他のコンテンツ領域207内における他のすべての関連付けられたバインディング205が、その新たなテキストによって更新される。たとえば、ドキュメント204のヘッダ内のコンテンツ領域207が、いくつかのXMLデータ209内の<title/>ノード用のXPath式を指定するデータバインディング205を含み、ドキュメント204の本文内の別のコンテンツ領域207も、その同じ要素に対するデータバインディング205を含むと仮定する。本発明によれば、双方は、たとえ異なるフォーマット設定を有する可能性があるとしても、同じコンテンツを表示することになる。ユーザが、ドキュメント204の本文内のコンテンツ領域207内のコンテンツを編集すると、その更新は、データストア208内の該当するXMLデータ209内の該当するXMLノード213に対して保持され、そのXMLノード213を指定するドキュメント204内の関連付けられたバインディング205を有する他のすべてのコンテンツ領域207(たとえばヘッダ内、フッタ内など)が更新される。本発明の実施形態は、ドキュメント内の複数の場所をデータストア208内の単一のXMLノード213にバインドし、次いでそれらの場所の3つすべてのコンテンツをデータの単一のソースにリンクするためのメカニズムを提供する。したがって、XMLデータ209内の同じノード211にリンクされている、ドキュメント204内のすべてのコンテンツ領域207のコンテンツは同じである。
この具体的な一例が、典型的なレポートドキュメントであり、ユーザは通常、複数の場所にタイトルを表示させることができる。たとえば、(大きなボールドのテキストで)表紙上に、(小さなテキストで)ヘッダ内に、また(小さなイタリックのテキストで)フッタ内になどである。通常ユーザは、それぞれの場所にタイトルを打ち込み、これら3つの場所のいずれか1つでタイトルが変更された場合、(コンテンツの整合性を保つために)必ず他の2つの場所でも忘れずにタイトルを変更しなければならない。しかし、これらの場所の3つすべての整合性を保つことは、あまりにも容易に忘れられてしまう。本発明の一実施形態によれば、ユーザがドキュメント204内に表示したいXMLデータ209を含むデータストア208が配置されると、ドキュメント内の複数の場所(たとえば上記の3つの場所)はすべて、データストア208内の単一のXMLノード213にデータをバインドされたコンテンツ領域207となることができる。
したがって、3つすべての場所のコンテンツは、データ209の単一のソースにリンクされ、またはバインドされている。つまり、ユーザがこれらの領域のいずれか1つ(たとえば表紙)のコンテンツを変更することによって、ユーザのテキストは、基礎をなすXMLデータ209へ自動的に押し出され、次いで対応するデータバインディング205を伴うコンテンツ領域207を有するドキュメント204内の他の場所(この場合、ヘッダおよびフッタ)へ押し出される。つまりユーザは、ドキュメントとの対話の範囲で、コンテンツのこれら3つの範囲をリンクし、またはバインドしたことになり、これらはすべて同じになる。本発明の実施形態によれば、ドキュメントの領域は複数の方法(大きなボールドや、小さなイタリックなど)で表示することができるが、データストア208内のデータ構造は変更されない。
(未帰着参照(Dangling References))
本発明の一実施形態によれば、ユーザは、ターゲットを有さないXPath式、すなわち自分の指定したターゲットXMLノード213がデータストア208内のXMLデータ209内に存在しないXPath式を指定することもできる。データバインディング205は、その所望のターゲットノード213を「忘れる」ことはなく、むしろ「待機」状態へと移行し、いかなる特定のXMLデータ209にも接続されずに、背後にあるXMLデータストア208内のXMLデータ209内に所望のノード213が現れるかどうかを注視しつつ待機する。これは、ドキュメントアセンブリシナリオにとって特に有用であり、このシナリオでは、ドキュメント204のそれぞれの部分(たとえば標準的な表紙、最終ページ、および再利用される節)が、これらの部分を単一の最終ドキュメント204へと組み立てる場合にのみ移植されるべきデータバインディング205を含むことができる。この場合、ドキュメントの作成者は、ドキュメントのそれぞれの「部分」におけるコンテンツ領域207内に、その部分に存在しなかったXMLデータ209内のXMLノード213へのデータバインディング205を指定する(たとえば表紙は、<Title/>XML要素および<Date/>XML要素に対するバインディング205を有するコンテンツ領域を含むことができる)。その部分がそのターゲットドキュメントの外側に表示されている場合、XMLデータ209が存在しないため、それらのバインディングは接続されていないが、その部分が、実際に所望のデータ209を含むドキュメントに追加されると、すぐにデータバインディング205はデータ209へ接続(同期化)して、正しいコンテンツを表示し、これによってドキュメントの作成者は、バインディング205を指定して、データ209がまだ作成されていない場合でも、それらを保存することができる。
あるタイプの未帰着参照215は、コンテンツ領域207上のデータバインディング205が、リンクされたXMLストリーム内のノード213に首尾よくリンクできない場合に(すなわちコンテンツ領域内でのバインディングの状態で)発生する。ノード213が、リンクされたXMLストリームから置換/削除されると、結果として、1つまたは複数のデータバインディング205は未帰着参照215になる場合がある。データバインディング205が、そのXPathによって未帰着参照215を有する場合、ワードプロセッサアプリケーション202は、引き続きノード213用の最新の既知のXPathをデータバインディング205上に保存することが好ましい。これは、もはやXPathがいかなるノード209にも帰着できない場合に発生する可能性がある。データストア208が、いくつかのXMLデータ209を更新した旨のメッセージをワードプロセッサドキュメント204に伝えるたびに、ワードプロセッサアプリケーション202は、いずれかの未帰着参照215が最新の更新によって帰着するかどうか(すなわちXPathが、XMLツリー内の有効なノード213を指し示しているかどうか)をチェックする。ワードプロセッサアプリケーション202によって未帰着参照が帰着する場合、データストア208のコンテンツは、その時点でデータバインディング205内にあるコンテンツに優先すること、すなわちデータバインディング205のコンテンツは、データストア208内におけるノード213内のコンテンツによって置換されることが好ましい。未帰着参照は、1つまたは複数のプログラミング環境206を介してアクセスできる簡単なAPI層を使用して公開されることが好ましい。
一例として、ワードプロセッサドキュメント204は次のパラグラフを含み、その中のMicrosoft Corporationは、いくつかのXMLデータ209内のXPath/contract/header/company(3)にデータがバインドされたプレーンテキストコンテンツ領域207に相当すると仮定する。
"Microsoft Corporation is located at One Microsoft Way."
対応するXMLデータ209は、次のような体裁とすることができる(リンク先のノード213は、シングルクォーテーションマークで示されている)。
Figure 0004936715
開発者などのユーザが、データストア208のAPIを使用して、<header>の下の第1の<company>ノード213を削除する場合は、次のようになる(ノード213は、シングルクォーテーションマークで示されている)。
Figure 0004936715
ドキュメント204内のコンテンツ領域207上に結果として作成されるデータバインディング205は、同じXPathへのリンクを保持し、したがってデータバインディング205は、もはや存在しない\contract\header\company(3)に対する未帰着参照215となる。
Figure 0004936715
つまり、内部では途切れたリンクを有することになるが、本発明によれば、コンテンツ領域207のコンテンツは変更されず、またエラーも発生しない。すなわち、次のように表示される。
"Microsoft Corporation is located at One Microsoft Way."
いくつかのXMLデータ209が置換または削除されると(またはリンクが、あるドキュメントから別のドキュメントへ移動すると)、そのXMLデータ209を参照するすべてのデータバインディング205はすぐに、削除されたXMLデータ209を指し示す未帰着参照215になる。データバインディング205が未帰着参照215を含む場合、ワードプロセッサアプリケーション202は、引き続きデータバインディング205に関連付けられた最新の既知のXPath/ネームスペースのリンクを保存する。本発明の一実施形態によれば、データバインディング205のセットが未帰着参照215になると、ワードプロセッサアプリケーション202は、関連付けられたXMLデータストア208内の他の任意の利用可能なXMLデータ209にこれらのリンクを再び連結しようと試みる。これらのデータバインディング205のいずれかが、実際に別のXMLデータ209内のノード213に帰着した場合、未帰着参照215のすべては、このXMLデータ209に関連付けられ、その時点ではデータバインディング205が接続されている関連付けられたコンテンツ領域207を更新する。このXMLデータ209が、結果的に未帰着参照215のいずれにとっても有効なデータバインディング205に結び付かない場合、ワードプロセッサアプリケーション202は、データストア208などにおけるそれぞれのXMLデータ209に対して同様のチェックを実行する。XMLデータ209のいずれも未帰着参照215用として使用できない場合、これらのバインディングは、引き続き元のXMLデータ209に対する未帰着参照215として残る。
図3に示されている流れ図を参照しつつ、引き続き図2を参照して、本発明の一実施形態について説明する。図3に示されているプロセス300は、ユーザがワードプロセッシングアプリケーション202を使用してワードプロセッサドキュメント204を開いたときに、302において開始する。304では、ワードプロセッシングアプリケーションはデータストア208を作成し、次いでこれには、310において、ワードプロセッサドキュメント204内に保存された、あるいはユーザインターフェースまたはプログラミングウィンドウ206を使用することによって要求された、任意のXMLデータ209が移植される。データストア208は、ドキュメント204の一部として含まれ、ドキュメント編集表面203上には表示されないことが好ましい。データストア208は、コンテンツ領域207およびデータバインディング205を作成する前にロードできることが理解できるであろう。同様にコンテンツ領域207は、データストア208の前に作成することができる。すなわち、図3に示されているさまざまなオペレーションは、何らかの特定の順序で実行する必要はなく、ユーザ独自の好みに従って実施することができる。
306において、ユーザは、ドキュメント204の表面203上に存在する1つまたは複数のコンテンツ領域207を作成する。これらのコンテンツ領域は、ドキュメント204の既存のコンテンツから読み込むこともできるという点に留意されたい。308では、ユーザは、特定のリンクされたXMLデータ209と、ターゲットノード213を指定するXPath式とを提供することによって、データバインディング情報をコンテンツ領域207に関連付けることができる。1つまたは複数のデータバインディングは、データストア208内のXMLデータ209の1つまたは複数のノード213を1つまたは複数のコンテンツ領域207へリンクする。データバインディング205は、バインドされるか、または未帰着となる。前述のように、各ノード213は、複数のコンテンツ領域207にバインドすることができ、各コンテンツ領域は、同じXMLノード213へのデータバインディング205を指定する。さらにデータバインディング205は、複数のデータストア208へリンクすることができる。309では、ユーザは、コンテンツ領域207またはデータストア208内にXMLデータを作成することができる。310では、ワードプロセッサアプリケーション202は、すべてのXMLデータをデータストア208にロードする。312では、ワードプロセッサアプリケーション202は、ドキュメント204から、または306においてユーザによって要求されたようにコンテンツ領域207をロードし、314では、ワードプロセッサアプリケーション202は、ドキュメント204から、または308においてユーザによって要求されたようにデータバインディング205をロードする。316では、ワードプロセッサアプリケーション202は、特定のデータバインディング205によって指定されたノード213に関連付けられたXMLデータ209が存在するかどうかをチェックする。
XMLデータ209が存在しない場合、318において、ワードプロセッサアプリケーション202は、他のXMLデータ209が同じXMLネームスペース内に存在するかどうかを判定する。316において、XMLデータ209がデータストア内で見つかった場合、320において、ワードプロセッサアプリケーション202は、指定されたXPath用の関連付けられたXMLノード213が存在するかどうかを判定する。XPathが存在する場合、322において、ワードプロセッサアプリケーション202は、さまざまなドキュメントコンテンツ、すなわちコンテンツ領域207および他の任意のリンクされたコンテンツを、データバインディングを介して1つまたは複数の関連付けられたXMLノード213に接続する。320においてXPathが見つからない場合、ワードプロセッサアプリケーション202は、324において、特定のデータバインディング205に未帰着参照215というラベルを付ける(未帰着状態と入力する)。318において、他のXMLデータ209が、データストア208内の同じXMLネームスペース内で見つかった場合、326において、ワードプロセッサアプリケーション202は、XMLノード213がそのデータ内に存在するかどうかを再びチェックする。
XMLデータ209が存在しない場合、ワードプロセッサアプリケーション202は、324において、特定のデータバインディング205に未帰着参照というラベルを付ける(未帰着状態と入力する)。326においてXMLデータ209が存在していると分かった場合、320において、ワードプロセッサアプリケーション202は、そのXMLデータ209内の所望のXPathを検索する。320においてノード213が見つかった場合、ワードプロセッサアプリケーション202は、322において、ドキュメントコンテンツ、すなわちコンテンツ領域207および他の任意のリンクされたコンテンツを1つまたは複数の関連付けられたXMLノード213に接続する。
本発明のさまざまな実施形態の論理的オペレーションは、(1)コンピュータによって実施される一連の行為や、コンピューティングシステム上で実行されるプログラムモジュールとして、および/または(2)コンピューティングシステム内で相互に接続された機械論理回路や回路モジュールとして実装されることが理解できるはずである。この実装は、本発明を実施するコンピューティングシステムのパフォーマンス要件に応じた選択の問題である。したがって、本明細書に記載されている本発明の実施形態を構成する論理的オペレーションは、オペレーション、構造的なデバイス、行為、あるいはモジュールなど、さまざまに呼ばれる。これらのオペレーション、構造的なデバイス、行為、およびモジュールは、本明細書で説明されている特許請求の範囲に記載された本発明の趣旨および範囲から逸脱することなく、ソフトウェア、ファームウェア、専用のデジタル論理、およびそれらの任意の組合せにおいて実装できることを当業者なら認識するであろう。
前述の仕様、例、およびデータは、本発明の構成の製造および使用に関する完全な説明を提供する。本発明の多くの実施形態は、本発明の趣旨および範囲から逸脱することなく作成することができるため、本発明は添付の特許請求の範囲に属するものである。
本発明の一例示的実施形態において使用できる例示的なコンピューティングデバイスを示す図である。 本発明を実施するための例示的な環境を示すブロック図である。 本発明の一実施形態による流れ図である。

Claims (19)

  1. コンピュータがワードプロセッサアプリケーションにおいてワードプロセッサドキュメントを提供する方法であって、
    前記ワードプロセッサドキュメントを開くことであって、前記ワードプロセッサドキュメントの表示表面は、
    前記ワードプロセッサドキュメントのドキュメントフォーマットにおいて前記ワードプロセッサドキュメントのコンテンツを表示するために、1つまたは複数のコンテンツ領域を含
    前記ワードプロセッサドキュメントの前記コンテンツに対する変更と関係のない、前記ワードプロセッサドキュメントの前記ドキュメントフォーマットに対する変更を受け取る
    ように構成されていることと、
    前記ワードプロセッサドキュメントを開いた後に、データストアを作成することであって、前記データストアは、
    前記ワードプロセッサドキュメントの前記コンテンツを表すドキュメントデータの1つまたは複数のノードを格納し、
    前記ワードプロセッサドキュメントの前記ドキュメントフォーマットに対する変更と関係のない、前記ワードプロセッサドキュメントの前記コンテンツに対する変更を受け取る
    ように構成されていることと、
    前記ドキュメントデータと共に前記データストアをロードすることと、
    前記ドキュメントデータの前記1つまたは複数のノードに前記1つまたは複数のコンテンツ領域を関連付ける1つまたは複数のバインディングをロードすることと、
    前記バインディングの1つが前記データストア内の存在しない場所を参照すると判定した場合に、前記1つまたは複数のコンテンツ領域を、前記1つまたは複数の前記ドキュメントデータの他のドキュメントデータにバインドすること
    を含むことを特徴とする方法。
  2. 前記データストア内の前記ドキュメントデータへのアクセスを提供することをさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記データストア内で直接前記ドキュメントデータを編集することをさらに含むことを特徴とする請求項2に記載の方法。
  4. 前記ドキュメントデータ編集に関連付けられた前記1つまたは複数のコンテンツ領域を更新することをさらに含むことを特徴とする請求項3に記載の方法。
  5. 前記1つまたは複数のコンテンツ領域の編集に基づいて、前記データストア内の関連付けられたドキュメントデータを更新することをさらに含むことを特徴とする請求項1に記載の方法。
  6. 前記バインディングが前記データストア内の存在しない場所を参照する場合に、未帰着参照を作成することをさらに含むことを特徴とする請求項1に記載の方法。
  7. 前記ワードプロセッサアプリケーションへのプログラミングインターフェースを使用して作成されたコードに基づいて、前記データストア内で、あるいは前記表示表面の1つまたは複数のコンテンツ領域内で変更を行う/変更に対応することをさらに含むことを特徴とする請求項1に記載の方法。
  8. 前記データストア内の少なくとも1つのノードに関連付けられた修正に基づいて、複数のコンテンツ領域のコンテンツを更新することをさらに含むことを特徴とする請求項1に記載の方法。
  9. ワードプロセッサドキュメントを提供するワードプロセッサシステムであって、
    表示表面であって、
    前記ワードプロセッサドキュメントのドキュメントフォーマットにおいて前記ワードプロセッサドキュメントのコンテンツを表示するために1つまたは複数のコンテンツ領域を含
    前記ワードプロセッサドキュメントの前記コンテンツに対する変更と関係のない、前記ワードプロセッサドキュメントの前記ドキュメントフォーマットに対する変更を受け取る
    ように構成された前記表示表面と、
    前記ワードプロセッサドキュメントを開いた後に作成されるデータストアであって、
    前記ワードプロセッサドキュメントの前記コンテンツを表すドキュメントデータを保存し、前記ワードプロセッサドキュメントの前記コンテンツは、前記表示表面から別個に保存され、
    前記ワードプロセッサドキュメントの前記ドキュメントフォーマットに対する変更と関係のない、前記ワードプロセッサドキュメントの前記コンテンツに対する変更を受け取る
    ように構成された前記データストアと、
    前記データストア内の前記ドキュメントデータに関連付けられたスキーマファイルであって、前記ドキュメントデータの構造を定義する前記スキーマファイルと、
    前記データストア内の前記ドキュメントデータにおける1つまたは複数のノードを、前記ドキュメントのコンテンツ領域に関連付けるバインディングを作成し、前記バインディングの1つが前記データストア内の存在しない場所を参照すると判定した場合に、前記1つまたは複数の前記ドキュメントデータの他のドキュメントデータにバインドするように構成されたバインダと
    を備えることを特徴とするワードプロセッサシステム。
  10. 前記1つまたは複数のリンクを監視するコードを作成するプログラミング手段をさらに備えることを特徴とする請求項9に記載のワードプロセッサシステム。
  11. 前記ワードプロセッサドキュメント内の複数のリンクされたエリアを編集するように動作することができ、これによって前記データストア内で関連する変更が行われることを特徴とする請求項9に記載のワードプロセッサシステム。
  12. 前記データストア内のノードを編集するように動作することができ、これによって前記ワードプロセッサドキュメントの1つまたは複数のコンテンツ領域内で関連する編集が行われることを特徴とする請求項9に記載のワードプロセッサシステム。
  13. 前記バインダは、未帰着の、またはバインドされたリンクを作成するようにさらに動作することができることを特徴とする請求項9に記載のワードプロセッサシステム。
  14. コンピュータ実行可能コンポーネントを格納する記媒体であって、前記コンピュータ実行可能コンポーネントは、
    ワードプロセッサ表示表面を格納する表示表面ストアであって、ワードプロセッサドキュメントのフォーマットにおいて前記ワードプロセッサドキュメントのコンテンツを表示し、前記ワードプロセッサドキュメントの前記コンテンツに対する変更に関係のない、前記ワードプロセッサドキュメントの前記ドキュメントフォーマットに対する変更を受け取る前記表示表面ストアと、
    前記ワードプロセッサドキュメントを開いた後に作成され、前記ワードプロセッサドキュメントの前記コンテンツを含む第1のデータを保存するコンテンツストアであって、前記第1のデータは、前記コンテンツの部分を含み、前記ワードプロセッサドキュメントの前記ドキュメントフォーマットに対する変更に関係のない、前記ワードプロセッサドキュメントの前記コンテンツに対する変更を受け取る1つまたは複数のノードを含み、前記表示表面ストアから別個に保存される前記コンテンツストアと、
    前記コンテンツストア内の前記第1のデータの前記1つまたは複数のノードを、前記ワードプロセッサドキュメントの1つのエリアにバインドするバインディングであって、前記バインディングが前記コンテンツストア内の存在しない場所を参照すると判定された場合に、前記1つまたは複数のノードを再びバインドする前記バインディングと
    を含むことを特徴とする記媒体。
  15. 第2のデータを保存する第2のストアをさらに含むことを特徴とする請求項14に記載の記媒体。
  16. 前記コンテンツストアに関連付けられた第1のスキーマと、前記第2のストアに関連付けられた第2のスキーマとをさらに含むことを特徴とする請求項15に記載の記媒体。
  17. 前記コンテンツストアを監視するコードを作成するプログラミングインターフェースをさらに含むことを特徴とする請求項14に記載の記媒体。
  18. 前記ワードプロセッサは、リンクが前記コンテンツストア内の不明の場所を参照する場合に未帰着参照を作成するようにさらに動作することができることを特徴とする請求項14に記載の記媒体。
  19. 前記ワードプロセッサは、未帰着の、またはバインドされたリンクを作成するようにさらに動作することができることを特徴とする請求項14に記載の記媒体。
JP2005352580A 2005-01-06 2005-12-06 ワードプロセッシングアプリケーションにおけるデータバインディング Expired - Fee Related JP4936715B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/030,423 US7730394B2 (en) 2005-01-06 2005-01-06 Data binding in a word-processing application
US11/030,423 2005-01-06

Publications (3)

Publication Number Publication Date
JP2006323813A JP2006323813A (ja) 2006-11-30
JP2006323813A5 JP2006323813A5 (ja) 2009-02-26
JP4936715B2 true JP4936715B2 (ja) 2012-05-23

Family

ID=36218132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005352580A Expired - Fee Related JP4936715B2 (ja) 2005-01-06 2005-12-06 ワードプロセッシングアプリケーションにおけるデータバインディング

Country Status (5)

Country Link
US (1) US7730394B2 (ja)
EP (1) EP1679616B1 (ja)
JP (1) JP4936715B2 (ja)
KR (1) KR101213812B1 (ja)
CN (2) CN100489849C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110877B2 (en) 2004-09-30 2015-08-18 Microsoft Technology Licensing, Llc Method and apparatus for utilizing an extensible markup language schema for managing specific types of content in an electronic document

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293242B2 (en) * 2002-10-15 2007-11-06 International Business Machines Corporation Facilitated source to target object editing functions
US7945590B2 (en) * 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7617234B2 (en) * 2005-01-06 2009-11-10 Microsoft Corporation XML schema for binding data
US7668873B2 (en) 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7499931B2 (en) * 2005-05-09 2009-03-03 International Business Machines Corporation Method and apparatus for approximate projection of XML documents
US7953696B2 (en) * 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
KR100751691B1 (ko) * 2005-11-08 2007-08-23 삼성에스디에스 주식회사 다수의 파워포인트 문서 편집 방법
US7904809B2 (en) 2007-06-29 2011-03-08 Microsoft Corporation Model-based editors for dynamic validation
US20090089268A1 (en) * 2007-09-28 2009-04-02 Benedikt Michael A XML Update Facility for an XQuery Processor
US8370391B2 (en) * 2008-03-25 2013-02-05 Microsoft Corporation Functional updates for tree processing
JP5455321B2 (ja) * 2008-05-02 2014-03-26 キヤノン株式会社 文書処理装置及び文書処理方法
CN101339500B (zh) * 2008-05-22 2010-06-09 清华大学 基于xml模式的数据绑定应用程序接口生成方法
US10453043B2 (en) * 2008-06-25 2019-10-22 Thomson Reuters Global Resources Unlimited Company System and method for online bill payment
CN101477516B (zh) * 2008-09-10 2010-12-01 北京书生国际信息技术有限公司 一种电子数据处理方法和系统
KR101044870B1 (ko) * 2008-10-02 2011-06-28 한국전자통신연구원 경로 코드를 이용한 xml 문서의 부호화 및 복호화 방법과 장치
JP5632593B2 (ja) * 2009-07-01 2014-11-26 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
US8244764B2 (en) 2009-07-31 2012-08-14 Microsoft Corporation Stashing of locally persisted data to network accessible storage
JP2011123556A (ja) 2009-12-08 2011-06-23 Canon Inc 情報処理装置、情報処理方法及びプログラム
KR20110095612A (ko) * 2010-02-19 2011-08-25 삼성전자주식회사 링크 제공 방법 및 이를 적용한 전자장치
JP5547599B2 (ja) * 2010-09-30 2014-07-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 検索クエリーの作成を支援する装置、グラフィカルユーザインターフェース生成システム、方法及びプログラム
US8924842B2 (en) * 2011-02-25 2014-12-30 Hewlett-Packard Development Company, L.P. Method and system to build interactive documents
US8850306B2 (en) * 2011-03-28 2014-09-30 Microsoft Corporation Techniques to create structured document templates using enhanced content controls
JP2013089130A (ja) * 2011-10-20 2013-05-13 Sony Corp 情報処理装置、情報処理方法、プログラム、及び記録媒体
US8499122B2 (en) * 2011-11-21 2013-07-30 Microsoft Corporation Asynchronous data binding
EP2836923A4 (en) * 2012-04-10 2016-01-13 Blackberry Ltd METHODS AND APPARATUS FOR COPYING AND INSERTING INFORMATION
IL222847A (en) * 2012-11-04 2015-05-31 Aron Tevyowitz Hierarchical code lock system
US9460073B2 (en) 2013-02-27 2016-10-04 Google Inc. Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
US20140281876A1 (en) * 2013-03-15 2014-09-18 Meteor Development Group, Inc. Document element mapping
US10055396B2 (en) 2013-04-12 2018-08-21 Microsoft Technology Licensing, Llc Binding of data source to compound control
CN103294477B (zh) * 2013-06-14 2018-02-13 北京新学堂网络科技有限公司 使用Office文档进行移动开发项目管理的方法
US20160321226A1 (en) * 2015-05-01 2016-11-03 Microsoft Technology Licensing, Llc Insertion of unsaved content via content channel
US10909080B2 (en) 2015-05-04 2021-02-02 Microsoft Technology Licensing, Llc System and method for implementing shared document edits in real-time
US9696967B2 (en) * 2015-11-09 2017-07-04 Microsoft Technology Licensing, Llc Generation of an application from data

Family Cites Families (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69032649T2 (de) * 1989-08-01 1999-05-06 Silicon Graphics Inc., Mountain View, Calif. 94039 Dateiveränderungsmonitor für rechner-, betriebs- und dateiverwaltungssysteme
BR9306961A (pt) 1992-08-26 1999-01-12 Bellsouth Corp Sistema de comunicações de número pessoal
US5440745A (en) * 1993-04-29 1995-08-08 International Business Machines Corporation Batch format processing of record data
US5630131A (en) * 1994-11-14 1997-05-13 Object Technology Licensing Corp. Method and apparatus for importing and exporting archive files for a graphical user interface
US5911068A (en) * 1995-03-30 1999-06-08 Microsoft Corporation Container independent control architecture
JP3700733B2 (ja) * 1995-06-12 2005-09-28 富士ゼロックス株式会社 文書管理装置及び文書管理方法
US5727348A (en) * 1995-11-07 1998-03-17 Arnell; Louis G. Portable remote controlled door closer
US20050027617A1 (en) * 1996-01-17 2005-02-03 Privacy Infrastructure, Inc. Third party privacy system
US6006239A (en) 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US6088431A (en) * 1996-03-20 2000-07-11 Aeris Communications, Inc. Method for transmitting voice or data in a wireless network depending on billing account status
US5715415A (en) * 1996-06-05 1998-02-03 Microsoft Corporation Computer application with help pane integrated into workspace
US5845299A (en) 1996-07-29 1998-12-01 Rae Technology Llc Draw-based editor for web pages
US5903902A (en) * 1996-09-09 1999-05-11 Design Intelligence, Inc. Design engine with tree and component structure
US6268851B1 (en) * 1996-09-30 2001-07-31 Trellix Corporation Hypermedia authoring and publishing system
US7062500B1 (en) * 1997-02-25 2006-06-13 Intertrust Technologies Corp. Techniques for defining, using and manipulating rights management data structures
US6256627B1 (en) * 1997-07-08 2001-07-03 At&T Corp. System and method for maintaining a knowledge base and evidence set
US5991878A (en) 1997-09-08 1999-11-23 Fmr Corp. Controlling access to information
US5974430A (en) * 1997-09-30 1999-10-26 Unisys Corp. Method for dynamically embedding objects stored in a web server within HTML for display by a web browser
US6157940A (en) 1997-11-21 2000-12-05 International Business Machines Corporation Automated client-based web server stress tool simulating simultaneous multiple user server accesses
US6247020B1 (en) * 1997-12-17 2001-06-12 Borland Software Corporation Development system with application browser user interface
AUPP252298A0 (en) * 1998-03-24 1998-04-23 80-20 Software Pty Limited Document management software
US6731314B1 (en) * 1998-08-17 2004-05-04 Muse Corporation Network-based three-dimensional multiple-user shared environment apparatus and method
US6562076B2 (en) * 1998-08-31 2003-05-13 Xerox Corporation Extending application behavior through active properties attached to a document in a document management system
GB2341523B (en) * 1998-09-12 2003-10-29 Ibm Apparatus and method for establishing communication in a computer network
US6397351B1 (en) * 1998-09-28 2002-05-28 International Business Machines Corporation Method and apparatus for rapid data restoration including on-demand output of sorted logged changes
US6275824B1 (en) * 1998-10-02 2001-08-14 Ncr Corporation System and method for managing data privacy in a database management system
US6507856B1 (en) * 1999-01-05 2003-01-14 International Business Machines Corporation Dynamic business process automation system using XML documents
US6490601B1 (en) 1999-01-15 2002-12-03 Infospace, Inc. Server for enabling the automatic insertion of data into electronic forms on a user computer
JP2000227914A (ja) * 1999-02-05 2000-08-15 Dainippon Screen Mfg Co Ltd 文書編集装置
US6317777B1 (en) 1999-04-26 2001-11-13 Intel Corporation Method for web based storage and retrieval of documents
US6920455B1 (en) * 1999-05-19 2005-07-19 Sun Microsystems, Inc. Mechanism and method for managing service-specified data in a profile service
US6859821B1 (en) * 1999-07-19 2005-02-22 Groove Networks, Inc. Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
US7039863B1 (en) 1999-07-23 2006-05-02 Adobe Systems Incorporated Computer generation of documents using layout elements and content elements
EP1330727A2 (en) 1999-08-05 2003-07-30 Oracle Corporation Internet file system
WO2001015004A2 (en) 1999-08-26 2001-03-01 Cma Business Credit Services Service bureau architecture
US7055094B2 (en) * 1999-12-30 2006-05-30 Rutgers, The State University Of New Jersey Virtual tags and the process of virtual tagging utilizing user feedback in transformation rules
US20040220926A1 (en) 2000-01-03 2004-11-04 Interactual Technologies, Inc., A California Cpr[P Personalization services for entities from multiple sources
US7237002B1 (en) * 2000-01-04 2007-06-26 International Business Machines Corporation System and method for dynamic browser management of web site
US6944622B1 (en) * 2000-01-20 2005-09-13 International Business Machines Corporation User interface for automated project management
US6701314B1 (en) * 2000-01-21 2004-03-02 Science Applications International Corporation System and method for cataloguing digital information for searching and retrieval
US7340481B1 (en) * 2000-01-21 2008-03-04 International Business Machines Corp. Method and system for adding user-provided content to a content object stored in a data repository
US20020010716A1 (en) * 2000-02-24 2002-01-24 Mccartney Alan F. System and method for dynamically publishing XML-compliant documents
US6629843B1 (en) * 2000-03-22 2003-10-07 Business Access, Llc Personalized internet access
US20050091576A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
US6571253B1 (en) * 2000-04-28 2003-05-27 International Business Machines Corporation Hierarchical view of data binding between display elements that are organized in a hierarchical structure to a data store that is also organized in a hierarchical structure
AUPQ808700A0 (en) * 2000-06-09 2000-07-06 Honeywell Limited Human-machine interface
US20010056463A1 (en) 2000-06-20 2001-12-27 Grady James D. Method and system for linking real world objects to digital objects
US6944662B2 (en) * 2000-08-04 2005-09-13 Vinestone Corporation System and methods providing automatic distributed data retrieval, analysis and reporting services
AU2001294555A1 (en) * 2000-09-14 2002-03-26 Bea Systems Inc. Xml-based graphical user interface application development toolkit
US7190976B2 (en) * 2000-10-02 2007-03-13 Microsoft Corporation Customizing the display of a mobile computing device
EP1364313A2 (en) * 2000-10-31 2003-11-26 Michael Philip Kaufman System and method for automatically generating user interfaces for arbitrarily complex or large databases
US7191252B2 (en) * 2000-11-13 2007-03-13 Digital Doors, Inc. Data security system and method adjunct to e-mail, browser or telecom program
US6996800B2 (en) * 2000-12-04 2006-02-07 International Business Machines Corporation MVC (model-view-controller) based multi-modal authoring tool and development environment
DE60131683T2 (de) * 2000-12-11 2008-10-30 Microsoft Corp., Redmond Verfahren und system zur verwaltung von mehreren netzwerk-betriebsmitteln
US7076728B2 (en) * 2000-12-22 2006-07-11 International Business Machines Corporation Method and apparatus for end-to-end content publishing system using XML with an object dependency graph
US7085773B2 (en) * 2001-01-05 2006-08-01 Symyx Technologies, Inc. Laboratory database system and methods for combinatorial materials research
JP4099948B2 (ja) * 2001-01-18 2008-06-11 株式会社日立製作所 構造化文書をプログラム言語の構造体データへマッピングするシステム及び方法及びプログラム
US20030164859A1 (en) * 2001-02-02 2003-09-04 Evans Clark Cameron Hybrid widget/layout user interface for structured information
US6963930B2 (en) 2001-02-15 2005-11-08 Centric Software, Inc. Automatic transfer and expansion of application-specific data for display at a website
US6996769B1 (en) * 2001-02-28 2006-02-07 Cisco Technology, Inc. Method and system for generating documentation from operating system command syntax
US6950831B2 (en) * 2001-03-23 2005-09-27 Siemens Medical Solutions Health Services Corporation Processing system for use with a user interface display
US7134075B2 (en) * 2001-04-26 2006-11-07 International Business Machines Corporation Conversion of documents between XML and processor efficient MXML in content based routing networks
US20020198962A1 (en) 2001-06-21 2002-12-26 Horn Frederic A. Method, system, and computer program product for distributing a stored URL and web document set
JP2005514673A (ja) 2001-06-22 2005-05-19 オモイグイ,ノサ 知識の取得、管理、伝達、及び提示のシステム及び方法
WO2003003642A2 (en) * 2001-06-29 2003-01-09 Ve Enterprises Llc System and method for editing web pages in a client/server architecture
US7117504B2 (en) 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US7305614B2 (en) * 2001-07-17 2007-12-04 International Business Machines Corporation Interoperable retrieval and deposit using annotated schema to interface between industrial document specification languages
US6990534B2 (en) * 2001-07-20 2006-01-24 Flowfinity Wireless, Inc. Method for a proactive browser system for implementing background frame maintenance and asynchronous frame submissions
WO2003014927A2 (en) * 2001-08-08 2003-02-20 Trivium Systems Inc. Scalable messaging platform for the integration of business software components
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
US6865599B2 (en) * 2001-09-04 2005-03-08 Chenglin Zhang Browser-to-browser, dom-based, peer-to-peer communication with delta synchronization
US7284194B2 (en) 2001-10-23 2007-10-16 Sun Microsystems, Inc. XML based report generator
US20040103147A1 (en) * 2001-11-13 2004-05-27 Flesher Kevin E. System for enabling collaboration and protecting sensitive data
ES2326073T3 (es) * 2001-11-23 2009-09-30 Research In Motion Limited Sistema y metodo para tratar o procesar documentos en lenguaje de marcaje extensible (xml).
US7496841B2 (en) 2001-12-17 2009-02-24 Workshare Technology, Ltd. Method and system for document collaboration
US7502996B2 (en) * 2002-02-21 2009-03-10 Bea Systems, Inc. System and method for fast XSL transformation
US7962925B2 (en) * 2002-02-22 2011-06-14 Oracle International Corporation System and method for XML data binding
US7091846B2 (en) * 2002-03-18 2006-08-15 Siemens Communications, Inc. Methods and apparatus for handling information regarding an alarm for a communication network
AU2003228416A1 (en) * 2002-04-02 2003-10-20 Collabo-Technology, Inc. Method and apparatus for synchronous project collaboration
KR100860984B1 (ko) 2002-10-15 2008-09-30 삼성전자주식회사 메타데이터 관리 방법
JP4036718B2 (ja) * 2002-10-02 2008-01-23 インターナショナル・ビジネス・マシーンズ・コーポレーション 文書検索システム、文書検索方法、文書検索を実行するためのプログラム
US20040088647A1 (en) * 2002-11-06 2004-05-06 Miller Adrian S. Web-based XML document processing system
CA2414047A1 (en) * 2002-12-09 2004-06-09 Corel Corporation System and method of extending scalable vector graphics capabilities
US8032860B2 (en) * 2003-02-26 2011-10-04 Oracle International Corporation Methods for type-independent source code editing
US7017112B2 (en) * 2003-02-28 2006-03-21 Microsoft Corporation Importing and exporting markup language data in a spreadsheet application document
US7380212B2 (en) * 2003-03-18 2008-05-27 Microsoft Corporation Dynamic-template incorporation of digital images in an electronic mail message
US20050071477A1 (en) * 2003-03-27 2005-03-31 Microsoft Corporation Providing information links via a network
US7653876B2 (en) 2003-04-07 2010-01-26 Adobe Systems Incorporated Reversible document format
US7188308B2 (en) * 2003-04-08 2007-03-06 Thomas Weise Interface and method for exploring a collection of data
US20040237036A1 (en) 2003-05-21 2004-11-25 Qulst Robert D. Methods and systems for generating supporting files for commands
US7308458B2 (en) 2003-06-11 2007-12-11 Wtviii, Inc. System for normalizing and archiving schemas
US7698397B2 (en) * 2003-06-27 2010-04-13 Microsoft Corporation Method and framework for providing system performance information
US7171741B2 (en) * 2003-07-25 2007-02-06 Hitachi Global Storage Technologies Netherlands B.V. Method for extended self-pinned layer for a current perpendicular to plane head
JP2005056127A (ja) * 2003-08-04 2005-03-03 Lintec Corp 認定材料の販売方法
US8140980B2 (en) * 2003-08-05 2012-03-20 Verizon Business Global Llc Method and system for providing conferencing services
US20050044145A1 (en) * 2003-08-20 2005-02-24 International Business Machines Corporation Collaboration method and system
US8001156B2 (en) * 2003-08-29 2011-08-16 Cybertrust Ireland Limited Processing XML node sets
US20050086384A1 (en) * 2003-09-04 2005-04-21 Johannes Ernst System and method for replicating, integrating and synchronizing distributed information
US7523220B2 (en) * 2003-09-17 2009-04-21 Microsoft Corporation Metaspace: communication middleware for partially connected mobile ad hoc networks
US7657832B1 (en) * 2003-09-18 2010-02-02 Adobe Systems Incorporated Correcting validation errors in structured documents
US7424672B2 (en) * 2003-10-03 2008-09-09 Hewlett-Packard Development Company, L.P. System and method of specifying image document layout definition
US20050091346A1 (en) * 2003-10-23 2005-04-28 Brijesh Krishnaswami Settings management infrastructure
US7386563B1 (en) * 2003-12-11 2008-06-10 Unisys Corporation Method for using deferred column retrieval to improve row retrieval and query performance of OLE DB applications
US20050154978A1 (en) * 2004-01-09 2005-07-14 International Business Machines Corporation Programmatic creation and access of XML documents
US7200816B2 (en) * 2004-01-21 2007-04-03 Altova, Gmbh Method and system for automating creation of multiple stylesheet formats using an integrated visual design environment
US7469408B2 (en) * 2004-02-13 2008-12-23 Microsoft Corporation Document customization for transparent execution on a client and a server
US7318063B2 (en) * 2004-02-19 2008-01-08 Microsoft Corporation Managing XML documents containing hierarchical database information
US20050188350A1 (en) * 2004-02-20 2005-08-25 Microsoft Corporation Data binding
US7577938B2 (en) * 2004-02-20 2009-08-18 Microsoft Corporation Data association
US20060041558A1 (en) * 2004-04-13 2006-02-23 Mccauley Rodney System and method for content versioning
US20060031755A1 (en) * 2004-06-24 2006-02-09 Avaya Technology Corp. Sharing inking during multi-modal communication
US9098476B2 (en) 2004-06-29 2015-08-04 Microsoft Technology Licensing, Llc Method and system for mapping between structured subjects and observers
US7451186B2 (en) * 2004-08-10 2008-11-11 Microsoft Corporation Method and system of integrating instant messaging with other computer programs
US7506324B2 (en) * 2004-09-02 2009-03-17 Microsoft Corporation Enhanced compiled representation of transformation formats
US20060053194A1 (en) * 2004-09-03 2006-03-09 Schneider Ronald E Systems and methods for collaboration
US7707498B2 (en) * 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US7945590B2 (en) * 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7752224B2 (en) * 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7668873B2 (en) * 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7953696B2 (en) * 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110877B2 (en) 2004-09-30 2015-08-18 Microsoft Technology Licensing, Llc Method and apparatus for utilizing an extensible markup language schema for managing specific types of content in an electronic document

Also Published As

Publication number Publication date
US20060150085A1 (en) 2006-07-06
CN1811765B (zh) 2010-10-13
JP2006323813A (ja) 2006-11-30
EP1679616A2 (en) 2006-07-12
CN100489849C (zh) 2009-05-20
EP1679616B1 (en) 2018-05-02
US7730394B2 (en) 2010-06-01
CN1811765A (zh) 2006-08-02
KR20060080861A (ko) 2006-07-11
KR101213812B1 (ko) 2013-01-09
EP1679616A3 (en) 2008-01-16
CN1811766A (zh) 2006-08-02

Similar Documents

Publication Publication Date Title
JP4936715B2 (ja) ワードプロセッシングアプリケーションにおけるデータバインディング
US7945590B2 (en) Programmability for binding data
US7617234B2 (en) XML schema for binding data
US7752224B2 (en) Programmability for XML data store for documents
AU2006200047B2 (en) Data store for software application documents
JP5072845B2 (ja) 文書用のxmlデータストアのためのプログラム可能性
JP5085548B2 (ja) アプリケーション間でのxmlデータのリアルタイム同期
US20060080329A1 (en) Systems and methods for creating a template from an existing file
US20070061349A1 (en) Hierarchically describing shapes
US7565603B1 (en) Representing style information in a markup language document
US7533335B1 (en) Representing fields in a markup language document
MXPA06000967A (en) Data store for software application documents

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110502

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110701

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: 20120214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120221

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4936715

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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