JP2009187528A - 改善された階層型xmlデータベースの方法 - Google Patents
改善された階層型xmlデータベースの方法 Download PDFInfo
- Publication number
- JP2009187528A JP2009187528A JP2008265037A JP2008265037A JP2009187528A JP 2009187528 A JP2009187528 A JP 2009187528A JP 2008265037 A JP2008265037 A JP 2008265037A JP 2008265037 A JP2008265037 A JP 2008265037A JP 2009187528 A JP2009187528 A JP 2009187528A
- Authority
- JP
- Japan
- Prior art keywords
- xml
- class
- database
- data
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information 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/83—Querying
Abstract
【課題】XMLデータベースを初期化するための方法を提供する。
【解決手段】方法は、階層形式で配置される複数のレコードを抽出するためにXMLファイルを構文解析すること、各クラスが1つ又は複数の属性と関連付けられている複数のクラスオブジェクトを、各レコードについて作成すること、データベースにどのようにアクセス可能であるかを定義する複数の処理メソッドを、各クラスオブジェクトに関連付けられた1つ又は複数の属性のそれぞれについて作成することを含む。
【選択図】図2B
【解決手段】方法は、階層形式で配置される複数のレコードを抽出するためにXMLファイルを構文解析すること、各クラスが1つ又は複数の属性と関連付けられている複数のクラスオブジェクトを、各レコードについて作成すること、データベースにどのようにアクセス可能であるかを定義する複数の処理メソッドを、各クラスオブジェクトに関連付けられた1つ又は複数の属性のそれぞれについて作成することを含む。
【選択図】図2B
Description
(関連出願の相互参照)
[0001] 本出願は、2007年10月12日出願の米国仮出願第60/979,559号からの優先権を主張するものである。その内容は、全体を参照により本明細書に組み込むものとする。
[0001] 本出願は、2007年10月12日出願の米国仮出願第60/979,559号からの優先権を主張するものである。その内容は、全体を参照により本明細書に組み込むものとする。
[0002] 本発明は、概してデータベースストレージに関し、特に、階層型拡張マークアップ言語(XML)データベースの作成及び使用に関する。
[0003] 多くのソフトウェアアプリケーションは、集中的なデータ処理を必要とする。通常、構造化照会言語(SQL)データベースなどのデータベースが、必要なデータを格納するために使用される。多くのアプリケーションでは、ユーザは、アプリケーションを実行する以前にデータベースを初期化及び開始しなければならない。SQLデータベースは、標準的なデータ格納及び処理で周知のものである。しかし、典型的なリレーショナルSQLデータベースを使用する場合、多くの欠点が存在する。
[0004] こうした欠点の1つは、アプリケーションプログラムを開始する以前にデータベースがロード/作成される多くのアプリケーションの要件から生じるものである。データベース及びアプリケーションプログラムの両方を同時に実行することで、かなりのCPUデマンドを発生させ、大量のメモリリソースを使用する。これにより、アプリケーションプログラムの動作速度をしばしば低下させる可能性がある。
[0005] 更に、ソフトウェア開発者は、新しいソフトウェアがリリースされるごとに、関連するデータベースをアップグレードするために新しいSQLスクリプトを作成しなければならない。これによりかなりの量の余分な作業が発生し、しばしばアップグレードは非常に困難であり、更に時間及びコストがかかる可能性がある。例えば、ユーザが1つのデータベーステーブルに新しい列を追加したい場合、ユーザは、関係するテーブルデータの整合性を確保しなければならない。こうしたプロセスが、ソフトウェアのバグを持ち込んでしまう傾向がある。
[0006] 拡張マークアップ言語(XML)は、データの格納及び操作にとって、ますます一般的なものになりつつある。XMLは、データを階層状に表すための共通構文を提供する。リレーショナルデータベースは、データアイテムの集まりを、データへのアクセス及びデータの再アセンブルが可能な形式的に記述されたテーブルのセットとして編成する既知のタイプのデータベースである。しかし、典型的なSQLベースのリレーショナルデータベースは、XMLデータフォーマットを効率良く処理することができない。
[0007] 従って、XMLデータフォーマットを効率良く処理するためのデータベースが求められている。
[0008] 本発明は、とりわけ上記問題を克服するデータベース及びデータベースの使用方法を提供する。より詳細には、本発明は、XMLファイルを使用してデータオブジェクト間の階層関係を記述することが可能な、XMLデータを格納及び処理するためのXML階層型データベースを作成するためのシステム及び方法を提供する。XMLデータベースにおけるオブジェクト及びそれらの属性へのアクセス及び処理のクラス及びメソッドは、XMLファイルの構文解析によって生成することができる。
[0009] 例示的実施形態に従って、XMLデータベースを初期化するコンピュータ実施方法が提供される。この方法は、階層形式で配置される複数のレコードを抽出するためにXMLファイルを構文解析すること、各クラスが1つ又は複数の属性と関連付けられている複数のクラスオブジェクトを、各レコードについて作成すること、データベースにどのようにアクセス可能であるかを定義する複数の処理メソッドを、各クラスオブジェクトに関連付けられた1つ又は複数の属性のそれぞれについて作成することを含む。
[0010] 本発明の方法の結果として、関連付けられたアプリケーションプログラムを実行する以前に初期化する必要のないXMLデータベースを提供することが可能である。更に、本発明のXMLデータベースは、新しいデータベースデータ及びXMLスキーマを用いて容易にアップグレードすることができる。更に、データの共有及び再使用を目的として、論理データが容易にバンドルされる。
[0011] 当業者であれば、添付の図面と共に本発明の特定の実施形態についての以下の説明を再検討することで、本発明のこれら及び他の態様及び特徴が明らかとなろう。
[0018] 次に、当業者が本発明を実施できるように本発明の例示として提供された図面を参照しながら、本発明について詳細に説明する。特に、以下の図面及び例示は、本発明の範囲を1つの実施形態に限定することを意味するものではなく、説明又は図示された要素の一部又はすべてを交換することによって他の実施形態が可能である。更に、本発明の特定の要素が、既知の構成要素を使用して部分的又は完全に実施することができる場合、こうした既知の構成要素のうちで本発明を理解するために必要な部分のみについて説明し、こうした既知の構成要素のうちの他の部分についての詳細な説明は、本発明を不明瞭にしないために省略する。当業者であれば明らかなように、本明細書で特に指定のない限り、ソフトウェアで実施されているものとして説明される実施形態は、これらに限定されるべきでなく、ハードウェア、又はソフトウェアとハードウェアの組合せで実施される実施形態も含むことができ、その逆もまた同様である。本明細書では、1つの構成要素を示す実施形態を限定的なものとみなすべきではなく、むしろ本発明は、本明細書で明示的に示されていない限り、複数の同じ構成要素を含む他の実施形態を包含することを意図しており、その逆もまた同様である。更に出願者は、そのように明示的に示されていない限り、明細書又は特許請求の範囲におけるいずれの用語も、非共通又は特別な意味を持つものであることを意図していない。更に本発明は、本明細書で例として参照された既知の構成要素に対する現在及び将来の既知の等価物を包含する。
[0019] 本明細書では、XMLデータベースの生成及びXMLデータベースオブジェクトの処理のシステム及び方法について説明する。図1は、開示された様々な実施形態に従って使用可能なシステム100を示す。システム100は、データベース及びデータベースに格納されたデータにアクセスするための方法を定義するように構成された事前処理モジュール110と、アプリケーションプログラムを使用する場合にデータを操作するように構成されたデータベース処理モジュール120とを含むことができる。事前処理モジュール110及び/又はデータベース処理モジュール120は、アプリケーションプログラム内に統合するか、あるいは必要に応じてアプリケーションプログラムによってアクセスすることができる。事前処理モジュール110及びデータベース処理モジュール120は、コンピュータメモリ内に格納するか、又はコンピュータの中央処理装置(CPU)の一部として実施することができる。
[0020] 事前処理モジュール110は、例えば、XMLパーサ112、クラスジェネレータ114、スキーマジェネレータ116、及びデータベースハンドラジェネレータ118などの複数の事前処理サブモジュールを含むことができるが、これらに限定されない。データベースオブジェクト間の論理関係を定義する1つ又は複数のXMLファイルを提供することができる。すなわち、XMLデータベースを作成する場合、データベースに格納されることになるオブジェクト間の関係をXMLファイルによって定義することができる。XMLパーサ112は、XMLファイルを構文解析するように構成することができる。例えば、オープンソースXerces APIなどのXMLファイルを構文解析することが可能な任意のパーサを使用することができる。
[0021] クラスジェネレータ114は、XMLファイル内の各レコードについてクラスオブジェクトを生成するように構成することができる。スキーマジェネレータ116は、XMLファイルからXMLスキーマを生成するように構成することができる。スキーマは、XML文書の構造を定義する。データベースから抽出されたデータが適切な構造に対応することを確実にするために使用することができる。ハンドラジェネレータ118は、データを自動的に処理するための1つ又は複数のハンドラを定義するように構成することができる。ハンドラは、例えば、XMLデータベースからデータを自動的に抽出するため、又はデータをデータベースに格納するためのプログラム又はルーチンを含むことができる。
[0022] それぞれの階層型オブジェクトツリーについて、データベースハンドラハンドラジェネレータ118は、構築プロセス用にセットアップするために構築ディレクトリ内のソースファイル及びハードファイルに格納されたハンドラクラスを生成する。クラスジェネレータ114によって生成されるトップレコードクラスでは、XMLデータベース内のデータの読み取り及び構文解析のために、対応するハンドラクラスが使用される。
[0023] データベースをフォーマットするためにXMLファイルが事前処理されると、データベースモジュール120を介してデータベース内のデータにアクセスすることができる。データベースモジュール120は、ハンドラジェネレータ118によって作成されたハンドラを使用して、データベース内に格納されたデータの取り出し、格納、又はそれ以外の処理を、必要に応じてアプリケーションプログラムによって自動的に実行することができる。例えば、アプリケーションが開始された場合、パーサ、データベースハンドラ、クラス、及びそれらの対応する機能並びにXMLスキーマが、XMLファイルからデータベースへとデータをロードするために使用される。
[0024] パーサ及びデータベースハンドラは、XMLファイルを構文解析してそれらから必要なデータを入手するために使用される。XMLスキーマは、XMLファイルフォーマットが正しいことを確保し、従って、データベースが破損していないことを確かめるために使用される。クラス及びそれらの対応する機能は、データを例えばクラスオブジェクトのベクトルとしてデータコンテナに格納するために使用される。
[0025] 図2Aは、XMLファイル200の一部の例を示す。図に示されるように、XMLファイル200は、子レコード203"Design Layer"を有する、"Design"と命名されたレコード201を含む。レコード201"Design"は、これを、例えば、名前、ファイル名、フォーマット、設計ユニットを定義するレコード、及び/又は他のレコードなどの複数の属性に関連付けているが、これらに限定されない。子レコード"Design Layer"も、name、color_idx、fill_idx、及びdrawmodeを含む、これに関連付けられた複数の属性を有するが、これらに限定されない。各属性は、XMLファイル内のXML要素を記述するため、及びレコードに関する追加情報を提供するために使用される。
[0026] 図2Bは、XMLデータベース内のオブジェクト及びそれらの属性にアクセス及び処理するためのコードを生成する方法を示す。この方法は、データを編成するための、図2Aに示されたXMLファイル200などのXMLファイルの事前処理を含む。202に示されるように、例えば、図1を参照しながら前述したパーサを使用して、XMLファイルが読み取られ、構文解析される。XMLファイルは、ファイル内に定義されたレコード間の論理関係を記述する。これには、例えば親子関係、兄弟関係、依存関係、及び/又は他の関係が含まれる。構文解析は、XMLファイルの主要部分を抽出するために実行される。例えば、幾つかの実施形態では、パーサは、トップレベルの親要素を抽出するようにのみ構成することができる。パーサは、XMLファイルから事前に定義されたデータを抽出するように、管理者によって構成することができる。
[0027] 204に示されるように、各トップレベル又は親レコード及び任意の子レコードは、アレイ内に格納される。レコードは異なるアレイ内に格納することができる。図2Aに示されたXMLファイルの例では、トップレベルレコード201"Design"はアレイ内に格納され、子レコード203"Design Layer"は別のアレイ内に格納される。更に、各トップレベル及び/又は子レコードに関連付けられた属性は、対応クラスオブジェクトのメンバ変数内に格納される。
[0028] 次に、206に示されるように、各トップレコードについてクラスオブジェクトが生成される。例えば、クラスオブジェクトをDesignレコード用に作成することができる。クラスオブジェクトに関連付けられた各フィールド又は属性に対する処理メソッドのグループも作成することができる。処理メソッドは、例えば、各属性についてデータベースに格納されたデータに対して、設定、取得、追加、削除、名前検索、及び/又は他の動作を実行するためのメソッドを含むことができる。Designレコードの例を使用すると、処理メソッドは、名前、ファイル名、フォーマットなどを取得、設定、追加、又は削除するために生成することができる。処理メソッドは、必要に応じてアプリケーションプログラムによって実行することができる。
[0029] 各階層型オブジェクトツリーを表すXMLスキーマも生成することができる。このスキーマを使用して、データベース内のデータ整合性が確実に行われる。スキーマの生成については、図3を参照しながら詳細に説明する。
[0030] 次に、208に示されるように、方法は、現在処理されているレコードに関連付けられた何らかの子レコードが存在するか否かを判定する。子レコードが存在する場合、210に示されるように、子オブジェクトを格納するために、現在のクラスオブジェクト内にベクトルコンテナが作成される。子レコードが存在しない場合、又は子レコードが存在し、ベクトルコンテナが作成されている場合、方法は、212に示されるように、すべてのレコードが処理されたか否かを判定する。追加のレコードが存在する場合、方法はステップ206に戻り、次のレコードのためにクラスオブジェクトを生成する。それ以外の場合、プロセスは結果として空のXMLデータベース構造を生成して、完了する。
[0031] 図3は、XMLファイルからXMLスキーマを生成する例示的方法をより詳細に示す。前述のように、スキーマは、データベース内のデータ整合性を確実にするために使用することができる。データベースからデータを読み取る際に、データが対応するスキーマと一致しない場合、警告又はエラーメッセージが提示される場合がある。生成されたデータベースハンドラを使用して、XMLデータベースからデータを読み取って構文解析する場合に、スキーマチェックを実行することができる。更に、スキーマ並びに新しいXMLデータが、古いデータベースをアップグレードするために使用される。
[0032] 302に示されるように、格納された各レコードについて、方法は、レコードがトップ又は親レコードであるか否かを判定する。各トップレコードについて、トップレコードにマッピングされたクラスから始まる階層型ツリーを記述及び定義するために、対応するXMLスキーマが生成される。各トップレコードについて、データベースハンドラクラスが生成される。レコードがトップレコードでない場合、306に示されるように、方法は他のレコードをチェックする。レコードがトップレコードである場合、308に示されるように、現在のレコード及びその子レコードについてスキーマを生成することができる。スキーマは、スキーマファイルに格納することができる。
[0033] XMLデータは、異なるファイルフォーマットのファイルに格納されたデータを含むことができる。図2AのXMLファイル200で示されるように、Designレコードは、インポートされるファイルへのフルパスを表すファイル名要素と、ファイルフォーマットを記述するフォーマット要素とを含む。アプリケーションのタイプに応じて、一部のファイルはかなり大きい場合がある。例えば、.gds及び.jpgファイルなどのイメージファイル、並びに一部のワードプロセッサファイル(すなわち.docファイル)は、大きい場合がある。幾つかの実施形態によれば、XMLファイル内で参照されるファイルは別々に格納し、オンデマンドでロードすることができる。すなわち、XMLファイルを1つのディレクトリに格納し、非XMLファイルは別のディレクトリに格納することができる。アプリケーションプログラムが非XMLファイルのうちの1つを要求した場合、そのファイルがロードされる。幾つかの実施形態では、ファイルはプログラムセッションが終了するまでロードされたままである。他の実施形態では、ファイルは、所定の期間又は使用されなくなるまでロードされたままとすることができる。
[0034] 大規模ファイルがXMLファイル内で参照される場合、ディスクスペースを節約するために圧縮を使用することもできる。ファイルは、必要な場合に一時ディレクトリに圧縮解除することができる。幾つかの実施形態では、XMLファイル内の機密データを保護するために、データ暗号化を実行することもできる。
[0035] XMLデータベース内に格納されたデータには複数のユーザがアクセスできることから、データが破損していないことを確実にするために、読み取り及び書き込みアクセス制御を実施することができる。例えば、制御は、2人のユーザが同時にデータを読み取ることができるが、1人のユーザは他のユーザによって同時に読み取られているデータを更新できないように、実施することができる。図4は、どのようにデータを共有できるかを決定する例を示す。他の規則が実施可能である。
[0036] 402に示されるように、第1のユーザが読み取り又は書き込み動作を試行しているか否かに関して、決定がなされる。404及び406に示されるように、それぞれ読み取り又は書き込み動作の場合について、第2のユーザも同じデータに対して動作を実行しているか否かに関して、決定がなされる。408に示されるように、第2のユーザが読み取り動作を実行している場合、第1のユーザもそのデータを読み取ることができる。同様に、410に示されるように、第2のユーザによって他の動作が実行されていない場合、第1のユーザはそのデータを読み取ることができる。しかし、第2のユーザが書き込み動作を実行している場合、412に示されるように、第1のユーザは警告メッセージを受信する可能性があり、要求されたデータにアクセスする前に、第2のユーザが書き込み動作を完了するまで待機することが必要な場合がある。
[0037] 第1のユーザが書き込み動作を要求し、同じデータに対して第2のユーザも読み取り動作を実行していると判定された場合、414に示されるように、第1のユーザは警告メッセージを受信する可能性があり、データの書き込みが可能になる前に、第2のユーザが読み取り動作を完了するまで待機することが必要な場合がある。同様に、第2のユーザがすでに書き込み動作を実行している場合、418に示されるように、第1のユーザは警告メッセージを受信する可能性がある。しかし、第2のユーザによって要求されたデータに対して他の動作が実行されていない場合、416に示されるように、第1のユーザはそのデータを書き込むことができる。
[0038] 図5は、上記で詳細に説明したXMLデータベースを利用及び/又は実施することができるコンピュータシステム500の例を示すブロック図である。コンピュータシステム500は、情報を通信するためのバス502又は他の通信機構と、情報を処理するためにバス502に結合されたプロセッサ504とを含む。コンピュータシステム500は、プロセッサ504によって実行される情報及び命令を格納するためにバス502に結合されたランダムアクセスメモリ(RAM)又は他のダイナミック記憶装置などのメインメモリ506も含む。また、メインメモリ506は、プロセッサ504によって実行される命令の実行中に一時変数又は他の中間情報を格納するためにも使用することができる。
[0039] コンピュータシステム500は、さらに、プロセッサ504に関する静的情報及び命令を格納するために、バス502に結合された読み取り専用メモリ(ROM)508又は他のスタティック記憶装置を含む。磁気ディスク又は光ディスクなどのストレージデバイス510が、情報及び命令を格納するために提供されバス502に結合される。
[0040] コンピュータシステム500は、コンピュータユーザに情報を表示するために、バス502を介して、陰極線管(CRT)あるいはフラットパネル又はタッチパネルディスプレイなどのディスプレイ512に結合することができる。英数字及び他のキーを含む入力デバイス514は、情報及びコマンド選択をプロセッサ504に送るために、バス502に結合される。他のタイプのユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ504に送るため、並びにディスプレイ512上のカーソルの動きを制御するためのマウス、トラックボール、又はカーソル方向キーなどのカーソルコントロール516である。この入力デバイスは、通常、デバイスが平面内の位置を指定できるようにする第1の軸(例えば、x)及び第2の軸(例えば、y)という2つの軸における2つの自由度を有する。タッチパネル(スクリーン)ディスプレイも入力デバイスとして使用することができる。
[0041] 本明細書で使用される「コンピュータ読み取り可能媒体」という用語は、実行命令をプロセッサ504に提供することに関与する任意の媒体を意味する。このような媒体は、これに限定はされないが、不揮発性媒体、揮発性媒体、及び伝送媒体を含む多数の形態をとることができる。不揮発性媒体は、例えば、ストレージデバイス510などの光又は磁気ディスクを含む。揮発性媒体は、メインメモリ506などのダイナミックメモリを含む。伝送媒体は、バス502を含むワイヤを含む同軸ケーブル、銅線、及び光ファイバを含む。また、伝送媒体は、無線周波(RF)及び赤外線(IR)データ通信中に生成される音波又は光波の形態をとることができる。コンピュータ読み取り可能媒体の一般的な形態は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD−ROM、DVD、任意の他の光媒体、パンチカード、紙テープ、穴パターンを備えた任意の他の物理媒体、RAM、PROM、及びEPROM、FLASH−EPROM、任意の他のメモリチップ又はカートリッジ、以下に説明する搬送波、又はコンピュータが読み取り可能な任意の他の媒体を含む。
[0042] コンピュータ読み取り可能媒体の様々な形態は、1つ又は複数のシーケンスの1つ又は複数の命令を、実行のためにプロセッサ504に搬送することに関与することができる。例えば、命令は、初期にはリモートコンピュータの磁気ディスク上に担持される。リモートコンピュータは、そのダイナミックメモリに命令をロードし、モデムを使用し電話回線を介して命令を送信することができる。コンピュータシステム500に対してローカルなモデムは、電話回線上のデータを受信し、赤外線送信器を使用してデータを赤外線信号に変換することができる。バス502に結合された赤外線検出器は、赤外線信号で搬送されたデータを受信し、このデータをバス502上に配置することができる。バス502は、データをメインメモリ506に搬送し、プロセッサ504がそこから命令を取り出して実行する。メインメモリ506が受信した命令は、任意選択で、プロセッサ504による実行の前又は後のいずれかにストレージデバイス510上に格納することができる。
[0043] コンピュータシステム500は、好ましくは、バス502に結合された通信インターフェイス518も含む。通信インターフェイス518は、ローカルネットワーク522に接続されたネットワークリンク520に結合する2方向データ通信を提供する。例えば、通信インターフェイス518は、対応するタイプの電話回線へのデータ通信接続を提供するための、サービス統合デジタル網(ISDN)カード又はモデムとすることができる。他の例として、通信インターフェイス518は、互換LANへのデータ通信接続を提供するためのローカルエリアネットワーク(LAN)カードとすることができる。無線リンクも実施可能である。任意のこうした実施では、通信インターフェイス518は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、又は光信号を送信及び受信する。
[0044] ネットワークリンク520は、通常、1つ又は複数のネットワークを介して、他のデータデバイスにデータ通信を提供する。例えば、ネットワークリンク520は、ローカルネットワーク522を介して、ホストコンピュータ524へ、又は、インターネットサービスプロバイダ(ISP)526によって動作するデータ機器への接続を提供する。次に、ISP526は、今では一般に「インターネット」528と呼ばれるワールドワイドパケットデータ通信ネットワークを介して、データ通信サービスを提供する。ローカルネットワーク522及びインターネット528は、どちらもデジタルデータストリームを搬送する電気信号、電磁信号、又は光信号を使用する。コンピュータシステム500との間でデジタルデータを搬送する種々のネットワークを介する信号、並びにネットワークリンク520上、及び通信インターフェイスを介する信号は、情報を移送する例示的な形の搬送波である。
[0045] コンピュータシステム500は、1つ又は複数のネットワーク、ネットワークリンク520、及び通信インターフェイス518を介してメッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ530が、インターネット528、ISP526、ローカルネットワーク522、及び通信インターフェイス518を介して、アプリケーションプログラムに関する要求されたコードを伝送する場合がある。本発明によれば、こうしてダウンロードされたアプリケーションの1つが、例えば、実施形態の照度最適化のために提供される。受信されたコードは、受信された時点でプロセッサ504によって実行されること、及び/又は、後で実行するためにストレージデバイス510又は他の不揮発性ストレージ内に格納することができる。この場合、コンピュータシステム500は、搬送波の形でアプリケーションコードを取得することができる。
[0046] 本発明は、従来技術全体にわたって多数の利点を提供する。最も重要なことには、本発明は、XMLデータ及び階層型データ構造を効率良く処理し、容易にアップグレード可能であり、アプリケーションプログラムによって使用される以前の事前の初期化を必要としないXMLデータベースを提供する。XMLファイルを使用してオブジェクト(レコード)間の論理関係を記述することにより、データを処理するための対応クラス及び機能が自動的に生成される。アプリケーションとXMLデータベースとの間でデータの読み取り(read)、構文解析(parse)、及び書き込み(write)を実行するために、データベースハンドラ及びスキーマも自動的に生成され、かなりの開発時間が節約される。オブジェクト間の論理関係が変更された場合、新しいクラス、機能、データベースハンドラ、及びスキーマが適宜及び自動的に生成され、手操作で関係を変更する場合にしばしば発生する人的エラーが回避される。
[0047] データベース内のデータは、データの再使用及び共有のために、それらの論理関係に従って容易にバンドルすることができる。これにより、こうした動作が実質的には不可能である典型的なSQLデータベース全体にわたって大幅な改善が提供される。本明細書に記載されたXMLデータベースは、SQLデータベースに比べてより信頼性が高い。SQLデータベース内のデータは、フォーマットがユーザに対して未知のバイナリファイルに格納される。従って、SQLデータベースが破損した場合、ユーザの重要物を回復する方法がない。本明細書に記載されたXMLデータベースでは、すべてのデータは、適切にフォーマットされた階層型でプレーンテキストのXMLファイルに格納される。ユーザは、任意の既知のテキストエディタを使用して破損ファイルを開いて編集することにより、このファイルを容易に見つけ出して修正することができる。
[0048] 開示された実施形態の上記説明は、当業者であれば誰でも本発明を作成又は使用できるようにするために提供されたものである。当業者にはこれらの実施形態への様々な修正が容易に明らかとなり、本明細書に定義された一般原理は、本発明の精神又は範囲から逸脱することなしに、他の実施形態に適用することができる。それ故、本発明は、本明細書に示された実施形態に限定されるものと意図されるのではなく、特許請求の範囲に一致する全範囲が許可されるものとする。
Claims (13)
- コンピュータによって実行されたときXMLデータベースを初期化する方法を前記コンピュータに実行させる命令セットを内部に格納しているコンピュータ読み取り可能媒体であって、前記方法が、
階層形式で配置される複数のレコードを抽出するためにXMLファイルを構文解析すること、
各クラスが1つ又は複数の属性と関連付けられている対応クラスを、各レコードについて作成すること、
前記データベースにどのようにアクセス可能であるかを定義する複数の処理メソッドを、各クラスオブジェクトに関連付けられた1つ又は複数の属性のそれぞれについて作成することを含む、コンピュータ読み取り可能媒体。 - 前記方法が、前記レコード間の階層関係を表すXMLスキーマを生成することを更に含む、請求項1に記載のコンピュータ読み取り可能媒体。
- 前記1つ又は複数の属性のうちの少なくとも1つが、ファイル名と、XMLファイルとは別のディレクトリ内にある前記ファイル名で関連付けられたファイルとを記述する、請求項1に記載のコンピュータ読み取り可能媒体。
- 前記複数のクラスオブジェクトが、少なくとも1つの親オブジェクトを含む、請求項1に記載のコンピュータ読み取り可能媒体。
- 前記方法が、クラスオブジェクトが親クラスであるか否かを決定こと、各親クラスについて、関連付けられた子オブジェクトを格納するために、前記クラスオブジェクト内にベクトルコンテナを作成することを更に含む、請求項1に記載のコンピュータ読み取り可能媒体。
- 前記XMLファイルが暗号化される、請求項1に記載のコンピュータ読み取り可能媒体。
- XMLデータベースを初期化する方法であって、
階層形式で配置される複数のレコードを抽出するためにXMLファイルを構文解析すること、
各クラスが1つ又は複数の属性と関連付けられている複数のクラスオブジェクトを、各レコードについて作成すること、
前記データベースにどのようにアクセス可能であるかを定義する複数の処理メソッドを、各クラスオブジェクトに関連付けられた1つ又は複数の属性のそれぞれについて作成することを含む方法。 - 前記レコード間の階層関係を表すXMLスキーマを生成することを更に含む、請求項7に記載の方法。
- 前記1つ又は複数の属性のうちの少なくとも1つが、ファイル名と、XMLファイルとは別のディレクトリ内にある前記ファイル名で関連付けられたファイルとを記述する、請求項7に記載の方法。
- 前記複数のクラスオブジェクトが、少なくとも1つの親オブジェクト及び1つの子オブジェクトを含む、請求項7に記載の方法。
- クラスオブジェクトが親クラスであるか否かを判定すること、各親クラスについて、関連付けられた子オブジェクトを格納するために、前記クラスオブジェクト内にベクトルコンテナを作成することを更に含む、請求項7に記載の方法。
- 前記XMLファイルが暗号化される、請求項7に記載の方法。
- 請求項1に記載のコンピュータ読み取り可能媒体に格納された命令を実行する、コンピュータシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US97955907P | 2007-10-12 | 2007-10-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009187528A true JP2009187528A (ja) | 2009-08-20 |
Family
ID=41070659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008265037A Pending JP2009187528A (ja) | 2007-10-12 | 2008-10-14 | 改善された階層型xmlデータベースの方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9361400B2 (ja) |
JP (1) | JP2009187528A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10216842B2 (en) * | 2013-06-03 | 2019-02-26 | Google Llc | Method for clustering results from a same channel |
US10313439B2 (en) * | 2015-09-29 | 2019-06-04 | Netapp, Inc. | Methods and systems for managing resources in a networked storage environment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001147934A (ja) * | 1999-11-19 | 2001-05-29 | Nippon Telegr & Teleph Corp <Ntt> | 情報検索可能な暗号化情報配送方法及び装置 |
JP2001282727A (ja) * | 2000-03-29 | 2001-10-12 | Toshiba Corp | コンピュータ、サービス提供システム、データ出力方法、サービス提供方法、記憶媒体 |
JP2005521159A (ja) * | 2002-03-19 | 2005-07-14 | ロジックライブラリー,インコーポレイティド | データ記述言語に対するスキーマ情報の動的生成 |
JP2007164630A (ja) * | 2005-12-15 | 2007-06-28 | Canon Inc | 情報処理装置及びその制御方法、プログラム、記憶媒体 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7020641B2 (en) * | 2001-10-22 | 2006-03-28 | Sun Microsystems, Inc. | Method, system, and program for maintaining a database of data objects |
US7487168B2 (en) * | 2001-11-01 | 2009-02-03 | Microsoft Corporation | System and method for loading hierarchical data into relational database systems |
US20030182626A1 (en) * | 2002-03-22 | 2003-09-25 | Eran Davidov | On-demand creation of MIDlets |
US20040019589A1 (en) * | 2002-07-25 | 2004-01-29 | Basrur Rajesh G. | Driver for mapping standard database queries and commands to markup language documents |
GB2394800A (en) * | 2002-10-30 | 2004-05-05 | Hewlett Packard Co | Storing hierarchical documents in a relational database |
US20050097128A1 (en) * | 2003-10-31 | 2005-05-05 | Ryan Joseph D. | Method for scalable, fast normalization of XML documents for insertion of data into a relational database |
US20060230010A1 (en) * | 2005-03-29 | 2006-10-12 | General Electric Company | System and method for implementing decision systems |
KR100714693B1 (ko) * | 2005-06-07 | 2007-05-04 | 삼성전자주식회사 | 소프트웨어 모듈의 독립성을 보장하는 데이터베이스어플리케이션을 구현하는 시스템 및 방법 |
US20080301171A1 (en) * | 2007-05-31 | 2008-12-04 | Owen Jr Eugene | Methods, Systems, and Computer-Readable Media for Generating XML Files from Mainframe Data |
-
2008
- 2008-10-10 US US12/249,358 patent/US9361400B2/en active Active
- 2008-10-14 JP JP2008265037A patent/JP2009187528A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001147934A (ja) * | 1999-11-19 | 2001-05-29 | Nippon Telegr & Teleph Corp <Ntt> | 情報検索可能な暗号化情報配送方法及び装置 |
JP2001282727A (ja) * | 2000-03-29 | 2001-10-12 | Toshiba Corp | コンピュータ、サービス提供システム、データ出力方法、サービス提供方法、記憶媒体 |
JP2005521159A (ja) * | 2002-03-19 | 2005-07-14 | ロジックライブラリー,インコーポレイティド | データ記述言語に対するスキーマ情報の動的生成 |
JP2007164630A (ja) * | 2005-12-15 | 2007-06-28 | Canon Inc | 情報処理装置及びその制御方法、プログラム、記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
US20090313288A1 (en) | 2009-12-17 |
US9361400B2 (en) | 2016-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9804837B2 (en) | System and method for creating, managing, and reusing schema type definitions in services oriented architecture services, grouped in the form of libraries | |
JP5407043B2 (ja) | バイナリにエンコードされたxmlデータの効率的な区分的アップデート | |
US7287018B2 (en) | Browsing electronically-accessible resources | |
US7120869B2 (en) | Enhanced mechanism for automatically generating a transformation document | |
KR101086567B1 (ko) | 데이터베이스 저장소 내의 한 객체로서 캡슐화된 xml데이터를 저장 및 검색하기 위한 시스템 및 방법 | |
US7877366B2 (en) | Streaming XML data retrieval using XPath | |
US20020078068A1 (en) | Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system | |
US7873649B2 (en) | Method and mechanism for identifying transaction on a row of data | |
US20090254881A1 (en) | Code generation techniques for administrative tasks | |
US20090225981A1 (en) | Document processing and management approach to adding an exclusive plugin implementing a desired functionality | |
US20060031204A1 (en) | Processing queries against one or more markup language sources | |
US20100088676A1 (en) | Comparing and merging structured documents syntactically and semantically | |
US20070083538A1 (en) | Generating XML instances from flat files | |
WO2003077142A1 (en) | Method, apparatus, and system for data modeling and processing | |
EP2211277A1 (en) | Method and apparatus for generating an integrated view of multiple databases | |
US7865481B2 (en) | Changing documents to include changes made to schemas | |
US9129035B2 (en) | Systems, methods, and apparatus for accessing object representations of data sets | |
US9361400B2 (en) | Method of improved hierarchical XML databases | |
US20030037031A1 (en) | Mechanism for automatically generating a transformation document | |
Marchioni | MongoDB for Java developers | |
Joshi | Beginning XML with C# 7: XML Processing and Data Access for C# Developers | |
WO2008113642A1 (en) | A method for providing interaction between a first content set and a second content set | |
JP2000353120A (ja) | 電子的にアクセス可能なリソース及び/又はリソースの記述の処理方法 | |
AU2007229359B2 (en) | Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system | |
AU776284B2 (en) | Browsing electronically-accessible resources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110204 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110214 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110516 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110708 |