(57)【特許請求の範囲】
【請求項１】
ペイロードデータをスプレッドシートリストにマップするシステムであって、
少なくとも１つのスプレッドシートリストを含んだスプレッドシートデータを格納するスプレッドシート記憶ユニットであって、該少なくとも１つのスプレッドシートリストは、マップされたフィールドと関連した少なくとも１つのパスを含む、スプレッドシート記憶ユニットと、
ペイロードデータを格納するペイロードデータ記憶ユニットであって、該ペイロードデータは、前記スプレッドシートデータと関連する、ペイロードデータ記憶ユニットと、
前記スプレッドシート記憶ユニットからスプレッドシートデータを受け取り、
前記ペイロードデータ記憶ユニットからペイロードデータを受け取り、
前記少なくとも１つのパスに対する１組の親パスを生成すること、
前記１組の親パスのうちの最長親パスを決定すること、
前記１組の親パスのうちの１つの親パスをボトムパスとして指定すること、
ペイロードデータから１組のノードを生成すること、および
前記１組のノードのうちの１つのノードを前記少なくとも１つのスプレッドシートリストの行にマップすることであって、該１組のノードは、前記ペイロードデータで前記ボトムパスを評価することによって生成され、該行は、複数のフィールドを含むこと
により、前記ペイロードデータを前記少なくとも１つのスプレッドシートリストにマップし、
前記ボトムパスを前記スプレッドシートデータ内の前記フィールドに関連した前記少なくとも１つのパスまでトレースすることにより、前記行内の前記複数のフィールドの値を取得する
ように適合したマッピングユニットと
を具備したことを特徴とするシステム。
【請求項２】
前記少なくとも１つのスプレッドシートリストは拡張可能マークアップ言語（ＸＭＬ）リストを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記マッピングユニットから前記少なくとも１つのマップされたスプレッドシートリストを受け取り、前記少なくとも１つのマップされたスプレッドシートリストをユーザに表示するように適合したユーザインターフェースをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項４】
前記マッピングユニットから前記少なくとも１つのマップされたスプレッドシートリストを受け取り、前記少なくとも１つのマップされたスプレッドシートリストをネットワークに提供するように適合したネットワークインターフェースをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項５】
前記少なくとも１つのスプレッドシートリストは、前記ペイロードデータに関連した少なくとも１つのフィールドパスを含むことを特徴とする請求項１に記載のシステム。
【請求項６】
ペイロードデータをスプレッドシートリストにマップする方法であって、
コンピュータが、１つのフィールドに関連した少なくとも１つのパスを含んだ少なくとも１つのスプレッドシートリストを有するスプレッドシートデータを受け取るステップと、
前記コンピュータが、前記スプレッドシートデータに関連したペイロードデータを受け取るステップと、
前記コンピュータが、
前記少なくとも１つのパスに対する１組の親パスを生成すること、
前記１組の親パスのうちの最長親パスを決定すること、
前記１組の親パスのうちの１つの親パスをボトムパスとして指定すること、
ペイロードデータから１組のノードを生成することであって、該１組のノードは、前記ペイロードデータで前記ボトムパスを評価することによって生成されること
により、前記ペイロードデータを前記少なくとも１つのスプレッドシートリストにマップするステップと
を具備したことを特徴とする方法。
【請求項７】
前記少なくとも１つのパスを用いて前記ペイロードデータを前記少なくとも１つのスプレッドシートリストにマップするステップは、
前記コンピュータが、前記１組のノードのうちの１つのノードを前記少なくとも１つのスプレッドシートリストの行にマップするステップと、
前記コンピュータが、前記少なくとも１つの分岐ボトムパスを前記スプレッドシートデータ内の前記フィールドに関連した前記少なくとも１つのパスまでトレースすることにより、前記行内の前記フィールドの値を取り出すステップと
をさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記少なくとも１つのパスのために１組の親パスを生成するステップは、
前記コンピュータが、前記スプレッドシートデータの前記少なくとも１つのパスを列挙するステップと、
前記コンピュータが、列挙した前記少なくとも１つのパスを前のフィールドまで戻るステップと、
前記コンピュータが、前記前のフィールドに関連したパスを前記１組の親パスに挿入するステップと
を含むことを特徴とする請求項６に記載の方法。
【請求項９】
前記１組の親パスにおける少なくとも１つの親パスを少なくとも１つの分岐ボトムパスとして指定するステップは、
前記コンピュータが、前記１組の親パスの少なくとも１つの最長親パスを決定するステップと、
前記コンピュータが、前記少なくとも１つの最長親パスにおける第１の親パスが前記少なくとも１つの最長親パスにおける第２の親パスの一部でない場合、前記少なくとも１つの最長親パスを少なくとも１つの分岐ボトムパスとして指定するステップと
を含むことを特徴とする請求項６に記載の方法。
【請求項１０】
前記コンピュータが、前記１組の親パスにおける第３の親パスを前記少なくとも１つの分岐ボトムパスと関連付けるステップであって、前記第３の親パスは、前記少なくとも１つの分岐ボトムパスの一部であるステップをさらに含むことを特徴とする請求項６に記載の方法。
【請求項１１】
請求項６乃至１０の何れか１項に記載の方法を実行するためのコンピュータ実行可能命令を備えたコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
ネストされたテーブル(nested table)を用いたスキーマレス(schemaless)データマッピング(data mapping)のためのシステムおよび方法に関する。
本発明は、一般に、データマッピングのシステムおよび方法に関し、より詳細には、スキーマ(schema)を使用しないデータマッピングのシステムおよび方法に関する。
【背景技術】
【０００２】
アプリケーション間で、特にインターネットを介してデータを移動するために、拡張可能マークアップ言語（ＸＭＬ）がより普及するにつれて、一般のアプリケーションは、ＸＭＬの使用によるＷｅｂ関連の諸機能（例えば、Ｗｅｂへの文書公開など）を実行するようになっている。１つのそのようなアプリケーションが、ワシントン州レッドモンド所在のマイクロソフト社が提供するＭＩＣＲＯＳＯＦＴ  ＥＸＣＥＬである。所定のスキーマに適合するＸＭＬペイロードデータを表示するためにＸＭＬリストが導入されている。通常、ＸＭＬペイロードデータとＸＭＬリストの構成の関係は、スプレッドシートワークブック定義(spreadsheet workbook definition)の一部であるＸＭＬマップ(map)によって定義される。ＸＭＬマップは、ワークブック中のＸＭＬリストの位置(location)、マップされる列数(number of columns)、および各列(column)に関連した要素(element)または属性(attribute)の種類(type)を決定することができる。ＸＭＬスプレッドシート（ＸＭＬＳＳ）ファイルは、そのワークブックが含むすべてのＸＭＬリストを含むスプレッドシートワークブックを記述する。所定のスキーマの諸要素がグリッド上にマップされてマップされたＸＭＬリストが作成され、各行は、ペイロードデータ(payload data)のノードインスタンス(node instance)を表す。一般には、このスキーマがＸＭＬペイロードデータの形状を定義する。
【０００３】
スプレッドシートアプリケーションがインターネットを介した有効な対話性を提供するためには、そのスプレッドシートアプリケーションは、所与のワークブックが、独立型システム上と同じように、ネットワークを介してロードされ、表示されることを保証しなければならない。この忠実度の重要な部分が、ペイロードデータのＸＭＬリストへのマッピングである。そのようなマッピングは、所定のスキーマの使用を必要とする。
【０００４】
残念ながら、ＸＭＬペイロードデータをＸＭＬリストにマップする所定のスキーマの確実性は疑わしいことがある。例えば、スキーマが使用不能であり、または損なわれている場合、そのデータは適正にマップされないことがある。さらに、スキーマのペイロードデータおよびＸＭＬリストへの適用は、コンピュータ処理ユニット（ＣＰＵ）による集中処理を必要とする。そのようなプロセッサへの負担は、サーバやハンドヘルド機器などのコンピューティングシステムにとって実際的でなかったり、不都合であったりする。
【０００５】
スキーマを使用せずにペイロードデータをスプレッドシートリストにマップすることは、ネストされたテーブル(nested table)をマップすることの複雑さのために、難しいと考えられる。ネストされたテーブルは、しばしば、１つのテーブルが複数のテーブル（例えばサブテーブル(sub-table)など）を含むように、入り組んだペイロードデータを表示するのに使用される。ネストされたテーブルの再帰的性質は、相互に関連するペイロードデータの表示を可能にする。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、スキーマを使用せずにペイロードデータをスプレッドシートリストにマップするシステムおよび方法が求められている。
【０００７】
また、その結果がスキーマを用いたデータマッピングと実質的に類似したものになる、スキーマを使用せずにペイロードデータをスプレッドシートリストにマップするシステムおよび方法も求められている。
【０００８】
さらに、スキーマを使用せずに、ネストされたテーブルの実施をサポートすると同時に、ペイロードデータをスプレッドシートリストにマップするシステムおよび方法も求められている。
【課題を解決するための手段】
【０００９】
本発明は、ペイロードデータを、スプレッドシートデータのスプレッドシートリスト（ＸＭＬリストなど）にマップするシステムおよび方法を含む。より詳細には、本発明は、スキーマを使用せずに、ネストされたテーブルの実施をサポートすると同時に、ペイロードデータをスプレッドシートリストにマップするシステムを含む。スプレッドシートリスト(spreadsheet list)を受け取った後、本発明は、そのスプレッドシートリストで定義された各フィールドパス(field path)の親パス(parent path)を生成(geneate)する。最長の親パス(longest parent path)（例えばボトムパス(bottom path)など）を使用して、ペイロードデータから１組のバインドノード(a set of bind nodes)が生成される。本発明は、各バインドノードをスプレッドシートリスト中の１行(a row)にマップすることができる。ボトムパスおよびフィールドパスを用いて各バインドノードからトラバース(traverse)することによって、本発明は、そのスプレッドシートリストの各行のその他のフィールドすべての値を獲得することができる。代替の実施形態として、複数の親パス(more than one parent path)が最長親パス(longest parent path)であるとみな(qualify)され、そのような親パスが、相互に等しくなく、または相互の一部(subset of each other)でもない場合、そのような親の親(parent parents)は、分岐ボトムパス(branch bottom path)と呼ばれ(designate)る。その場合、他のすべてのパスが、適当な分岐ボトムパスに関連付けられる。バインディングプロセス(binding process)の間、各分岐ボトムパスが評価(evaluate)されて結果ノード(result node)が生成(generate)され、それを用いてスプレッドシートリスト(spreadsheet list)における各フィールドの値(values of the fields)が獲得(obtain)される。
【００１０】
有利な点として、本発明によれば、スキーマを使用することなく(without the use of a schema)ペイロードデータをスプレッドシートリストにマップすることができる。本発明は、スキーマを用いて生成されるものと実質的に類似した結果を提供する。また、本発明は、スプレッドシートリスト内でのネストされたテーブルの実施もサポートする。したがって、本発明は、ペイロードデータをスプレッドシートリストにマップするスキーマへの依存を不要にし、その結果として、データマッピング失敗(data mapping failure)の可能性(potential)を低減させる。また、そのような依存性（例えば、プロセッサ集中データマッピングなど）の除去により、コンピュータ処理ユニットの貴重なリソースがより重要なタスクに解放される。
【００１１】
本発明の他の特徴および利点は、添付の図面と併せて読むことにより明らかになるであろう。
【発明を実施するための最良の形態】
【００１２】
図面中においける類似の番号は、複数の図を通して類似の構成要素またはステップを表す。図１は、本発明の例示的実施形態による、スプレッドシートデータマッピングシステム１００のブロック図を示す。スプレッドシートデータマッピングシステム１００は、スプレッドシート記憶ユニット１０９、ペイロードデータ記憶ユニット１１５、マッピングユニット１０６を含む通信デバイス１０３を備え得る。通信デバイス１０３は、以下で図２を参照してより詳細に説明する公知のコンピューティングシステム、環境、および／または構成に含まれるものと類似のハードウェアおよびソフトウェア構成要素によってサポートされ得る。
【００１３】
スプレッドシート記憶ユニット１０９は、マッピングユニット１０６と通信可能なように接続される。スプレッドシート記憶措置１０９は、図３を参照してより詳細に説明する、拡張可能マークアップ言語（ＸＭＬ）リスト１１２などのスプレッドシートリストを含むスプレッドシートデータを格納する。スプレッドシート記憶ユニット１０９は、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、磁気メモリ装置、光メモリ装置、ハードディスクドライブ、取り外し可能揮発性または不揮発性メモリ装置、光記憶媒体、磁気記憶媒体、ＲＡＭメモリカードを含む、データを格納し、取り出すことのできるメモリ装置を備える。代替実施形態として、スプレッドシート記憶ユニット１０９は、有線および／または無線ネットワークシステムを介してアクセス可能なリモート記憶設備を備えることもできる。また、スプレッドシート記憶ユニット１０９は、前述のような１次および２次メモリ装置の多段システムを含むメモリシステムも備え得る。この１次メモリ装置および２次メモリ装置は、互いのためのキャッシュとして動作することもでき、２次メモリ装置が１次メモリ装置のバックアップとして働くこともできる。別の構成では、スプレッドシート記憶ユニット１０９は、単純なデータベースファイルとして、あるいはＳＱＬなどの問い合わせ言語を用いたサーチ可能なリレーショナルデータベースとして構成されたメモリ装置も備えることができる。
【００１４】
ペイロードデータ記憶ユニット１１５は、マッピングユニット１０６と通信可能なように接続される。ペイロードデータ記憶ユニット１１５は、スプレッドシートデータの対応するＸＭＬリスト１１２にマップされ得るペイロードデータを格納する。ペイロードデータについては、以下で図４を参照してより詳細に説明する。ペイロードデータ記憶ユニット１１５は、スプレッドシート記憶ユニット１０９を参照して前述したメモリ装置と類似のメモリ装置を備える。
【００１５】
マッピングユニット１０６は、スプレッドシート記憶ユニット１０９およびペイロードデータ記憶ユニット１１５と通信可能なように接続される。マッピングユニット１０６は、本明細書で述べるようにタスクを実行し、能力および機能を提供するのに適したハードウェアおよびソフトウェア（図２参照）を用いて構成される。マッピングユニット１０６は、ペイロードデータ記憶ユニット１１５に格納されたペイロードデータを、スプレッドシート記憶ユニット１０９に格納されたＸＭＬリスト１１２にマップするように適合される。
【００１６】
動作に際して、マッピングユニット１０６は、スプレッドシート記憶ユニット１０９からスプレッドシートデータを受け取り、ペイロードデータ記憶ユニット１１５からペイロードを受け取る。スプレッドシートデータは、（本明細書で「列(column)」とも呼ぶ）一群のフィールドによって一般に定義され得るＸＭＬリスト１１２を含む。通常、フィールドは計算され、またはマップされる。計算されたフィールドは式または定数値によって定義され、マップされたフィールドはペイロードデータへの「パス(path)」または「ポインタ(pointer)」によって定義される。マッピングユニット１０６は、フィールドパスを利用して、ペイロードデータから（「バインドノード(bind node)」と呼ばれることもある）ノードのリストを獲得することができ、次いで、各ノードがマッピングユニット１０６によってＸＭＬリスト１１２中の１行にマップされる。マッピングユニット１０６は、各ノードから所望のフィールドへのパスに従って、ＸＭＬリスト１１２内のすべてのフィールドにペイロードデータから値を取得することができる。
【００１７】
本発明の別の実施形態では、通信デバイス１０３は、ユーザにデータを表示し、ユーザ入力を受け取るように適合され得るユーザインターフェース１１８をさらに備える。ユーザインターフェース１１８は、マッピングユニット１０６と通信可能なように接続される。マッピングユニット１０６は、ユーザインターフェース１１８にマップされたＸＭＬリスト１１２を提供することができ、ユーザインターフェース１１８は、ディスプレイ（図示せず）を介してユーザにマップされたＸＭＬリスト１１２を表示することができる。ユーザインターフェース１１８が様々な実施形態および形式で設計され、単純な構成からより複雑な構成にまで及び得ることを、当分野の技術者は理解するであろう。本発明の例示的実施形態では、ユーザインターフェース１１８は、キーパッド、ディスプレイ、タッチスクリーンまたはその他の簡便な装置を備えることができ、また、その命令が処理ユニット２１２上で実行され得る、所定のタスクを実行するプログラムモジュールまたは機械命令も含むことができる。
【００１８】
さらに、通信デバイス１０３は、通信デバイス１０３からネットワーク１２４への通信を円滑に行わせるためのネットワークインターフェース１２１も備え。ネットワークインターフェース１２１は、マッピングユニット１０６およびネットワーク１２４と通信可能なように接続される。マッピングユニット１０６は、ネットワークインターフェース１２１にマップされたＸＭＬリスト１１２を提供することができ、ネットワークインターフェース１２１は、マップされたＸＭＬリスト１１２をそのネットワーク１２４内の別の通信デバイスに提供することができる。ネットワークインターフェース１２１は、通常、通信デバイス１０３のネットワークインターフェースカードや拡張カードといったハードウェア装置とすることができ、それが通信デバイス１０３とネットワーク１２４の間の接続を円滑に行わせる。図１には示さないが、ネットワークインターフェース１２１は、通信デバイス１０３とネットワーク１２４のアクセスポイント（図示せず）の間の無線通信を可能にする無線送信機および受信機も備え得る。
【００１９】
ネットワーク１２４は、通常、（無制限に複数のサーバまたはクライアント装置を含む）２つ以上の通信デバイス１０３のグループを接続するのに適したインフラストラクチャおよび設備を備えることを、当分野の技術者は理解するであろう。そのようなネットワーク１２４、通信デバイス１０３およびサーバは、それだけに限らないが、スター型、バス、リング型構成を含む、複数のトポロジで構成され得る。また、ネットワーク１２４、通信デバイス１０３、およびサーバは、それだけに限らないが、ピアツーピアやクライアント／サーバアーキテクチャを含む特定のアーキテクチャに属するものとして大きく類別され得る。さらに、ネットワーク１２４は、通信デバイス１０３またはサーバの地理的位置およびその種類によっても分類され得る。例えば、１つの建物の内部など、相互に近接して位置する複数のコンピュータシステムまたはサーバを接続するネットワーク１２４はローカルエリアネットワーク（ＬＡＮ）と呼ばれ、コンピュータシステムがさらに離れて位置する場合、そのネットワーク１２４は、一般に、インターネットなどの広域ネットワーク（ＷＡＮ）と呼ばれ、コンピュータシステムが大学構内や軍事施設などの限定された地域内に位置する場合、そのネットワークはキャンパスエリアネットワーク（ＣＡＮ）と呼ばれ、コンピュータシステムが市や町の域内で相互に接続される場合、そのネットワーク１２４はメトロポリタンエリアネットワーク（ＭＡＮ）と呼ばれ、コンピュータシステムがユーザの家庭内で相互接続される場合、そのネットワーク１２４はホームエリアネットワーク（ＨＡＮ）と呼ばれる。
【００２０】
通信可能なように接続することは、アナログ、デジタル、有線または無線通信チャネルを含む信号および／または媒体の双方向通信のための任意の適当な種類の接続を含み、またはそれを必要とすることを、当分野の技術者は理解するであろう。そのような通信チャネルは、銅線、光ファイバ、無線周波数、赤外線、衛星などの設備および媒体を利用し得る。
【００２１】
本発明のいくつかの実施形態は、ＸＭＬスプレッドシートデータ、ＸＭＬリスト、およびＸＭＬペイロードデータを参照するが、他の種類のデータ構成も本発明の範囲内で使用することができ、したがって、本発明は、ＸＭＬで構成されたデータだけに限られるものではないことを当分野の技術者は理解するであろう。
【００２２】
図２は、例示的実施形態に従って利用し得る、コンピューティング環境２００およびそのコンピュータシステム２１０、２８０のブロック図を示す。コンピューティング環境２００およびそのコンピュータシステム２１０、２８０は、本発明の実施に適したコンピューティング環境およびコンピュータシステムの一例にすぎず、本発明の使用または機能の範囲に関するどんな限定も示唆するものではない。また、コンピュータシステム２１０、２８０は、例示的コンピューティング環境２００に示す構成要素のいずれか１つまたはその組み合わせに関して、どんな依存性や要件を持つものであるとも解釈されるべきではない。
【００２３】
このように、本発明は、他の多数の汎用または専用コンピューティングシステム環境または構成と共に動作することを理解すべきである。本発明と共に使用するのにふさわしい、またはそれに適していると考えられる公知の通信デバイス１０３、コンピューティングシステム、環境、および／または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ機器、マイクロプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークパーソナルコンピュータ、ミニコンピュータ、メインフレームコンピュータ、前述のシステムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
【００２４】
また、本実施形態は、コンピュータシステムによって実行される、プログラムモジュールなどのコンピュータ実行可能命令を含む一般的状況で説明することができる。一般に、プログラムモジュールには、個々のタスクを実行し、または個々の抽象データ型を実施するルーチン、プログラム、プログラミング、オブジェクト、コンポーネント、データ、および／またはデータ構造が含まれる。本発明は、通信ネットワークを介してリンクされたリモート処理ユニットによってタスクが実行される分散コンピューティング環境で実施される。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモート両方の記憶ユニット中のコンピュータ記憶媒体に、無制限に、位置することができる。
【００２５】
図２を参照すると、本発明の例示的コンピューティング環境２００は、コンピュータシステム２１０の形で汎用コンピューティングデバイスを含む。コンピュータシステム２１０の構成要素には、処理ユニット２２０、システムメモリ２３０、およびシステムメモリ２３０を含む様々なシステム構成要素を、双方向データおよび／または命令通信のために処理ユニット２２０に結合するシステムバス２２１を含むことができる。システムバス２２１は、様々なバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかの種類のバス構造のいずれでもよい。例をあげると、それだけに限らないが、そのようなアーキテクチャには、産業標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子装置規格化協会（ＶＥＳＡ）ローカルバス、および（「メザニンバス」とも呼ばれる）周辺装置相互接続（ＰＣＩ）バスが含まれる。
【００２６】
コンピュータシステム２１０は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体には、コンピュータシステム２１０によってアクセスされ、そこから読み取られ、そこに書き込まれ得る任意の使用可能な媒体が含まれ、それには揮発性媒体と不揮発性媒体の両方、取り外し可能媒体と取り外し不能媒体の両方が含まれ得る。例をあげると、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体が含まれる。コンピュータ記憶媒体には、コンピュータ可読命令、データ、データ構造、プログラムモジュール、プログラム、プログラミング、ルーチンなどの情報を記憶するための任意の方法または技術で実施された、揮発性と不揮発性両方、取り外し可能と取り外し不能両方の媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなどのメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）などの光ディスク記憶、磁気カセット、磁気テープ、光磁気記憶ユニット、磁気ディスク記憶などの磁気記憶ユニット、あるいは所望の情報の記憶に使用することができ、コンピュータシステム２１０によってアクセスされ得る他の任意の媒体が含まれる。通信媒体は、通常、コンピュータ可読命令、データ、データ構造、プログラムモジュール、プログラム、プログラミング、またはルーチンを、搬送波または他の搬送機構などの変調データ信号として実施し、任意の情報配信媒体を含む。「変調データ信号(modulated data)」という用語は、その特性の１つまたは複数が、その信号に情報を符号化するような方式で設定または変更されている信号を意味する。例をあげると、通信媒体には、有線ネットワークや直接配線接続などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体が含まれる。上記のいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含まれる。
【００２７】
システムメモリ２３０は、読み取り専用メモリ（ＲＯＭ）２３１やランダムアクセスメモリ（ＲＡＭ）２３２などの揮発性および／または不揮発性メモリの形でコンピュータ記憶媒体を含む。始動時などに、コンピュータ２１０内の要素間の情報転送を指図する基本ルーチンを含む基本入出力システム（ＢＩＯＳ）２３３は、通常、ＲＯＭ２３１に記憶される。ＲＡＭ２３２は、通常、処理ユニット２２０によって直ちにアクセス可能であり、かつ／またはそれによって現在処理されているデータおよび／またはプログラム命令を格納する。例として、図２には、ＲＡＭ２３２にその全部または一部が存在する、オペレーティングシステム２３４、アプリケーションプログラム２３５、その他のプログラムモジュール２３６、およびプログラムデータ２３７を示す。
【００２８】
コンピュータ２１０は、他の取り外し可能／取り外し不能、揮発性／不揮発性コンピュータ記憶媒体も含むことができる。例にすぎないが、図２には、取り外し不能、不揮発性磁気媒体との間で読み取りまたは書込みを行うハードディスクドライブ２４１、取り外し可能、不揮発性磁気ディスク２５２との間で読み取りまたは書込みを行う磁気ディスクドライブ２５１、およびＣＤ−ＲＯＭや他の光媒体などの取り外し可能、不揮発性光ディスク２５６との間で読み取りまたは書込みを行う光ディスクドライブ２５５を示す。例示的コンピューティング環境２００に含まれ得る他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ２４１は、通常、インターフェース２４０などの取り外し不能メモリインターフェースを介してシステムバス２２１に接続され、磁気ディスクドライブ２５１および光ディスクドライブ２５５は、通常、インターフェース２５０などの取り外し可能メモリインターフェースによってシステムバス２２１に接続される。
【００２９】
図２に示す前述の各ドライブ２４１、２５１、２５５およびそれらに関連するコンピュータ記憶媒体は、コンピュータシステム２１０のためのコンピュータ可読命令、データ、データ構造、プログラムモジュール、プログラム、プログラミング、またはルーチンの記憶を提供する。図２では、例えば、ハードディスクドライブ２４１は、オペレーティングシステム２４４、アプリケーションプログラム２４５、その他のプログラムモジュール２４６、およびプログラムデータ２４７を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム２３４、アプリケーションプログラム２３５、その他のプログラムモジュール２３６、およびプログラムデータ２３７と同じでも、異なっていてもよいことに留意されたい。オペレーティングシステム２４４、アプリケーションプログラム２４５、その他のプログラムモジュール２４６、およびプログラムデータ２４７には、少なくともそれらがオペレーティングシステム２３４、アプリケーションプログラム２３５、その他のプログラムモジュール２３６、およびプログラムデータ２３７と異なるコピーであることを示すために、異なる番号が付されている。ユーザは、キーボード２６２や、マウス、トラックボール、タッチパッドなどと通常呼ばれるポインティングデバイス２６１といった接続入力装置を介してコンピュータシステム２１０にコマンドおよび情報を入力することができる。他の接続入力装置（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどが含まれる。上記その他の入力装置は、しばしば、システムバス２２１に結合されたユーザ入力インターフェース２６０を介して処理ユニット２２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）といった他のインターフェースおよびバス構造によっても接続される。モニタ２９１または他の種類の表示装置もまた、ビデオインターフェース２９０などのインターフェースを介してシステムバス２２１に接続される。モニタ２９１以外に、コンピュータシステム２１０は、スピーカ２９７やプリンタ２９６など他の周辺出力装置を含むこともでき、それらは、出力周辺インターフェース２９５を介して接続される。
【００３０】
コンピュータシステム２１０は、リモートコンピュータシステム２８０など、１つまたは複数のリモートコンピュータシステムへの双方向通信接続を使用したネットワーク化環境で動作する。リモートコンピュータシステム２８０は、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ、ルータ、ネットワークＰＣ、ピアデバイスなどの一般的ネットワークノードとすることができ、図２にはリモートコンピュータシステム２８０の記憶ユニット２８１だけしか示していないが、通常は、コンピュータシステム２１０に関連して前述した要素の多くまたはすべてを含む。図２に示す双方向通信接続リンクには、ローカルエリアネットワーク（ＬＡＮ）２７１および広域ネットワーク（ＷＡＮ）２７３が含まれるが、他のネットワークも含まれる。そのようなネットワークは、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットではよく見られるものである。
【００３１】
ＬＡＮ２７１と通信可能なように接続されるとき、コンピュータシステム２１０はネットワークインターフェースまたはアダプタ２７０を介してＬＡＮ２７１に接続する。ＷＡＮ２７３に通信可能なように接続されるとき、コンピュータシステム２１０は、通常、モデム２７２、またはインターネットなどのＷＡＮ２７３を介して通信リンクを確立する他の手段を含む。モデム２７２は、内蔵でも外付けでもよく、ユーザ入力インターフェース２６０または他の適当な機構を介してシステムバス２２１に接続される。ネットワーク化環境では、コンピュータシステム２１０に関連して示すプログラムモジュール、またはその一部は、リモート記憶ユニット２８１にも格納される。例として、図２には、リモート記憶ユニット２８１にあるものとしてリモートアプリケーションプログラム２８５を示す。図示のネットワーク接続は例示的なものであり、コンピュータ間で双方向通信リンクを確立する他の手段も使用され得ることが理解されるであろう。
【００３２】
図３は、本発明の例示的実施形態による、スプレッドシートリスト１１２を含むスプレッドシートデータの擬似コード表現(pseudo-code representation)３００を示す。前述のように、スプレッドシート記憶ユニット１０９は、マッピングユニット１０６によってペイロードデータを用いてマップされるスプレッドシートリスト１１２を含む。本発明の例示的実施形態では、スプレッドシートリスト１１２はＸＭＬコードで構成され、それ故に、以後、これをＸＭＬリスト１１２という。
【００３３】
ＸＭＬは、複数のシステム間でのデータの定義、検証、伝送、および解釈を可能にするカスタマイズ可能なタグを提供する。ＸＭＬが標準汎用マークアップ言語（ＳＧＭＬ）から派生したものであり、広く受け入れられるデータ構成のためのコード形式を提供することを当分野の技術者は理解するであろう。一般に、ＸＭＬタグは、文書またはコードのその部分がどのようにフォーマットされ、または解釈されるべきかを示す、文書またはコード内で使用されるコマンドである。ＸＭＬタグは、通常、対にされ、開始タグおよび終了タグを含む。開始タグ(beginning tag)は、しばしば、「〜未満(less than)」（「＜」）記号と「〜超(greater than)」（「＞」）記号の間のタグ名によって表される。終了タグ(ending tag)は、普通、「〜未満」記号（「＜」）の後にスラッシュ（「／」）がつくことを除いて開始タグと同一である。例えば、範囲要素(range element)３０６は、「＜ｒａｎｇｅ＞」タグで開始し、「＜／ｒａｎｇｅ＞」タグで終了する。開始「＜ｒａｎｇｅ＞」タグと終了「＜／ｒａｎｇｅ＞」タグの間のテキストまたはコードのすべては、範囲要素３０６の一部と解釈される。
【００３４】
より詳細には、図３には、そこに含まれるＸＭＬリスト１１２を含めて、スプレッドシートワークブックを記述するＸＭＬスプレッドシート（ＸＭＬＳＳ）の一部が示されている。エントリ要素(entry element)３０３（例えば＜ｅｎｔｒｙ  ｘ２：ｉｄ＝“ｌｉｓｔ１”＞．．．＜／ｅｎｔｒｙ＞）は、スプレッドシートデータ内の単一のＸＭＬリスト１１２を表す。ＸＭＬリスト１１２は、フィールドと呼ばれる一群の列によって定義され、それはＸＭＬリスト１１２では、フィールド要素３１２Ａ〜３１２Ｆ（例えば＜ｆｉｅｌｄ＞．．．＜／ｆｉｅｌｄ＞）によって表される。フィールド要素(field element)３１２Ａ〜３１２Ｆは、ゆえに、マッピングユニット１０６によるペイロードデータのＸＭＬリスト１１２へのマッピングから生じる列(column)を表す。
【００３５】
フィールドは計算され、またはマップされる。計算されたフィールドは、式または定数値によって定義される。マップされたフィールドは、ペイロードデータへのパスによって定義される。図３に示すように、フィールドパスは、ＸＭＬリスト１１２では、ｘｐａｔｈ要素(element)３０９Ｂ〜３０９Ｇ（例えば＜ｘｐａｔｈ＞．．．＜／ｘｐａｔｈ＞）によって表される。エントリ要素３０３もパス（例えば「ルートパス(root path)」と呼ばれることのあるパス）を持つことができ、ｘｐａｔｈ要素３０９Ａで表される。フィールドパスは、エントリパスへの相対(relative)ｘｐａｔｈ３０９Ｂ〜３０９Ｇであり、ゆえに、フィールドへのフルパス(full path)は、エントリパスをフィールドパスと連結(concatenate)することを必要とする。例えば、フィールド要素３１２Ｂのｘｐａｔｈ要素３０９Ｃで表されるフィールドパスは、「ＤＥＰＡＲＴＭＥＮＴＩＤ」である。しかしながら、フィールド要素３１２Ｂで表されるフィールドのフルパスは、ｘｐａｔｈ要素３０９Ａで表されるエントリｘｐａｔｈを、ｘｐａｔｈ要素３０９Ｃで表されるフィールドパスと結合することを必要とし、ゆえに、フルパス(full path)「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＤＥＰＡＲＴＭＥＮＴＩＤ」を生じる。
【００３６】
また、フィールドは、文字列(string)、変数(variable)、整数(integer)といった特定のデータ(particular data)または定義型(definition type)と関連付けられる。フィールドのデータまたは定義型は、図３に示すように、ｘｓｄｔｙｐｅ要素３１５Ａ〜３１５Ｆで表される。上記の例を用いると、フィールド要素３１２Ｂで表されるフィールドのｘｓｄｔｙｐｅ３１５Ｂで表されるデータまたは定義型は「ＳＴＲＩＮＧ」である。
【００３７】
ＸＭＬリスト１１２は多数の配列として構成され、様々なフィールドおよびパスを含み得ることを、当分野の技術者は理解するであろう。したがって、図３に示すスプレッドシートデータは例示のためのものにすぎず、本発明の範囲を限定するものではない。
【００３８】
図４は、本発明の例示的実施形態による、ペイロードデータの擬似コード表現４００を示す。前述のように、ペイロードデータ記憶ユニット１１５は、スプレッドシートデータのＸＭＬリスト１１２にマップされるペイロードデータを含む。本発明の例示的実施形態では、ペイロードデータはＸＭＬコードとして構成される。ペイロードデータは、一般に、ＸＭＬリスト１１２で定義され、または記述されたフィールドに対応する。したがって、ＸＭＬリスト１１２で定義されたパスは、ペイロードデータ内のＸＭＬタグと相関している。
【００３９】
例えば、図４に示すペイロードデータは、図３で定義されるＸＭＬリストに関連する。より詳細には、図４に示すペイロード要素４０３、４０６、４０９、４１０、４１２、４１５は、図３に示すフルフィールドパス(full field path)に対応する。表１は、図３のフルフィールドパスと図４のペイロード要素との関係を示す。
【００４０】
【表１−１】
0004711708.tif 000002
【００４１】
【表１−２】
0004711708.tif 000003
【００４２】
【表１−３】
0004711708.tif 000004
【００４３】
表１に示すように、部署名(department name)要素(element)４０３Ａ、４０３Ｂは、フルフィールドパス(full field path)「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／＠ＮＡＭＥ」に対応し、部署ＩＤ要素４０６Ａ、４０６Ｂは、フルフィールドパス「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＤＥＰＡＲＴＭＥＮＴＩＤ」に対応し、人物名(person name)要素４１２Ａ〜４１２Ｆはフルフィールドパス「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＭＡＮＡＧＥＲＳ／ＰＥＲＳＯＮ／＠ＮＡＭＥ」および「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＣＯＮＴＲＡＣＴＯＲＳ／ＰＥＲＳＯＮ／＠ＮＡＭＥ」に対応し、人物ＩＤ要素４１５Ａ〜４１５Ｆは、フルフィールドパス「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＭＡＮＡＧＥＲＳ／ＰＥＲＳＯＮ／ＰＥＲＳＯＮＩＤ」および「ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＣＯＮＴＲＡＣＴＯＲＳ／ＰＥＲＳＯＮ／ＰＥＲＳＯＮＩＤ」に対応する。本発明の例示的実施形態では、フィールドパス中の「／＠」記号は、そのフィールドが属性であることを示し、フィールドパス中の「／」記号は、そのフィールドが要素であることを示す。したがって、「ＮＡＭＥ」は、パス「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／＠ＮＡＭＥ」で示すように「ＤＥＰＡＲＴＭＥＮＴ」の属性であり、「ＤＥＰＡＲＴＭＥＮＴＩＤ」は、パス「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＤＥＰＡＲＴＭＥＮＴＩＤ」で示すように「ＤＥＰＡＲＴＭＥＮＴ」の要素である。
【００４４】
ペイロードデータの構成は、ＸＭＬリスト１１２の構成に依存し、または一致し得ることを、当分野の技術者は理解するであろう。したがって、図４に示すペイロードデータは例示のためのものにすぎず、本発明の範囲を限定するものではない。
【００４５】
図５は、本発明の例示的実施形態による、ペイロードデータのブロック図を示す。図５に示すペイロードデータは、ＸＭＬ要素タグがないことを除けば、図４を参照して先に論じたペイロードデータに似ている。より詳細には、図５は、スプレッドシートデータ（図３参照）のフィールドパスおよびそれに関連したペイロードデータの階層的特性を示すものである。
【００４６】
本発明の例示的実施形態では、マッピングユニット１０６は、（以下で、図７を参照してより詳細に説明する）ＸＭＬリスト１１２中の各フィールドパスの「親(parent)」パスを決定することができる。特定のフィールドパスの親パス(parent path)は、フィールドパスをそのパスの１段階前までたどることによって決定される。言い換えると、親パスは、階層中のそのフィールドパスの１段階前である。例えば、それだけに限らないが、フィールドパス「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＭＡＮＡＧＥＲＳ／ＰＥＲＳＯＮ／ＰＥＲＳＯＮＩＤ／」は、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＭＡＮＡＧＥＲＳ／ＰＥＲＳＯＮ／」という親パスを持ち得る。さらに、１つの親パスは、属性および要素フィールドのために計算される。したがって、属性フィールドパス(attribute field path)「／ａ／ｂ／＠ｃ」および要素フィールドパス「／ａ／ｂ／ｃ」は、同じ親パス「／ａ／ｂ／」を持ち得る。
【００４７】
図５には、１つのフィールドパスが対応するペイロードデータまでどのようにたどられ得るかも示されている。例えば、マッピングユニット１０６は、フィールドパス「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＤＥＰＡＲＴＭＥＮＴＩＤ／」をたどり、対応する値「１００１」、「１００２」を発見することができる。反対に、フィールドパスは、ペイロードデータからも決定される。例えば、ペイロードデータ「Ｊｏｈｎ」は、対応するフィールドパス「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＭＡＮＡＧＥＲＳ／ＰＥＲＳＯＮ／＠ＮＡＭＥ」を持ち得る。
【００４８】
図６は、本発明の例示的実施形態による、マップされたスプレッドシートリスト１１２を示す。前述のように、マッピングユニット１０６は、ペイロードデータを、スプレッドシートデータのＸＭＬリスト１１２にマップすることができる。そのようなマッピングはスキーマを利用しないが、結果として生じるマップされたスプレッドシートリスト１１２は、実質上、「スキーマによりマップされた(schema-mapped)」スプレッドシートリスト(spreadsheet list)と類似している。
【００４９】
本発明の例示的実施形態では、マッピングユニット１０６は、（以下、図７を参照してより詳細に説明する）ＸＭＬリスト１１２での「ボトム」パス(bottom path)を指定することができる。通常、ボトムパスは、（図５を参照して前述した）以前に生成された親パスのうちの最長のパスである。複数の親パスが最長パスであるとみなされる場合、最初に生成された親パスをボトムパスに指定することができ、あるいは最長パスとみなされ得る親パスのそれぞれを、（以下で図７を参照してより詳細に説明する）分岐ボトムパスに指定することができる。
【００５０】
マッピングユニット１０６は、ボトムパスを用いて、ＸＭＬリスト１１２の、バインドノードなどのノードを指定することができる。通常、それらのノードは、マップされたＸＭＬリスト１１２中の１行に割り当てられ得る。それらのノードは、ＸＭＬリスト１１２の各行ごとのインデックスとして働くことができる。より詳細には、それらのノードは、マップされたＸＭＬリスト１１２中に存在する行数を示す。
【００５１】
例えば、図３に示す各フィールドの親パスは、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ」（例えば、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／＠ＮＡＭＥ」の親パス）、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ」（例えば「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＤＥＰＡＲＴＭＥＮＴＩＤ）の親パス）、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＭＡＮＡＧＥＲＳ／ＰＥＲＳＯＮ」（例えば、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＭＡＮＡＧＥＲＳ／ＰＥＲＳＯＮ／＠ＮＡＭＥ」の親パス）、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＭＡＮＡＧＥＲＳ／ＰＥＲＳＯＮ」（例えば、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＭＡＮＡＧＥＲＳ／ＰＥＲＳＯＮ／ＰＥＲＳＯＮＩＤ」の親パス）、「ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＣＯＮＴＲＡＣＴＯＲＳ／ＰＥＲＳＯＮ」（例えば、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＣＯＮＴＲＡＣＴＯＲＳ／ＰＥＲＳＯＮ／＠ＮＡＭＥ」の親パス）、および「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＣＯＮＴＲＡＣＴＯＲＳ／ＰＥＲＳＯＮ」（例えば、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＣＯＮＴＲＡＣＴＯＲＳ／ＰＥＲＳＯＮ／ＰＥＲＳＯＮＩＤ」の親パス）である。マッピングユニット１０６は、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＭＡＮＡＧＥＲＳ／ＰＥＲＳＯＮ」（例えば、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＭＡＮＡＧＥＲＳ／ＰＥＲＳＯＮ＠ＮＡＭＥ」の親パス）および「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＣＯＮＴＲＡＣＴＯＲＳ／ＰＥＲＳＯＮ」（例えば、「／ＣＯＲＰ／ＤＥＰＡＲＴＭＥＮＴ／ＣＯＮＴＲＡＣＴＯＲＳ／ＰＥＲＳＯＮ／＠ＮＡＭＥ」の親パス）をその分岐ボトムパスに指定することができる。その理由は、それらが生成された最長親パスであり、どちらも相互の一部でもなく、相互に等しくもないからである。各分岐ボトムパスごとに、マッピングユニット１０６は、分岐ボトムパスをたどってその結果ノードを決定する。マップされたＸＭＬリスト１１２の行６２４、６２７、６３０、６３３、６３６、６３９および列６０３、６０６、６０９、６１２、６１５、６１８の値は、各分岐ボトムパスを対応するフィールドパスまでたどることにより決定される。
【００５２】
図７Ａ〜図７Ｃは、本発明の例示的実施形態による、ペイロードデータをスプレッドシートリスト１１２にマップする方法７００の流れ図を示す。マッピングユニット１０６は、スキーマを使用せずに、ペイロード記憶ユニット１１５から受け取ったペイロードデータを、スプレッドシート記憶ユニット１０９から受け取ったＸＭＬリストにマップする。
【００５３】
ステップ７０１において開始されると、マッピングユニット１０６はステップ７０３に進み、そこで、スプレッドシート記憶ユニット１０９からスプレッドシートデータを受け取る。スプレッドシートデータはＸＭＬリスト１１２を含む。次に、ステップ７０６において、マッピングユニット１０６は、任意のＸＭＬリスト１１２が評価される必要があるか否かを判定する。ステップ７０６において、マッピングユニット１０６が、ＸＭＬリスト１１２を評価する必要がないと判定した場合、マッピングユニット１０６は、ステップ７１５において、方法７００による処理を停止する。しかしながら、ステップ７０６において、マッピングユニット１０６が、評価されるべきＸＭＬリスト１１２が存在すると判定した場合、マッピングユニット１０６はステップ７０９に進み、そこで、ＸＭＬリスト１１２内の任意のフィールドパスが評価される必要があるか否かを判定する。ステップ７０９において、マッピングユニット１０６が、フィールドパスが評価される必要がないと判定した場合、マッピングユニット１０６は、以下で説明するステップ７１８に進む。しかしながら、ステップ７０９において、マッピングユニット１０６が、評価されるべきフィールドパスが存在すると判定した場合、マッピングユニット１０６はステップ７１２に進み、そこで、フィールドパスの親パスを生成する。次いで、マッピングユニット１０６は、前述のステップ７０９に進む。
【００５４】
ステップ７１８において、マッピングユニット１０６は、ＸＭＬリスト１１２のフィールドパスから親パスが生成されたか否かを判定する。ステップ７１８において、マッピングユニット１０６が、親パスが生成されなかったと判定した場合、マッピングユニット１０６は、前述のステップ７０６に進む。そうではなく、ステップ７１８において、マッピングユニット１０６が、親パスが生成されたと判定した場合、マッピングユニット１０６はステップ７２１に進み、そこで、相互にその一部ではない最長の親パスを識別する（そのリストを作成する）。次に、ステップ７２４において、マッピングユニット１０６は、最長親パスリスト内に重複が存在するか否かを判定する。ステップ７２４において、マッピングユニット１０６が、最長親パスリスト内に重複が存在しないと判定した場合、マッピングユニット１０６は、以下で説明するステップ７３０に進む。しかしながら、ステップ７２４において、マッピングユニット１０６が、最長親パスリスト内に重複が存在すると判定した場合、マッピングユニット１０６はステップ７２７に進み、そこで、最長親パスリスト内のすべての重複を除去する。
【００５５】
次に、ステップ７３０において、マッピングユニット１０６は、最長親パスのそれぞれをボトムパス（本明細書では「分岐ボトムパス(branch bottom path)」ともいう）に指定し、各ボトムパスは、異なる分岐を表す。次いで、ステップ７３３において、マッピングユニット１０６は、ＸＭＬリストの各フィールドを、そのフィールドの親パスが、関連した分岐ボトムパスの一部になるように、１つまたは複数の分岐ボトムパスと関連付ける。１つのフィールドの親パスは、複数の分岐ボトムパスの一部とすることができる。次いで、マッピングユニット１０６はステップ７３６に進み、そこで、任意の分岐ボトムパスがさらに評価される必要があるか否かを判定する。ステップ７３６において、マッピングユニット１０６が、分岐ボトムパスが評価される必要がないと判定した場合、マッピングユニット１０６は、ステップ７４５において、方法７００による処理を停止する。そうではなく、ステップ７３６において、マッピングユニット１０６が、さらに評価される必要のある分岐ボトムパスが存在すると判定した場合、マッピングユニット１０６はステップ７３９に進み、そこで、ペイロードデータでの分岐ボトムパスを評価してバインドノードのリストを生成する。各親パスを１つまたは複数の分岐ボトムパスと共にグループ化すれば、ＸＭＬリストの各フィールド（列）の値は、もしあれば、そのバインドノードからトラバースすることによりペイロードデータから獲得され得る。次に、ステップ７４２において、マッピングユニット１０６は、その行のバインドノードから各対応するフィールドパスまでたどることによって、ある行内の分岐ボトムパスに関連したすべてのフィールド（列）のペイロードデータから値を獲得する。フィールドが、その分岐ボトムパスに関連付けられていない親パスに属する場合、そのフィールドの値は空のままとされる。次いで、マッピングユニット１０６は、前述のステップ７３６に進む。
【００５６】
以上、本発明を詳細に説明してきたが、本明細書で前述し、特許請求の範囲で定義される本発明の精神および範囲内において、各種の変形および改変が実施可能である。また、特許請求の範囲に記載したすべての手段および機能要素について、対応する構造、材料、動作、およびその均等物は、その諸機能を、明確に特許請求される他の特許請求要素と組み合わせて実行する任意の構造、材料、または動作を含むものである。
【図面の簡単な説明】
【００５７】
【図１】本発明の例示的実施形態によるスプレッドシートデータマッピングシステムを示すブロック図である。
【図２】本発明の例示的実施形態に従って利用し得るコンピューティング環境およびそのコンピュータシステムを示すブロック図である。
【図３】本発明の例示的実施形態によるスプレッドシートリストを含んだスプレッドシートデータを示す、擬似コード表現の図である。
【図４】本発明の例示的実施形態によるペイロードデータを示す、擬似コード表現の図である。
【図５】本発明の例示的実施形態によるペイロードデータを示すブロック図である。
【図６】本発明の例示的実施形態による、マップされたスプレッドシートリストを示す図である。
【図７Ａ】本発明の例示的実施形態による、ペイロードデータをスプレッドシートリストにマップする方法を示す流れ図である。
【図７Ｂ】本発明の例示的実施形態による、ペイロードデータをスプレッドシートリストにマップする方法を示す流れ図である。
【図７Ｃ】本発明の例示的実施形態による、ペイロードデータをスプレッドシートリストにマップする方法を示す流れ図である。
【符号の説明】
【００５８】
１０３  通信デバイス
１０６  マッピングユニット
１０９  スプレッドシート記憶ユニット
１１２  ＸＭＬリスト
１１５  ペイロードデータ記憶ユニット
１１８  ユーザインターフェース
１２１  ネットワークインターフェース
１２４  ネットワーク
２２０  処理ユニット
２２１  システムバス
２３４  オペレーティングシステム
２４４  オペレーティングシステム
２３５  アプリケーションプログラム
２４５  アプリケーションプログラム
２３６  他のプログラムモジュール
２４６  他のプログラムモジュール
２３７  プログラムデータ
２４７  プログラムデータ
２４０  取り外し不能不揮発性メモリインターフェース
２５０  取り外し可能不揮発性メモリインターフェース
２６０  ユーザ入力インターフェース
２６１  マウス
２６２  キーボード
２７０  ネットワークインターフェース
２７２  モデム
２８０  リモートコンピュータ
２８５  リモートアプリケーションプログラム
２９０  ビデオインターフェース
２９１  モニタ
２９５  出力周辺インターフェース
２９６  プリンタ
２９７  スピーカ
【図１】
0004711708.tif 000005
【図２】
0004711708.tif 000006
【図３】
0004711708.tif 000007
【図４】
0004711708.tif 000008
【図５】
0004711708.tif 000009
【図６】
0004711708.tif 000010
【図７Ａ】
0004711708.tif 000011
【図７Ｂ】
0004711708.tif 000012
【図７Ｃ】
0004711708.tif 000013