JP4711708B2 - ネストされたテーブルを用いたスキーマレスデータマッピングのためのシステムおよび方法 - Google Patents

ネストされたテーブルを用いたスキーマレスデータマッピングのためのシステムおよび方法 Download PDF

Info

Publication number
JP4711708B2
JP4711708B2 JP2005080091A JP2005080091A JP4711708B2 JP 4711708 B2 JP4711708 B2 JP 4711708B2 JP 2005080091 A JP2005080091 A JP 2005080091A JP 2005080091 A JP2005080091 A JP 2005080091A JP 4711708 B2 JP4711708 B2 JP 4711708B2
Authority
JP
Japan
Prior art keywords
path
spreadsheet
parent
payload data
list
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
JP2005080091A
Other languages
English (en)
Other versions
JP2005302008A (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 JP2005302008A publication Critical patent/JP2005302008A/ja
Application granted granted Critical
Publication of JP4711708B2 publication Critical patent/JP4711708B2/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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • 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/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • 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/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • 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
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Description

ネストされたテーブル(nested table)を用いたスキーマレス(schemaless)データマッピング(data mapping)のためのシステムおよび方法に関する。
本発明は、一般に、データマッピングのシステムおよび方法に関し、より詳細には、スキーマ(schema)を使用しないデータマッピングのシステムおよび方法に関する。
アプリケーション間で、特にインターネットを介してデータを移動するために、拡張可能マークアップ言語(XML)がより普及するにつれて、一般のアプリケーションは、XMLの使用によるWeb関連の諸機能(例えば、Webへの文書公開など)を実行するようになっている。1つのそのようなアプリケーションが、ワシントン州レッドモンド所在のマイクロソフト社が提供するMICROSOFT EXCELである。所定のスキーマに適合するXMLペイロードデータを表示するためにXMLリストが導入されている。通常、XMLペイロードデータとXMLリストの構成の関係は、スプレッドシートワークブック定義(spreadsheet workbook definition)の一部であるXMLマップ(map)によって定義される。XMLマップは、ワークブック中のXMLリストの位置(location)、マップされる列数(number of columns)、および各列(column)に関連した要素(element)または属性(attribute)の種類(type)を決定することができる。XMLスプレッドシート(XMLSS)ファイルは、そのワークブックが含むすべてのXMLリストを含むスプレッドシートワークブックを記述する。所定のスキーマの諸要素がグリッド上にマップされてマップされたXMLリストが作成され、各行は、ペイロードデータ(payload data)のノードインスタンス(node instance)を表す。一般には、このスキーマがXMLペイロードデータの形状を定義する。
スプレッドシートアプリケーションがインターネットを介した有効な対話性を提供するためには、そのスプレッドシートアプリケーションは、所与のワークブックが、独立型システム上と同じように、ネットワークを介してロードされ、表示されることを保証しなければならない。この忠実度の重要な部分が、ペイロードデータのXMLリストへのマッピングである。そのようなマッピングは、所定のスキーマの使用を必要とする。
残念ながら、XMLペイロードデータをXMLリストにマップする所定のスキーマの確実性は疑わしいことがある。例えば、スキーマが使用不能であり、または損なわれている場合、そのデータは適正にマップされないことがある。さらに、スキーマのペイロードデータおよびXMLリストへの適用は、コンピュータ処理ユニット(CPU)による集中処理を必要とする。そのようなプロセッサへの負担は、サーバやハンドヘルド機器などのコンピューティングシステムにとって実際的でなかったり、不都合であったりする。
スキーマを使用せずにペイロードデータをスプレッドシートリストにマップすることは、ネストされたテーブル(nested table)をマップすることの複雑さのために、難しいと考えられる。ネストされたテーブルは、しばしば、1つのテーブルが複数のテーブル(例えばサブテーブル(sub-table)など)を含むように、入り組んだペイロードデータを表示するのに使用される。ネストされたテーブルの再帰的性質は、相互に関連するペイロードデータの表示を可能にする。
したがって、スキーマを使用せずにペイロードデータをスプレッドシートリストにマップするシステムおよび方法が求められている。
また、その結果がスキーマを用いたデータマッピングと実質的に類似したものになる、スキーマを使用せずにペイロードデータをスプレッドシートリストにマップするシステムおよび方法も求められている。
さらに、スキーマを使用せずに、ネストされたテーブルの実施をサポートすると同時に、ペイロードデータをスプレッドシートリストにマップするシステムおよび方法も求められている。
本発明は、ペイロードデータを、スプレッドシートデータのスプレッドシートリスト(XMLリストなど)にマップするシステムおよび方法を含む。より詳細には、本発明は、スキーマを使用せずに、ネストされたテーブルの実施をサポートすると同時に、ペイロードデータをスプレッドシートリストにマップするシステムを含む。スプレッドシートリスト(spreadsheet list)を受け取った後、本発明は、そのスプレッドシートリストで定義された各フィールドパス(field path)の親パス(parent path)を生成(geneate)する。最長の親パス(longest parent path)(例えばボトムパス(bottom path)など)を使用して、ペイロードデータから1組のバインドノード(a set of bind nodes)が生成される。本発明は、各バインドノードをスプレッドシートリスト中の1行(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)を低減させる。また、そのような依存性(例えば、プロセッサ集中データマッピングなど)の除去により、コンピュータ処理ユニットの貴重なリソースがより重要なタスクに解放される。
本発明の他の特徴および利点は、添付の図面と併せて読むことにより明らかになるであろう。
図面中においける類似の番号は、複数の図を通して類似の構成要素またはステップを表す。図1は、本発明の例示的実施形態による、スプレッドシートデータマッピングシステム100のブロック図を示す。スプレッドシートデータマッピングシステム100は、スプレッドシート記憶ユニット109、ペイロードデータ記憶ユニット115、マッピングユニット106を含む通信デバイス103を備え得る。通信デバイス103は、以下で図2を参照してより詳細に説明する公知のコンピューティングシステム、環境、および/または構成に含まれるものと類似のハードウェアおよびソフトウェア構成要素によってサポートされ得る。
スプレッドシート記憶ユニット109は、マッピングユニット106と通信可能なように接続される。スプレッドシート記憶措置109は、図3を参照してより詳細に説明する、拡張可能マークアップ言語(XML)リスト112などのスプレッドシートリストを含むスプレッドシートデータを格納する。スプレッドシート記憶ユニット109は、ランダムアクセスメモリ(RAM)、フラッシュメモリ、磁気メモリ装置、光メモリ装置、ハードディスクドライブ、取り外し可能揮発性または不揮発性メモリ装置、光記憶媒体、磁気記憶媒体、RAMメモリカードを含む、データを格納し、取り出すことのできるメモリ装置を備える。代替実施形態として、スプレッドシート記憶ユニット109は、有線および/または無線ネットワークシステムを介してアクセス可能なリモート記憶設備を備えることもできる。また、スプレッドシート記憶ユニット109は、前述のような1次および2次メモリ装置の多段システムを含むメモリシステムも備え得る。この1次メモリ装置および2次メモリ装置は、互いのためのキャッシュとして動作することもでき、2次メモリ装置が1次メモリ装置のバックアップとして働くこともできる。別の構成では、スプレッドシート記憶ユニット109は、単純なデータベースファイルとして、あるいはSQLなどの問い合わせ言語を用いたサーチ可能なリレーショナルデータベースとして構成されたメモリ装置も備えることができる。
ペイロードデータ記憶ユニット115は、マッピングユニット106と通信可能なように接続される。ペイロードデータ記憶ユニット115は、スプレッドシートデータの対応するXMLリスト112にマップされ得るペイロードデータを格納する。ペイロードデータについては、以下で図4を参照してより詳細に説明する。ペイロードデータ記憶ユニット115は、スプレッドシート記憶ユニット109を参照して前述したメモリ装置と類似のメモリ装置を備える。
マッピングユニット106は、スプレッドシート記憶ユニット109およびペイロードデータ記憶ユニット115と通信可能なように接続される。マッピングユニット106は、本明細書で述べるようにタスクを実行し、能力および機能を提供するのに適したハードウェアおよびソフトウェア(図2参照)を用いて構成される。マッピングユニット106は、ペイロードデータ記憶ユニット115に格納されたペイロードデータを、スプレッドシート記憶ユニット109に格納されたXMLリスト112にマップするように適合される。
動作に際して、マッピングユニット106は、スプレッドシート記憶ユニット109からスプレッドシートデータを受け取り、ペイロードデータ記憶ユニット115からペイロードを受け取る。スプレッドシートデータは、(本明細書で「列(column)」とも呼ぶ)一群のフィールドによって一般に定義され得るXMLリスト112を含む。通常、フィールドは計算され、またはマップされる。計算されたフィールドは式または定数値によって定義され、マップされたフィールドはペイロードデータへの「パス(path)」または「ポインタ(pointer)」によって定義される。マッピングユニット106は、フィールドパスを利用して、ペイロードデータから(「バインドノード(bind node)」と呼ばれることもある)ノードのリストを獲得することができ、次いで、各ノードがマッピングユニット106によってXMLリスト112中の1行にマップされる。マッピングユニット106は、各ノードから所望のフィールドへのパスに従って、XMLリスト112内のすべてのフィールドにペイロードデータから値を取得することができる。
本発明の別の実施形態では、通信デバイス103は、ユーザにデータを表示し、ユーザ入力を受け取るように適合され得るユーザインターフェース118をさらに備える。ユーザインターフェース118は、マッピングユニット106と通信可能なように接続される。マッピングユニット106は、ユーザインターフェース118にマップされたXMLリスト112を提供することができ、ユーザインターフェース118は、ディスプレイ(図示せず)を介してユーザにマップされたXMLリスト112を表示することができる。ユーザインターフェース118が様々な実施形態および形式で設計され、単純な構成からより複雑な構成にまで及び得ることを、当分野の技術者は理解するであろう。本発明の例示的実施形態では、ユーザインターフェース118は、キーパッド、ディスプレイ、タッチスクリーンまたはその他の簡便な装置を備えることができ、また、その命令が処理ユニット212上で実行され得る、所定のタスクを実行するプログラムモジュールまたは機械命令も含むことができる。
さらに、通信デバイス103は、通信デバイス103からネットワーク124への通信を円滑に行わせるためのネットワークインターフェース121も備え。ネットワークインターフェース121は、マッピングユニット106およびネットワーク124と通信可能なように接続される。マッピングユニット106は、ネットワークインターフェース121にマップされたXMLリスト112を提供することができ、ネットワークインターフェース121は、マップされたXMLリスト112をそのネットワーク124内の別の通信デバイスに提供することができる。ネットワークインターフェース121は、通常、通信デバイス103のネットワークインターフェースカードや拡張カードといったハードウェア装置とすることができ、それが通信デバイス103とネットワーク124の間の接続を円滑に行わせる。図1には示さないが、ネットワークインターフェース121は、通信デバイス103とネットワーク124のアクセスポイント(図示せず)の間の無線通信を可能にする無線送信機および受信機も備え得る。
ネットワーク124は、通常、(無制限に複数のサーバまたはクライアント装置を含む)2つ以上の通信デバイス103のグループを接続するのに適したインフラストラクチャおよび設備を備えることを、当分野の技術者は理解するであろう。そのようなネットワーク124、通信デバイス103およびサーバは、それだけに限らないが、スター型、バス、リング型構成を含む、複数のトポロジで構成され得る。また、ネットワーク124、通信デバイス103、およびサーバは、それだけに限らないが、ピアツーピアやクライアント/サーバアーキテクチャを含む特定のアーキテクチャに属するものとして大きく類別され得る。さらに、ネットワーク124は、通信デバイス103またはサーバの地理的位置およびその種類によっても分類され得る。例えば、1つの建物の内部など、相互に近接して位置する複数のコンピュータシステムまたはサーバを接続するネットワーク124はローカルエリアネットワーク(LAN)と呼ばれ、コンピュータシステムがさらに離れて位置する場合、そのネットワーク124は、一般に、インターネットなどの広域ネットワーク(WAN)と呼ばれ、コンピュータシステムが大学構内や軍事施設などの限定された地域内に位置する場合、そのネットワークはキャンパスエリアネットワーク(CAN)と呼ばれ、コンピュータシステムが市や町の域内で相互に接続される場合、そのネットワーク124はメトロポリタンエリアネットワーク(MAN)と呼ばれ、コンピュータシステムがユーザの家庭内で相互接続される場合、そのネットワーク124はホームエリアネットワーク(HAN)と呼ばれる。
通信可能なように接続することは、アナログ、デジタル、有線または無線通信チャネルを含む信号および/または媒体の双方向通信のための任意の適当な種類の接続を含み、またはそれを必要とすることを、当分野の技術者は理解するであろう。そのような通信チャネルは、銅線、光ファイバ、無線周波数、赤外線、衛星などの設備および媒体を利用し得る。
本発明のいくつかの実施形態は、XMLスプレッドシートデータ、XMLリスト、およびXMLペイロードデータを参照するが、他の種類のデータ構成も本発明の範囲内で使用することができ、したがって、本発明は、XMLで構成されたデータだけに限られるものではないことを当分野の技術者は理解するであろう。
図2は、例示的実施形態に従って利用し得る、コンピューティング環境200およびそのコンピュータシステム210、280のブロック図を示す。コンピューティング環境200およびそのコンピュータシステム210、280は、本発明の実施に適したコンピューティング環境およびコンピュータシステムの一例にすぎず、本発明の使用または機能の範囲に関するどんな限定も示唆するものではない。また、コンピュータシステム210、280は、例示的コンピューティング環境200に示す構成要素のいずれか1つまたはその組み合わせに関して、どんな依存性や要件を持つものであるとも解釈されるべきではない。
このように、本発明は、他の多数の汎用または専用コンピューティングシステム環境または構成と共に動作することを理解すべきである。本発明と共に使用するのにふさわしい、またはそれに適していると考えられる公知の通信デバイス103、コンピューティングシステム、環境、および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ機器、マイクロプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークパーソナルコンピュータ、ミニコンピュータ、メインフレームコンピュータ、前述のシステムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
また、本実施形態は、コンピュータシステムによって実行される、プログラムモジュールなどのコンピュータ実行可能命令を含む一般的状況で説明することができる。一般に、プログラムモジュールには、個々のタスクを実行し、または個々の抽象データ型を実施するルーチン、プログラム、プログラミング、オブジェクト、コンポーネント、データ、および/またはデータ構造が含まれる。本発明は、通信ネットワークを介してリンクされたリモート処理ユニットによってタスクが実行される分散コンピューティング環境で実施される。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモート両方の記憶ユニット中のコンピュータ記憶媒体に、無制限に、位置することができる。
図2を参照すると、本発明の例示的コンピューティング環境200は、コンピュータシステム210の形で汎用コンピューティングデバイスを含む。コンピュータシステム210の構成要素には、処理ユニット220、システムメモリ230、およびシステムメモリ230を含む様々なシステム構成要素を、双方向データおよび/または命令通信のために処理ユニット220に結合するシステムバス221を含むことができる。システムバス221は、様々なバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかの種類のバス構造のいずれでもよい。例をあげると、それだけに限らないが、そのようなアーキテクチャには、産業標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ電子装置規格化協会(VESA)ローカルバス、および(「メザニンバス」とも呼ばれる)周辺装置相互接続(PCI)バスが含まれる。
コンピュータシステム210は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体には、コンピュータシステム210によってアクセスされ、そこから読み取られ、そこに書き込まれ得る任意の使用可能な媒体が含まれ、それには揮発性媒体と不揮発性媒体の両方、取り外し可能媒体と取り外し不能媒体の両方が含まれ得る。例をあげると、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体が含まれる。コンピュータ記憶媒体には、コンピュータ可読命令、データ、データ構造、プログラムモジュール、プログラム、プログラミング、ルーチンなどの情報を記憶するための任意の方法または技術で実施された、揮発性と不揮発性両方、取り外し可能と取り外し不能両方の媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリなどのメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)などの光ディスク記憶、磁気カセット、磁気テープ、光磁気記憶ユニット、磁気ディスク記憶などの磁気記憶ユニット、あるいは所望の情報の記憶に使用することができ、コンピュータシステム210によってアクセスされ得る他の任意の媒体が含まれる。通信媒体は、通常、コンピュータ可読命令、データ、データ構造、プログラムモジュール、プログラム、プログラミング、またはルーチンを、搬送波または他の搬送機構などの変調データ信号として実施し、任意の情報配信媒体を含む。「変調データ信号(modulated data)」という用語は、その特性の1つまたは複数が、その信号に情報を符号化するような方式で設定または変更されている信号を意味する。例をあげると、通信媒体には、有線ネットワークや直接配線接続などの有線媒体、および音響、RF、赤外線、その他の無線媒体などの無線媒体が含まれる。上記のいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含まれる。
システムメモリ230は、読み取り専用メモリ(ROM)231やランダムアクセスメモリ(RAM)232などの揮発性および/または不揮発性メモリの形でコンピュータ記憶媒体を含む。始動時などに、コンピュータ210内の要素間の情報転送を指図する基本ルーチンを含む基本入出力システム(BIOS)233は、通常、ROM231に記憶される。RAM232は、通常、処理ユニット220によって直ちにアクセス可能であり、かつ/またはそれによって現在処理されているデータおよび/またはプログラム命令を格納する。例として、図2には、RAM232にその全部または一部が存在する、オペレーティングシステム234、アプリケーションプログラム235、その他のプログラムモジュール236、およびプログラムデータ237を示す。
コンピュータ210は、他の取り外し可能/取り外し不能、揮発性/不揮発性コンピュータ記憶媒体も含むことができる。例にすぎないが、図2には、取り外し不能、不揮発性磁気媒体との間で読み取りまたは書込みを行うハードディスクドライブ241、取り外し可能、不揮発性磁気ディスク252との間で読み取りまたは書込みを行う磁気ディスクドライブ251、およびCD−ROMや他の光媒体などの取り外し可能、不揮発性光ディスク256との間で読み取りまたは書込みを行う光ディスクドライブ255を示す。例示的コンピューティング環境200に含まれ得る他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。ハードディスクドライブ241は、通常、インターフェース240などの取り外し不能メモリインターフェースを介してシステムバス221に接続され、磁気ディスクドライブ251および光ディスクドライブ255は、通常、インターフェース250などの取り外し可能メモリインターフェースによってシステムバス221に接続される。
図2に示す前述の各ドライブ241、251、255およびそれらに関連するコンピュータ記憶媒体は、コンピュータシステム210のためのコンピュータ可読命令、データ、データ構造、プログラムモジュール、プログラム、プログラミング、またはルーチンの記憶を提供する。図2では、例えば、ハードディスクドライブ241は、オペレーティングシステム244、アプリケーションプログラム245、その他のプログラムモジュール246、およびプログラムデータ247を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム234、アプリケーションプログラム235、その他のプログラムモジュール236、およびプログラムデータ237と同じでも、異なっていてもよいことに留意されたい。オペレーティングシステム244、アプリケーションプログラム245、その他のプログラムモジュール246、およびプログラムデータ247には、少なくともそれらがオペレーティングシステム234、アプリケーションプログラム235、その他のプログラムモジュール236、およびプログラムデータ237と異なるコピーであることを示すために、異なる番号が付されている。ユーザは、キーボード262や、マウス、トラックボール、タッチパッドなどと通常呼ばれるポインティングデバイス261といった接続入力装置を介してコンピュータシステム210にコマンドおよび情報を入力することができる。他の接続入力装置(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどが含まれる。上記その他の入力装置は、しばしば、システムバス221に結合されたユーザ入力インターフェース260を介して処理ユニット220に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)といった他のインターフェースおよびバス構造によっても接続される。モニタ291または他の種類の表示装置もまた、ビデオインターフェース290などのインターフェースを介してシステムバス221に接続される。モニタ291以外に、コンピュータシステム210は、スピーカ297やプリンタ296など他の周辺出力装置を含むこともでき、それらは、出力周辺インターフェース295を介して接続される。
コンピュータシステム210は、リモートコンピュータシステム280など、1つまたは複数のリモートコンピュータシステムへの双方向通信接続を使用したネットワーク化環境で動作する。リモートコンピュータシステム280は、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ、ルータ、ネットワークPC、ピアデバイスなどの一般的ネットワークノードとすることができ、図2にはリモートコンピュータシステム280の記憶ユニット281だけしか示していないが、通常は、コンピュータシステム210に関連して前述した要素の多くまたはすべてを含む。図2に示す双方向通信接続リンクには、ローカルエリアネットワーク(LAN)271および広域ネットワーク(WAN)273が含まれるが、他のネットワークも含まれる。そのようなネットワークは、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットではよく見られるものである。
LAN271と通信可能なように接続されるとき、コンピュータシステム210はネットワークインターフェースまたはアダプタ270を介してLAN271に接続する。WAN273に通信可能なように接続されるとき、コンピュータシステム210は、通常、モデム272、またはインターネットなどのWAN273を介して通信リンクを確立する他の手段を含む。モデム272は、内蔵でも外付けでもよく、ユーザ入力インターフェース260または他の適当な機構を介してシステムバス221に接続される。ネットワーク化環境では、コンピュータシステム210に関連して示すプログラムモジュール、またはその一部は、リモート記憶ユニット281にも格納される。例として、図2には、リモート記憶ユニット281にあるものとしてリモートアプリケーションプログラム285を示す。図示のネットワーク接続は例示的なものであり、コンピュータ間で双方向通信リンクを確立する他の手段も使用され得ることが理解されるであろう。
図3は、本発明の例示的実施形態による、スプレッドシートリスト112を含むスプレッドシートデータの擬似コード表現(pseudo-code representation)300を示す。前述のように、スプレッドシート記憶ユニット109は、マッピングユニット106によってペイロードデータを用いてマップされるスプレッドシートリスト112を含む。本発明の例示的実施形態では、スプレッドシートリスト112はXMLコードで構成され、それ故に、以後、これをXMLリスト112という。
XMLは、複数のシステム間でのデータの定義、検証、伝送、および解釈を可能にするカスタマイズ可能なタグを提供する。XMLが標準汎用マークアップ言語(SGML)から派生したものであり、広く受け入れられるデータ構成のためのコード形式を提供することを当分野の技術者は理解するであろう。一般に、XMLタグは、文書またはコードのその部分がどのようにフォーマットされ、または解釈されるべきかを示す、文書またはコード内で使用されるコマンドである。XMLタグは、通常、対にされ、開始タグおよび終了タグを含む。開始タグ(beginning tag)は、しばしば、「〜未満(less than)」(「<」)記号と「〜超(greater than)」(「>」)記号の間のタグ名によって表される。終了タグ(ending tag)は、普通、「〜未満」記号(「<」)の後にスラッシュ(「/」)がつくことを除いて開始タグと同一である。例えば、範囲要素(range element)306は、「<range>」タグで開始し、「</range>」タグで終了する。開始「<range>」タグと終了「</range>」タグの間のテキストまたはコードのすべては、範囲要素306の一部と解釈される。
より詳細には、図3には、そこに含まれるXMLリスト112を含めて、スプレッドシートワークブックを記述するXMLスプレッドシート(XMLSS)の一部が示されている。エントリ要素(entry element)303(例えば<entry x2:id=“list1”>...</entry>)は、スプレッドシートデータ内の単一のXMLリスト112を表す。XMLリスト112は、フィールドと呼ばれる一群の列によって定義され、それはXMLリスト112では、フィールド要素312A〜312F(例えば<field>...</field>)によって表される。フィールド要素(field element)312A〜312Fは、ゆえに、マッピングユニット106によるペイロードデータのXMLリスト112へのマッピングから生じる列(column)を表す。
フィールドは計算され、またはマップされる。計算されたフィールドは、式または定数値によって定義される。マップされたフィールドは、ペイロードデータへのパスによって定義される。図3に示すように、フィールドパスは、XMLリスト112では、xpath要素(element)309B〜309G(例えば<xpath>...</xpath>)によって表される。エントリ要素303もパス(例えば「ルートパス(root path)」と呼ばれることのあるパス)を持つことができ、xpath要素309Aで表される。フィールドパスは、エントリパスへの相対(relative)xpath309B〜309Gであり、ゆえに、フィールドへのフルパス(full path)は、エントリパスをフィールドパスと連結(concatenate)することを必要とする。例えば、フィールド要素312Bのxpath要素309Cで表されるフィールドパスは、「DEPARTMENTID」である。しかしながら、フィールド要素312Bで表されるフィールドのフルパスは、xpath要素309Aで表されるエントリxpathを、xpath要素309Cで表されるフィールドパスと結合することを必要とし、ゆえに、フルパス(full path)「/CORP/DEPARTMENT/DEPARTMENTID」を生じる。
また、フィールドは、文字列(string)、変数(variable)、整数(integer)といった特定のデータ(particular data)または定義型(definition type)と関連付けられる。フィールドのデータまたは定義型は、図3に示すように、xsdtype要素315A〜315Fで表される。上記の例を用いると、フィールド要素312Bで表されるフィールドのxsdtype315Bで表されるデータまたは定義型は「STRING」である。
XMLリスト112は多数の配列として構成され、様々なフィールドおよびパスを含み得ることを、当分野の技術者は理解するであろう。したがって、図3に示すスプレッドシートデータは例示のためのものにすぎず、本発明の範囲を限定するものではない。
図4は、本発明の例示的実施形態による、ペイロードデータの擬似コード表現400を示す。前述のように、ペイロードデータ記憶ユニット115は、スプレッドシートデータのXMLリスト112にマップされるペイロードデータを含む。本発明の例示的実施形態では、ペイロードデータはXMLコードとして構成される。ペイロードデータは、一般に、XMLリスト112で定義され、または記述されたフィールドに対応する。したがって、XMLリスト112で定義されたパスは、ペイロードデータ内のXMLタグと相関している。
例えば、図4に示すペイロードデータは、図3で定義されるXMLリストに関連する。より詳細には、図4に示すペイロード要素403、406、409、410、412、415は、図3に示すフルフィールドパス(full field path)に対応する。表1は、図3のフルフィールドパスと図4のペイロード要素との関係を示す。
Figure 0004711708
Figure 0004711708
Figure 0004711708
表1に示すように、部署名(department name)要素(element)403A、403Bは、フルフィールドパス(full field path)「/CORP/DEPARTMENT/@NAME」に対応し、部署ID要素406A、406Bは、フルフィールドパス「/CORP/DEPARTMENT/DEPARTMENTID」に対応し、人物名(person name)要素412A〜412Fはフルフィールドパス「/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME」および「/CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME」に対応し、人物ID要素415A〜415Fは、フルフィールドパス「/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID」および「CORP/DEPARTMENT/CONTRACTORS/PERSON/PERSONID」に対応する。本発明の例示的実施形態では、フィールドパス中の「/@」記号は、そのフィールドが属性であることを示し、フィールドパス中の「/」記号は、そのフィールドが要素であることを示す。したがって、「NAME」は、パス「/CORP/DEPARTMENT/@NAME」で示すように「DEPARTMENT」の属性であり、「DEPARTMENTID」は、パス「/CORP/DEPARTMENT/DEPARTMENTID」で示すように「DEPARTMENT」の要素である。
ペイロードデータの構成は、XMLリスト112の構成に依存し、または一致し得ることを、当分野の技術者は理解するであろう。したがって、図4に示すペイロードデータは例示のためのものにすぎず、本発明の範囲を限定するものではない。
図5は、本発明の例示的実施形態による、ペイロードデータのブロック図を示す。図5に示すペイロードデータは、XML要素タグがないことを除けば、図4を参照して先に論じたペイロードデータに似ている。より詳細には、図5は、スプレッドシートデータ(図3参照)のフィールドパスおよびそれに関連したペイロードデータの階層的特性を示すものである。
本発明の例示的実施形態では、マッピングユニット106は、(以下で、図7を参照してより詳細に説明する)XMLリスト112中の各フィールドパスの「親(parent)」パスを決定することができる。特定のフィールドパスの親パス(parent path)は、フィールドパスをそのパスの1段階前までたどることによって決定される。言い換えると、親パスは、階層中のそのフィールドパスの1段階前である。例えば、それだけに限らないが、フィールドパス「/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID/」は、「/CORP/DEPARTMENT/MANAGERS/PERSON/」という親パスを持ち得る。さらに、1つの親パスは、属性および要素フィールドのために計算される。したがって、属性フィールドパス(attribute field path)「/a/b/@c」および要素フィールドパス「/a/b/c」は、同じ親パス「/a/b/」を持ち得る。
図5には、1つのフィールドパスが対応するペイロードデータまでどのようにたどられ得るかも示されている。例えば、マッピングユニット106は、フィールドパス「/CORP/DEPARTMENT/DEPARTMENTID/」をたどり、対応する値「1001」、「1002」を発見することができる。反対に、フィールドパスは、ペイロードデータからも決定される。例えば、ペイロードデータ「John」は、対応するフィールドパス「/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME」を持ち得る。
図6は、本発明の例示的実施形態による、マップされたスプレッドシートリスト112を示す。前述のように、マッピングユニット106は、ペイロードデータを、スプレッドシートデータのXMLリスト112にマップすることができる。そのようなマッピングはスキーマを利用しないが、結果として生じるマップされたスプレッドシートリスト112は、実質上、「スキーマによりマップされた(schema-mapped)」スプレッドシートリスト(spreadsheet list)と類似している。
本発明の例示的実施形態では、マッピングユニット106は、(以下、図7を参照してより詳細に説明する)XMLリスト112での「ボトム」パス(bottom path)を指定することができる。通常、ボトムパスは、(図5を参照して前述した)以前に生成された親パスのうちの最長のパスである。複数の親パスが最長パスであるとみなされる場合、最初に生成された親パスをボトムパスに指定することができ、あるいは最長パスとみなされ得る親パスのそれぞれを、(以下で図7を参照してより詳細に説明する)分岐ボトムパスに指定することができる。
マッピングユニット106は、ボトムパスを用いて、XMLリスト112の、バインドノードなどのノードを指定することができる。通常、それらのノードは、マップされたXMLリスト112中の1行に割り当てられ得る。それらのノードは、XMLリスト112の各行ごとのインデックスとして働くことができる。より詳細には、それらのノードは、マップされたXMLリスト112中に存在する行数を示す。
例えば、図3に示す各フィールドの親パスは、「/CORP/DEPARTMENT」(例えば、「/CORP/DEPARTMENT/@NAME」の親パス)、「/CORP/DEPARTMENT」(例えば「/CORP/DEPARTMENT/DEPARTMENTID)の親パス)、「/CORP/DEPARTMENT/MANAGERS/PERSON」(例えば、「/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME」の親パス)、「/CORP/DEPARTMENT/MANAGERS/PERSON」(例えば、「/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID」の親パス)、「CORP/DEPARTMENT/CONTRACTORS/PERSON」(例えば、「/CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME」の親パス)、および「/CORP/DEPARTMENT/CONTRACTORS/PERSON」(例えば、「/CORP/DEPARTMENT/CONTRACTORS/PERSON/PERSONID」の親パス)である。マッピングユニット106は、「/CORP/DEPARTMENT/MANAGERS/PERSON」(例えば、「/CORP/DEPARTMENT/MANAGERS/PERSON@NAME」の親パス)および「/CORP/DEPARTMENT/CONTRACTORS/PERSON」(例えば、「/CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME」の親パス)をその分岐ボトムパスに指定することができる。その理由は、それらが生成された最長親パスであり、どちらも相互の一部でもなく、相互に等しくもないからである。各分岐ボトムパスごとに、マッピングユニット106は、分岐ボトムパスをたどってその結果ノードを決定する。マップされたXMLリスト112の行624、627、630、633、636、639および列603、606、609、612、615、618の値は、各分岐ボトムパスを対応するフィールドパスまでたどることにより決定される。
図7A〜図7Cは、本発明の例示的実施形態による、ペイロードデータをスプレッドシートリスト112にマップする方法700の流れ図を示す。マッピングユニット106は、スキーマを使用せずに、ペイロード記憶ユニット115から受け取ったペイロードデータを、スプレッドシート記憶ユニット109から受け取ったXMLリストにマップする。
ステップ701において開始されると、マッピングユニット106はステップ703に進み、そこで、スプレッドシート記憶ユニット109からスプレッドシートデータを受け取る。スプレッドシートデータはXMLリスト112を含む。次に、ステップ706において、マッピングユニット106は、任意のXMLリスト112が評価される必要があるか否かを判定する。ステップ706において、マッピングユニット106が、XMLリスト112を評価する必要がないと判定した場合、マッピングユニット106は、ステップ715において、方法700による処理を停止する。しかしながら、ステップ706において、マッピングユニット106が、評価されるべきXMLリスト112が存在すると判定した場合、マッピングユニット106はステップ709に進み、そこで、XMLリスト112内の任意のフィールドパスが評価される必要があるか否かを判定する。ステップ709において、マッピングユニット106が、フィールドパスが評価される必要がないと判定した場合、マッピングユニット106は、以下で説明するステップ718に進む。しかしながら、ステップ709において、マッピングユニット106が、評価されるべきフィールドパスが存在すると判定した場合、マッピングユニット106はステップ712に進み、そこで、フィールドパスの親パスを生成する。次いで、マッピングユニット106は、前述のステップ709に進む。
ステップ718において、マッピングユニット106は、XMLリスト112のフィールドパスから親パスが生成されたか否かを判定する。ステップ718において、マッピングユニット106が、親パスが生成されなかったと判定した場合、マッピングユニット106は、前述のステップ706に進む。そうではなく、ステップ718において、マッピングユニット106が、親パスが生成されたと判定した場合、マッピングユニット106はステップ721に進み、そこで、相互にその一部ではない最長の親パスを識別する(そのリストを作成する)。次に、ステップ724において、マッピングユニット106は、最長親パスリスト内に重複が存在するか否かを判定する。ステップ724において、マッピングユニット106が、最長親パスリスト内に重複が存在しないと判定した場合、マッピングユニット106は、以下で説明するステップ730に進む。しかしながら、ステップ724において、マッピングユニット106が、最長親パスリスト内に重複が存在すると判定した場合、マッピングユニット106はステップ727に進み、そこで、最長親パスリスト内のすべての重複を除去する。
次に、ステップ730において、マッピングユニット106は、最長親パスのそれぞれをボトムパス(本明細書では「分岐ボトムパス(branch bottom path)」ともいう)に指定し、各ボトムパスは、異なる分岐を表す。次いで、ステップ733において、マッピングユニット106は、XMLリストの各フィールドを、そのフィールドの親パスが、関連した分岐ボトムパスの一部になるように、1つまたは複数の分岐ボトムパスと関連付ける。1つのフィールドの親パスは、複数の分岐ボトムパスの一部とすることができる。次いで、マッピングユニット106はステップ736に進み、そこで、任意の分岐ボトムパスがさらに評価される必要があるか否かを判定する。ステップ736において、マッピングユニット106が、分岐ボトムパスが評価される必要がないと判定した場合、マッピングユニット106は、ステップ745において、方法700による処理を停止する。そうではなく、ステップ736において、マッピングユニット106が、さらに評価される必要のある分岐ボトムパスが存在すると判定した場合、マッピングユニット106はステップ739に進み、そこで、ペイロードデータでの分岐ボトムパスを評価してバインドノードのリストを生成する。各親パスを1つまたは複数の分岐ボトムパスと共にグループ化すれば、XMLリストの各フィールド(列)の値は、もしあれば、そのバインドノードからトラバースすることによりペイロードデータから獲得され得る。次に、ステップ742において、マッピングユニット106は、その行のバインドノードから各対応するフィールドパスまでたどることによって、ある行内の分岐ボトムパスに関連したすべてのフィールド(列)のペイロードデータから値を獲得する。フィールドが、その分岐ボトムパスに関連付けられていない親パスに属する場合、そのフィールドの値は空のままとされる。次いで、マッピングユニット106は、前述のステップ736に進む。
以上、本発明を詳細に説明してきたが、本明細書で前述し、特許請求の範囲で定義される本発明の精神および範囲内において、各種の変形および改変が実施可能である。また、特許請求の範囲に記載したすべての手段および機能要素について、対応する構造、材料、動作、およびその均等物は、その諸機能を、明確に特許請求される他の特許請求要素と組み合わせて実行する任意の構造、材料、または動作を含むものである。
本発明の例示的実施形態によるスプレッドシートデータマッピングシステムを示すブロック図である。 本発明の例示的実施形態に従って利用し得るコンピューティング環境およびそのコンピュータシステムを示すブロック図である。 本発明の例示的実施形態によるスプレッドシートリストを含んだスプレッドシートデータを示す、擬似コード表現の図である。 本発明の例示的実施形態によるペイロードデータを示す、擬似コード表現の図である。 本発明の例示的実施形態によるペイロードデータを示すブロック図である。 本発明の例示的実施形態による、マップされたスプレッドシートリストを示す図である。 本発明の例示的実施形態による、ペイロードデータをスプレッドシートリストにマップする方法を示す流れ図である。 本発明の例示的実施形態による、ペイロードデータをスプレッドシートリストにマップする方法を示す流れ図である。 本発明の例示的実施形態による、ペイロードデータをスプレッドシートリストにマップする方法を示す流れ図である。
符号の説明
103 通信デバイス
106 マッピングユニット
109 スプレッドシート記憶ユニット
112 XMLリスト
115 ペイロードデータ記憶ユニット
118 ユーザインターフェース
121 ネットワークインターフェース
124 ネットワーク
220 処理ユニット
221 システムバス
234 オペレーティングシステム
244 オペレーティングシステム
235 アプリケーションプログラム
245 アプリケーションプログラム
236 他のプログラムモジュール
246 他のプログラムモジュール
237 プログラムデータ
247 プログラムデータ
240 取り外し不能不揮発性メモリインターフェース
250 取り外し可能不揮発性メモリインターフェース
260 ユーザ入力インターフェース
261 マウス
262 キーボード
270 ネットワークインターフェース
272 モデム
280 リモートコンピュータ
285 リモートアプリケーションプログラム
290 ビデオインターフェース
291 モニタ
295 出力周辺インターフェース
296 プリンタ
297 スピーカ

Claims (11)

  1. ペイロードデータをスプレッドシートリストにマップするシステムであって、
    少なくとも1つのスプレッドシートリストを含んだスプレッドシートデータを格納するスプレッドシート記憶ユニットであって、該少なくとも1つのスプレッドシートリストは、マップされたフィールドと関連した少なくとも1つのパスを含む、スプレッドシート記憶ユニットと、
    ペイロードデータを格納するペイロードデータ記憶ユニットであって、該ペイロードデータは、前記スプレッドシートデータと関連する、ペイロードデータ記憶ユニットと、
    前記スプレッドシート記憶ユニットからスプレッドシートデータを受け取り、
    前記ペイロードデータ記憶ユニットからペイロードデータを受け取り、
    前記少なくとも1つのパスに対する1組の親パスを生成すること、
    前記1組の親パスのうちの最長親パスを決定すること、
    前記1組の親パスのうちの1つの親パスをボトムパスとして指定すること、
    ペイロードデータから1組のノードを生成すること、および
    前記1組のノードのうちの1つのノードを前記少なくとも1つのスプレッドシートリストの行にマップすることであって、該1組のノードは、前記ペイロードデータで前記ボトムパスを評価することによって生成され、該行は、複数のフィールドを含むこと
    により、前記ペイロードデータを前記少なくとも1つのスプレッドシートリストにマップし、
    前記ボトムパスを前記スプレッドシートデータ内の前記フィールドに関連した前記少なくとも1つのパスまでトレースすることにより、前記行内の前記複数のフィールドの値を取得する
    ように適合したマッピングユニット
    具備したことを特徴とするシステム。
  2. 前記少なくとも1つのスプレッドシートリストは拡張可能マークアップ言語(XML)リストを含むことを特徴とする請求項1に記載のシステム。
  3. 前記マッピングユニットから前記少なくとも1つのマップされたスプレッドシートリストを受け取り、前記少なくとも1つのマップされたスプレッドシートリストをユーザに表示するように適合したユーザインターフェースをさらに備えることを特徴とする請求項1に記載のシステム。
  4. 前記マッピングユニットから前記少なくとも1つのマップされたスプレッドシートリストを受け取り、前記少なくとも1つのマップされたスプレッドシートリストをネットワークに提供するように適合したネットワークインターフェースをさらに備えることを特徴とする請求項1に記載のシステム。
  5. 前記少なくとも1つのスプレッドシートリストは、前記ペイロードデータに関連した少なくとも1つのフィールドパスを含ことを特徴とする請求項1に記載のシステム。
  6. ペイロードデータをスプレッドシートリストにマップする方法であって、
    コンピュータが、1つのフィールドに関連した少なくとも1つのパスを含んだ少なくとも1つのスプレッドシートリストを有するスプレッドシートデータを受け取るステップと、
    前記コンピュータが、前記スプレッドシートデータに関連したペイロードデータを受け取るステップと、
    前記コンピュータが、
    前記少なくとも1つのパスに対する1組の親パスを生成すること、
    前記1組の親パスのうちの最長親パスを決定すること、
    前記1組の親パスのうちの1つの親パスをボトムパスとして指定すること、
    ペイロードデータから1組のノードを生成することであって、該1組のノードは、前記ペイロードデータで前記ボトムパスを評価することによって生成されること
    により、前記ペイロードデータを前記少なくとも1つのスプレッドシートリストにマップするステップ
    具備したことを特徴とする方法。
  7. 前記少なくとも1つのパスを用いて前記ペイロードデータを前記少なくとも1つのスプレッドシートリストにマップするステップは、
    前記コンピュータが、前記1組のノードのうちの1つのノードを前記少なくとも1つのスプレッドシートリストの行にマップするステップと、
    前記コンピュータが、前記少なくとも1つの分岐ボトムパスを前記スプレッドシートデータ内の前記フィールドに関連した前記少なくとも1つのパスまでトレースすることにより、前記行内の前記フィールドの値を取り出すステップ
    さらに含むことを特徴とする請求項に記載の方法。
  8. 前記少なくとも1つのパスのために1組の親パスを生成するステップは、
    前記コンピュータが、前記スプレッドシートデータの前記少なくとも1つのパスを列挙するステップと、
    前記コンピュータが、列挙した前記少なくとも1つのパスを前のフィールドまで戻るステップと、
    前記コンピュータが、前記前のフィールドに関連したパスを前記1組の親パスに挿入するステップ
    含むことを特徴とする請求項に記載の方法。
  9. 前記1組の親パスにおける少なくとも1つの親パスを少なくとも1つの分岐ボトムパスとして指定するステップは、
    前記コンピュータが、前記1組の親パスの少なくとも1つの最長親パスを決定するステップと、
    前記コンピュータが、前記少なくとも1つの最長親パスにおける第1の親パスが前記少なくとも1つの最長親パスにおける第2の親パスの一部でない場合、前記少なくとも1つの最長親パスを少なくとも1つの分岐ボトムパスとして指定するステップ
    含むことを特徴とする請求項に記載の方法。
  10. 前記コンピュータが、前記1組の親パスにおける第3の親パスを前記少なくとも1つの分岐ボトムパスと関連付けるステップであって、前記第3の親パスは、前記少なくとも1つの分岐ボトムパスの一部であるステップをさらに含むことを特徴とする請求項に記載の方法。
  11. 請求項6乃至10の何れか1項に記載の方法を実行するためのコンピュータ実行可能命令を備えたコンピュータ可読記録媒体。
JP2005080091A 2004-03-22 2005-03-18 ネストされたテーブルを用いたスキーマレスデータマッピングのためのシステムおよび方法 Expired - Fee Related JP4711708B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/805,896 US20050172217A1 (en) 2004-02-04 2004-03-22 System and method for schemaless data mapping with nested tables
US10/805,896 2004-03-22

Publications (2)

Publication Number Publication Date
JP2005302008A JP2005302008A (ja) 2005-10-27
JP4711708B2 true JP4711708B2 (ja) 2011-06-29

Family

ID=34862024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005080091A Expired - Fee Related JP4711708B2 (ja) 2004-03-22 2005-03-18 ネストされたテーブルを用いたスキーマレスデータマッピングのためのシステムおよび方法

Country Status (18)

Country Link
US (2) US20050172217A1 (ja)
EP (1) EP1580671A3 (ja)
JP (1) JP4711708B2 (ja)
KR (1) KR101122841B1 (ja)
CN (1) CN100435143C (ja)
AU (1) AU2005200999B2 (ja)
BR (1) BRPI0501150A (ja)
CA (1) CA2501608A1 (ja)
CO (1) CO5680122A1 (ja)
IL (1) IL167313A (ja)
MX (1) MXPA05003138A (ja)
MY (1) MY154396A (ja)
NO (1) NO333083B1 (ja)
NZ (1) NZ538934A (ja)
RU (1) RU2370808C2 (ja)
SG (1) SG115773A1 (ja)
TW (1) TWI353527B (ja)
ZA (1) ZA200502315B (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8126889B2 (en) 2002-03-28 2012-02-28 Telecommunication Systems, Inc. Location fidelity adjustment based on mobile subscriber privacy profile
US9460129B2 (en) 2013-10-01 2016-10-04 Vmware, Inc. Method for tracking a schema in a schema-less database
US20050172217A1 (en) * 2004-02-04 2005-08-04 Yiu-Ming Leung System and method for schemaless data mapping with nested tables
US6985105B1 (en) 2004-10-15 2006-01-10 Telecommunication Systems, Inc. Culled satellite ephemeris information based on limiting a span of an inverted cone for locating satellite in-range determinations
US7836104B2 (en) * 2005-06-03 2010-11-16 Sap Ag Demonstration tool for a business information enterprise system
US7825780B2 (en) 2005-10-05 2010-11-02 Telecommunication Systems, Inc. Cellular augmented vehicle alarm notification together with location services for position of an alarming vehicle
US7899450B2 (en) * 2006-03-01 2011-03-01 Telecommunication Systems, Inc. Cellular augmented radar/laser detection using local mobile network within cellular network
US9167553B2 (en) 2006-03-01 2015-10-20 Telecommunication Systems, Inc. GeoNexus proximity detector network
US9330149B2 (en) * 2007-12-18 2016-05-03 Oracle International Corporation Techniques for query and DML over relational tables using spreadsheet applications
US8001155B2 (en) * 2008-06-20 2011-08-16 Microsoft Corporation Hierarchically presenting tabular data
US20090327213A1 (en) * 2008-06-25 2009-12-31 Microsoft Corporation Document index for handheld application navigation
EP2347395A4 (en) 2008-10-14 2016-11-02 Telecomm Systems Inc Location Based Approach Alert
US8892128B2 (en) 2008-10-14 2014-11-18 Telecommunication Systems, Inc. Location based geo-reminders
US8423512B2 (en) * 2009-09-08 2013-04-16 Oracle International Corporation Leveraging XML capabilities of a database to enhance handling of document data
US8365066B2 (en) * 2010-02-09 2013-01-29 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for processing markup language specified spreadsheet styles
US8359308B2 (en) * 2010-04-01 2013-01-22 Microsoft Corporation Inline data correlation and hierarchical datasets
US8315599B2 (en) 2010-07-09 2012-11-20 Telecommunication Systems, Inc. Location privacy selector
US8649806B2 (en) 2011-09-02 2014-02-11 Telecommunication Systems, Inc. Aggregate location dynometer (ALD)
US10546057B2 (en) * 2011-10-28 2020-01-28 Microsoft Technology Licensing, Llc Spreadsheet program-based data classification for source target mapping
US20130311864A1 (en) * 2012-05-16 2013-11-21 N. Nagaraj Intelligent and robust context based XML data parsing from spreadsheets
US10191955B2 (en) * 2013-03-13 2019-01-29 Microsoft Technology Licensing, Llc Detection and visualization of schema-less data
CN105069542A (zh) * 2015-06-25 2015-11-18 中铁四局集团有限公司 一种责任成本预算编制方法及系统
CN104881762A (zh) * 2015-06-25 2015-09-02 中铁四局集团有限公司 一种工程量清单分解方法及系统
CN104978307A (zh) * 2015-06-25 2015-10-14 中铁四局集团有限公司 一种清单处理方法及装置
CN116050362B (zh) * 2023-03-23 2023-07-04 青岛诺亚信息技术有限公司 一种Web表格动态数据绑定方法、介质及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003017141A1 (en) * 2001-08-17 2003-02-27 Ubmatrix Llc Method for adding metadata to data

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ239657A (en) 1991-09-03 1995-07-26 Norman Michael Rorke Transferring data from database to spreadsheet file cells
WO2000023915A1 (en) 1998-10-16 2000-04-27 Commontown Pte Ltd A virtual space
US6920608B1 (en) * 1999-05-21 2005-07-19 E Numerate Solutions, Inc. Chart view for reusable data markup language
US6631497B1 (en) * 1999-07-19 2003-10-07 International Business Machines Corporation Binding data from data source to cells in a spreadsheet
US6766330B1 (en) * 1999-10-19 2004-07-20 International Business Machines Corporation Universal output constructor for XML queries universal output constructor for XML queries
US6941510B1 (en) * 2000-06-06 2005-09-06 Groove Networks, Inc. Method and apparatus for efficient management of XML documents
US6502101B1 (en) * 2000-07-13 2002-12-31 Microsoft Corporation Converting a hierarchical data structure into a flat data structure
US6941511B1 (en) 2000-08-31 2005-09-06 International Business Machines Corporation High-performance extensible document transformation
US6804677B2 (en) * 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing
AU2002334721B2 (en) * 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
US6925470B1 (en) 2002-01-25 2005-08-02 Amphire Solutions, Inc. Method and apparatus for database mapping of XML objects into a relational database
US20030188264A1 (en) 2002-03-29 2003-10-02 Full Degree, Inc. Method and apparatus for XML data normalization
US7457810B2 (en) * 2002-05-10 2008-11-25 International Business Machines Corporation Querying markup language data sources using a relational query processor
US7017112B2 (en) 2003-02-28 2006-03-21 Microsoft Corporation Importing and exporting markup language data in a spreadsheet application document
US20050172217A1 (en) 2004-02-04 2005-08-04 Yiu-Ming Leung System and method for schemaless data mapping with nested tables
US7421646B1 (en) 2004-02-04 2008-09-02 Microsoft Corporation System and method for schemaless data mapping

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003017141A1 (en) * 2001-08-17 2003-02-27 Ubmatrix Llc Method for adding metadata to data

Also Published As

Publication number Publication date
SG115773A1 (en) 2005-10-28
IL167313A (en) 2014-01-30
NZ538934A (en) 2007-05-31
JP2005302008A (ja) 2005-10-27
EP1580671A2 (en) 2005-09-28
CO5680122A1 (es) 2006-09-29
NO20051482D0 (no) 2005-03-21
CN100435143C (zh) 2008-11-19
EP1580671A3 (en) 2006-06-28
CA2501608A1 (en) 2005-09-22
TWI353527B (en) 2011-12-01
ZA200502315B (en) 2006-12-27
NO333083B1 (no) 2013-02-25
US20050172217A1 (en) 2005-08-04
BRPI0501150A (pt) 2005-11-01
AU2005200999A1 (en) 2005-10-06
US20070124318A1 (en) 2007-05-31
AU2005200999B2 (en) 2010-05-20
RU2005107873A (ru) 2006-10-10
KR101122841B1 (ko) 2012-03-22
CN1677398A (zh) 2005-10-05
KR20060044561A (ko) 2006-05-16
TW200540651A (en) 2005-12-16
MY154396A (en) 2015-06-15
NO20051482L (no) 2005-09-23
US8584003B2 (en) 2013-11-12
MXPA05003138A (es) 2005-10-05
RU2370808C2 (ru) 2009-10-20

Similar Documents

Publication Publication Date Title
JP4711708B2 (ja) ネストされたテーブルを用いたスキーマレスデータマッピングのためのシステムおよび方法
JP4879580B2 (ja) ユーザ・インタフェースに自動探索メニューを与えるシステムおよび方法
US20070016605A1 (en) Mechanism for computing structural summaries of XML document collections in a database system
US20080082560A1 (en) Implementation of backward compatible XML schema evolution
US20040239674A1 (en) Modeling graphs as XML information sets and describing graphs with XML schema
US20040205615A1 (en) Enhanced mechanism for automatically generating a transformation document
US20080098020A1 (en) Incremental maintenance of an XML index on binary XML data
US20040068526A1 (en) Mapping schemes for creating and storing electronic documents
JP2008052662A (ja) 構造化文書管理システム及びプログラム
JP2006505872A (ja) 単一のインターフェイスからのデータの多重階層を管理するための手法
US10489493B2 (en) Metadata reuse for validation against decentralized schemas
US20080294673A1 (en) Data transfer and storage based on meta-data
US11487707B2 (en) Efficient file path indexing for a content repository
WO2008064023A9 (en) System and method for data transformation
US9411792B2 (en) Document order management via binary tree projection
US20060242169A1 (en) Storing and indexing hierarchical data spatially
US7421646B1 (en) System and method for schemaless data mapping
US20030037031A1 (en) Mechanism for automatically generating a transformation document
US20060136814A1 (en) Efficient extensible markup language namespace parsing for editing
JP2007293874A (ja) 文書の圧縮格納方法及び装置
JP5063447B2 (ja) コンテンツ管理装置及び方法及びプログラム
US9002810B1 (en) Method and system for managing versioned structured documents in a database
JP2008065716A (ja) データ管理装置、データ管理方法及びデータ管理プログラム
Greenhalgh et al. Engineering a replay application based on RDF and OWL
KR101926165B1 (ko) 웹 기반 hmi 솔루션의 문서 편집 시스템 및 그 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110126

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110322

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

LAPS Cancellation because of no payment of annual fees