(57)【要約】      （修正有）【課題】ＸＭＬデータベースを初期化するための方法を提供する。【解決手段】方法は、階層形式で配置される複数のレコードを抽出するためにＸＭＬファイルを構文解析すること、各クラスが１つ又は複数の属性と関連付けられている複数のクラスオブジェクトを、各レコードについて作成すること、データベースにどのようにアクセス可能であるかを定義する複数の処理メソッドを、各クラスオブジェクトに関連付けられた１つ又は複数の属性のそれぞれについて作成することを含む。【選択図】図２Ｂ
2009187528.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実行されたときＸＭＬデータベースを初期化する方法を前記コンピュータに実行させる命令セットを内部に格納しているコンピュータ読み取り可能媒体であって、前記方法が、
階層形式で配置される複数のレコードを抽出するためにＸＭＬファイルを構文解析すること、
各クラスが１つ又は複数の属性と関連付けられている対応クラスを、各レコードについて作成すること、
前記データベースにどのようにアクセス可能であるかを定義する複数の処理メソッドを、各クラスオブジェクトに関連付けられた１つ又は複数の属性のそれぞれについて作成することを含む、コンピュータ読み取り可能媒体。
【請求項２】
前記方法が、前記レコード間の階層関係を表すＸＭＬスキーマを生成することを更に含む、請求項１に記載のコンピュータ読み取り可能媒体。
【請求項３】
前記１つ又は複数の属性のうちの少なくとも１つが、ファイル名と、ＸＭＬファイルとは別のディレクトリ内にある前記ファイル名で関連付けられたファイルとを記述する、請求項１に記載のコンピュータ読み取り可能媒体。
【請求項４】
前記複数のクラスオブジェクトが、少なくとも１つの親オブジェクトを含む、請求項１に記載のコンピュータ読み取り可能媒体。
【請求項５】
前記方法が、クラスオブジェクトが親クラスであるか否かを決定こと、各親クラスについて、関連付けられた子オブジェクトを格納するために、前記クラスオブジェクト内にベクトルコンテナを作成することを更に含む、請求項１に記載のコンピュータ読み取り可能媒体。
【請求項６】
前記ＸＭＬファイルが暗号化される、請求項１に記載のコンピュータ読み取り可能媒体。
【請求項７】
ＸＭＬデータベースを初期化する方法であって、
階層形式で配置される複数のレコードを抽出するためにＸＭＬファイルを構文解析すること、
各クラスが１つ又は複数の属性と関連付けられている複数のクラスオブジェクトを、各レコードについて作成すること、
前記データベースにどのようにアクセス可能であるかを定義する複数の処理メソッドを、各クラスオブジェクトに関連付けられた１つ又は複数の属性のそれぞれについて作成することを含む方法。
【請求項８】
前記レコード間の階層関係を表すＸＭＬスキーマを生成することを更に含む、請求項７に記載の方法。
【請求項９】
前記１つ又は複数の属性のうちの少なくとも１つが、ファイル名と、ＸＭＬファイルとは別のディレクトリ内にある前記ファイル名で関連付けられたファイルとを記述する、請求項７に記載の方法。
【請求項１０】
前記複数のクラスオブジェクトが、少なくとも１つの親オブジェクト及び１つの子オブジェクトを含む、請求項７に記載の方法。
【請求項１１】
クラスオブジェクトが親クラスであるか否かを判定すること、各親クラスについて、関連付けられた子オブジェクトを格納するために、前記クラスオブジェクト内にベクトルコンテナを作成することを更に含む、請求項７に記載の方法。
【請求項１２】
前記ＸＭＬファイルが暗号化される、請求項７に記載の方法。
【請求項１３】
請求項１に記載のコンピュータ読み取り可能媒体に格納された命令を実行する、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
[0001]  本出願は、２００７年１０月１２日出願の米国仮出願第６０／９７９，５５９号からの優先権を主張するものである。その内容は、全体を参照により本明細書に組み込むものとする。
【０００２】
[0002]  本発明は、概してデータベースストレージに関し、特に、階層型拡張マークアップ言語（ＸＭＬ）データベースの作成及び使用に関する。
【背景技術】
【０００３】
[0003]  多くのソフトウェアアプリケーションは、集中的なデータ処理を必要とする。通常、構造化照会言語（ＳＱＬ）データベースなどのデータベースが、必要なデータを格納するために使用される。多くのアプリケーションでは、ユーザは、アプリケーションを実行する以前にデータベースを初期化及び開始しなければならない。ＳＱＬデータベースは、標準的なデータ格納及び処理で周知のものである。しかし、典型的なリレーショナルＳＱＬデータベースを使用する場合、多くの欠点が存在する。
【０００４】
[0004]  こうした欠点の１つは、アプリケーションプログラムを開始する以前にデータベースがロード／作成される多くのアプリケーションの要件から生じるものである。データベース及びアプリケーションプログラムの両方を同時に実行することで、かなりのＣＰＵデマンドを発生させ、大量のメモリリソースを使用する。これにより、アプリケーションプログラムの動作速度をしばしば低下させる可能性がある。
【０００５】
[0005]  更に、ソフトウェア開発者は、新しいソフトウェアがリリースされるごとに、関連するデータベースをアップグレードするために新しいＳＱＬスクリプトを作成しなければならない。これによりかなりの量の余分な作業が発生し、しばしばアップグレードは非常に困難であり、更に時間及びコストがかかる可能性がある。例えば、ユーザが１つのデータベーステーブルに新しい列を追加したい場合、ユーザは、関係するテーブルデータの整合性を確保しなければならない。こうしたプロセスが、ソフトウェアのバグを持ち込んでしまう傾向がある。
【０００６】
[0006]  拡張マークアップ言語（ＸＭＬ）は、データの格納及び操作にとって、ますます一般的なものになりつつある。ＸＭＬは、データを階層状に表すための共通構文を提供する。リレーショナルデータベースは、データアイテムの集まりを、データへのアクセス及びデータの再アセンブルが可能な形式的に記述されたテーブルのセットとして編成する既知のタイプのデータベースである。しかし、典型的なＳＱＬベースのリレーショナルデータベースは、ＸＭＬデータフォーマットを効率良く処理することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
[0007]  従って、ＸＭＬデータフォーマットを効率良く処理するためのデータベースが求められている。
【課題を解決するための手段】
【０００８】
[0008]  本発明は、とりわけ上記問題を克服するデータベース及びデータベースの使用方法を提供する。より詳細には、本発明は、ＸＭＬファイルを使用してデータオブジェクト間の階層関係を記述することが可能な、ＸＭＬデータを格納及び処理するためのＸＭＬ階層型データベースを作成するためのシステム及び方法を提供する。ＸＭＬデータベースにおけるオブジェクト及びそれらの属性へのアクセス及び処理のクラス及びメソッドは、ＸＭＬファイルの構文解析によって生成することができる。
【０００９】
[0009]  例示的実施形態に従って、ＸＭＬデータベースを初期化するコンピュータ実施方法が提供される。この方法は、階層形式で配置される複数のレコードを抽出するためにＸＭＬファイルを構文解析すること、各クラスが１つ又は複数の属性と関連付けられている複数のクラスオブジェクトを、各レコードについて作成すること、データベースにどのようにアクセス可能であるかを定義する複数の処理メソッドを、各クラスオブジェクトに関連付けられた１つ又は複数の属性のそれぞれについて作成することを含む。
【００１０】
[0010]  本発明の方法の結果として、関連付けられたアプリケーションプログラムを実行する以前に初期化する必要のないＸＭＬデータベースを提供することが可能である。更に、本発明のＸＭＬデータベースは、新しいデータベースデータ及びＸＭＬスキーマを用いて容易にアップグレードすることができる。更に、データの共有及び再使用を目的として、論理データが容易にバンドルされる。
【００１１】
[0011]  当業者であれば、添付の図面と共に本発明の特定の実施形態についての以下の説明を再検討することで、本発明のこれら及び他の態様及び特徴が明らかとなろう。
【発明を実施するための最良の形態】
【００１２】
[0018]  次に、当業者が本発明を実施できるように本発明の例示として提供された図面を参照しながら、本発明について詳細に説明する。特に、以下の図面及び例示は、本発明の範囲を１つの実施形態に限定することを意味するものではなく、説明又は図示された要素の一部又はすべてを交換することによって他の実施形態が可能である。更に、本発明の特定の要素が、既知の構成要素を使用して部分的又は完全に実施することができる場合、こうした既知の構成要素のうちで本発明を理解するために必要な部分のみについて説明し、こうした既知の構成要素のうちの他の部分についての詳細な説明は、本発明を不明瞭にしないために省略する。当業者であれば明らかなように、本明細書で特に指定のない限り、ソフトウェアで実施されているものとして説明される実施形態は、これらに限定されるべきでなく、ハードウェア、又はソフトウェアとハードウェアの組合せで実施される実施形態も含むことができ、その逆もまた同様である。本明細書では、１つの構成要素を示す実施形態を限定的なものとみなすべきではなく、むしろ本発明は、本明細書で明示的に示されていない限り、複数の同じ構成要素を含む他の実施形態を包含することを意図しており、その逆もまた同様である。更に出願者は、そのように明示的に示されていない限り、明細書又は特許請求の範囲におけるいずれの用語も、非共通又は特別な意味を持つものであることを意図していない。更に本発明は、本明細書で例として参照された既知の構成要素に対する現在及び将来の既知の等価物を包含する。
【００１３】
[0019]  本明細書では、ＸＭＬデータベースの生成及びＸＭＬデータベースオブジェクトの処理のシステム及び方法について説明する。図１は、開示された様々な実施形態に従って使用可能なシステム１００を示す。システム１００は、データベース及びデータベースに格納されたデータにアクセスするための方法を定義するように構成された事前処理モジュール１１０と、アプリケーションプログラムを使用する場合にデータを操作するように構成されたデータベース処理モジュール１２０とを含むことができる。事前処理モジュール１１０及び／又はデータベース処理モジュール１２０は、アプリケーションプログラム内に統合するか、あるいは必要に応じてアプリケーションプログラムによってアクセスすることができる。事前処理モジュール１１０及びデータベース処理モジュール１２０は、コンピュータメモリ内に格納するか、又はコンピュータの中央処理装置（ＣＰＵ）の一部として実施することができる。
【００１４】
[0020]  事前処理モジュール１１０は、例えば、ＸＭＬパーサ１１２、クラスジェネレータ１１４、スキーマジェネレータ１１６、及びデータベースハンドラジェネレータ１１８などの複数の事前処理サブモジュールを含むことができるが、これらに限定されない。データベースオブジェクト間の論理関係を定義する１つ又は複数のＸＭＬファイルを提供することができる。すなわち、ＸＭＬデータベースを作成する場合、データベースに格納されることになるオブジェクト間の関係をＸＭＬファイルによって定義することができる。ＸＭＬパーサ１１２は、ＸＭＬファイルを構文解析するように構成することができる。例えば、オープンソースXerces APIなどのＸＭＬファイルを構文解析することが可能な任意のパーサを使用することができる。
【００１５】
[0021]  クラスジェネレータ１１４は、ＸＭＬファイル内の各レコードについてクラスオブジェクトを生成するように構成することができる。スキーマジェネレータ１１６は、ＸＭＬファイルからＸＭＬスキーマを生成するように構成することができる。スキーマは、ＸＭＬ文書の構造を定義する。データベースから抽出されたデータが適切な構造に対応することを確実にするために使用することができる。ハンドラジェネレータ１１８は、データを自動的に処理するための１つ又は複数のハンドラを定義するように構成することができる。ハンドラは、例えば、ＸＭＬデータベースからデータを自動的に抽出するため、又はデータをデータベースに格納するためのプログラム又はルーチンを含むことができる。
【００１６】
[0022]  それぞれの階層型オブジェクトツリーについて、データベースハンドラハンドラジェネレータ１１８は、構築プロセス用にセットアップするために構築ディレクトリ内のソースファイル及びハードファイルに格納されたハンドラクラスを生成する。クラスジェネレータ１１４によって生成されるトップレコードクラスでは、ＸＭＬデータベース内のデータの読み取り及び構文解析のために、対応するハンドラクラスが使用される。
【００１７】
[0023]  データベースをフォーマットするためにＸＭＬファイルが事前処理されると、データベースモジュール１２０を介してデータベース内のデータにアクセスすることができる。データベースモジュール１２０は、ハンドラジェネレータ１１８によって作成されたハンドラを使用して、データベース内に格納されたデータの取り出し、格納、又はそれ以外の処理を、必要に応じてアプリケーションプログラムによって自動的に実行することができる。例えば、アプリケーションが開始された場合、パーサ、データベースハンドラ、クラス、及びそれらの対応する機能並びにＸＭＬスキーマが、ＸＭＬファイルからデータベースへとデータをロードするために使用される。
【００１８】
[0024]  パーサ及びデータベースハンドラは、ＸＭＬファイルを構文解析してそれらから必要なデータを入手するために使用される。ＸＭＬスキーマは、ＸＭＬファイルフォーマットが正しいことを確保し、従って、データベースが破損していないことを確かめるために使用される。クラス及びそれらの対応する機能は、データを例えばクラスオブジェクトのベクトルとしてデータコンテナに格納するために使用される。
【００１９】
[0025]  図２Ａは、ＸＭＬファイル２００の一部の例を示す。図に示されるように、ＸＭＬファイル２００は、子レコード２０３"Design Layer"を有する、"Design"と命名されたレコード２０１を含む。レコード２０１"Design"は、これを、例えば、名前、ファイル名、フォーマット、設計ユニットを定義するレコード、及び／又は他のレコードなどの複数の属性に関連付けているが、これらに限定されない。子レコード"Design Layer"も、name、color_idx、fill_idx、及びdrawmodeを含む、これに関連付けられた複数の属性を有するが、これらに限定されない。各属性は、ＸＭＬファイル内のＸＭＬ要素を記述するため、及びレコードに関する追加情報を提供するために使用される。
【００２０】
[0026]  図２Ｂは、ＸＭＬデータベース内のオブジェクト及びそれらの属性にアクセス及び処理するためのコードを生成する方法を示す。この方法は、データを編成するための、図２Ａに示されたＸＭＬファイル２００などのＸＭＬファイルの事前処理を含む。２０２に示されるように、例えば、図１を参照しながら前述したパーサを使用して、ＸＭＬファイルが読み取られ、構文解析される。ＸＭＬファイルは、ファイル内に定義されたレコード間の論理関係を記述する。これには、例えば親子関係、兄弟関係、依存関係、及び／又は他の関係が含まれる。構文解析は、ＸＭＬファイルの主要部分を抽出するために実行される。例えば、幾つかの実施形態では、パーサは、トップレベルの親要素を抽出するようにのみ構成することができる。パーサは、ＸＭＬファイルから事前に定義されたデータを抽出するように、管理者によって構成することができる。
【００２１】
[0027]  ２０４に示されるように、各トップレベル又は親レコード及び任意の子レコードは、アレイ内に格納される。レコードは異なるアレイ内に格納することができる。図２Ａに示されたＸＭＬファイルの例では、トップレベルレコード２０１"Design"はアレイ内に格納され、子レコード２０３"Design Layer"は別のアレイ内に格納される。更に、各トップレベル及び／又は子レコードに関連付けられた属性は、対応クラスオブジェクトのメンバ変数内に格納される。
【００２２】
[0028]  次に、２０６に示されるように、各トップレコードについてクラスオブジェクトが生成される。例えば、クラスオブジェクトをDesignレコード用に作成することができる。クラスオブジェクトに関連付けられた各フィールド又は属性に対する処理メソッドのグループも作成することができる。処理メソッドは、例えば、各属性についてデータベースに格納されたデータに対して、設定、取得、追加、削除、名前検索、及び／又は他の動作を実行するためのメソッドを含むことができる。Designレコードの例を使用すると、処理メソッドは、名前、ファイル名、フォーマットなどを取得、設定、追加、又は削除するために生成することができる。処理メソッドは、必要に応じてアプリケーションプログラムによって実行することができる。
【００２３】
[0029]  各階層型オブジェクトツリーを表すＸＭＬスキーマも生成することができる。このスキーマを使用して、データベース内のデータ整合性が確実に行われる。スキーマの生成については、図３を参照しながら詳細に説明する。
【００２４】
[0030]  次に、２０８に示されるように、方法は、現在処理されているレコードに関連付けられた何らかの子レコードが存在するか否かを判定する。子レコードが存在する場合、２１０に示されるように、子オブジェクトを格納するために、現在のクラスオブジェクト内にベクトルコンテナが作成される。子レコードが存在しない場合、又は子レコードが存在し、ベクトルコンテナが作成されている場合、方法は、２１２に示されるように、すべてのレコードが処理されたか否かを判定する。追加のレコードが存在する場合、方法はステップ２０６に戻り、次のレコードのためにクラスオブジェクトを生成する。それ以外の場合、プロセスは結果として空のＸＭＬデータベース構造を生成して、完了する。
【００２５】
[0031]  図３は、ＸＭＬファイルからＸＭＬスキーマを生成する例示的方法をより詳細に示す。前述のように、スキーマは、データベース内のデータ整合性を確実にするために使用することができる。データベースからデータを読み取る際に、データが対応するスキーマと一致しない場合、警告又はエラーメッセージが提示される場合がある。生成されたデータベースハンドラを使用して、ＸＭＬデータベースからデータを読み取って構文解析する場合に、スキーマチェックを実行することができる。更に、スキーマ並びに新しいＸＭＬデータが、古いデータベースをアップグレードするために使用される。
【００２６】
[0032]  ３０２に示されるように、格納された各レコードについて、方法は、レコードがトップ又は親レコードであるか否かを判定する。各トップレコードについて、トップレコードにマッピングされたクラスから始まる階層型ツリーを記述及び定義するために、対応するＸＭＬスキーマが生成される。各トップレコードについて、データベースハンドラクラスが生成される。レコードがトップレコードでない場合、３０６に示されるように、方法は他のレコードをチェックする。レコードがトップレコードである場合、３０８に示されるように、現在のレコード及びその子レコードについてスキーマを生成することができる。スキーマは、スキーマファイルに格納することができる。
【００２７】
[0033]  ＸＭＬデータは、異なるファイルフォーマットのファイルに格納されたデータを含むことができる。図２ＡのＸＭＬファイル２００で示されるように、Designレコードは、インポートされるファイルへのフルパスを表すファイル名要素と、ファイルフォーマットを記述するフォーマット要素とを含む。アプリケーションのタイプに応じて、一部のファイルはかなり大きい場合がある。例えば、.gds及び.jpgファイルなどのイメージファイル、並びに一部のワードプロセッサファイル（すなわち.docファイル）は、大きい場合がある。幾つかの実施形態によれば、ＸＭＬファイル内で参照されるファイルは別々に格納し、オンデマンドでロードすることができる。すなわち、ＸＭＬファイルを１つのディレクトリに格納し、非ＸＭＬファイルは別のディレクトリに格納することができる。アプリケーションプログラムが非ＸＭＬファイルのうちの１つを要求した場合、そのファイルがロードされる。幾つかの実施形態では、ファイルはプログラムセッションが終了するまでロードされたままである。他の実施形態では、ファイルは、所定の期間又は使用されなくなるまでロードされたままとすることができる。
【００２８】
[0034]  大規模ファイルがＸＭＬファイル内で参照される場合、ディスクスペースを節約するために圧縮を使用することもできる。ファイルは、必要な場合に一時ディレクトリに圧縮解除することができる。幾つかの実施形態では、ＸＭＬファイル内の機密データを保護するために、データ暗号化を実行することもできる。
【００２９】
[0035]  ＸＭＬデータベース内に格納されたデータには複数のユーザがアクセスできることから、データが破損していないことを確実にするために、読み取り及び書き込みアクセス制御を実施することができる。例えば、制御は、２人のユーザが同時にデータを読み取ることができるが、１人のユーザは他のユーザによって同時に読み取られているデータを更新できないように、実施することができる。図４は、どのようにデータを共有できるかを決定する例を示す。他の規則が実施可能である。
【００３０】
[0036]  ４０２に示されるように、第１のユーザが読み取り又は書き込み動作を試行しているか否かに関して、決定がなされる。４０４及び４０６に示されるように、それぞれ読み取り又は書き込み動作の場合について、第２のユーザも同じデータに対して動作を実行しているか否かに関して、決定がなされる。４０８に示されるように、第２のユーザが読み取り動作を実行している場合、第１のユーザもそのデータを読み取ることができる。同様に、４１０に示されるように、第２のユーザによって他の動作が実行されていない場合、第１のユーザはそのデータを読み取ることができる。しかし、第２のユーザが書き込み動作を実行している場合、４１２に示されるように、第１のユーザは警告メッセージを受信する可能性があり、要求されたデータにアクセスする前に、第２のユーザが書き込み動作を完了するまで待機することが必要な場合がある。
【００３１】
[0037]  第１のユーザが書き込み動作を要求し、同じデータに対して第２のユーザも読み取り動作を実行していると判定された場合、４１４に示されるように、第１のユーザは警告メッセージを受信する可能性があり、データの書き込みが可能になる前に、第２のユーザが読み取り動作を完了するまで待機することが必要な場合がある。同様に、第２のユーザがすでに書き込み動作を実行している場合、４１８に示されるように、第１のユーザは警告メッセージを受信する可能性がある。しかし、第２のユーザによって要求されたデータに対して他の動作が実行されていない場合、４１６に示されるように、第１のユーザはそのデータを書き込むことができる。
【００３２】
[0038]  図５は、上記で詳細に説明したＸＭＬデータベースを利用及び／又は実施することができるコンピュータシステム５００の例を示すブロック図である。コンピュータシステム５００は、情報を通信するためのバス５０２又は他の通信機構と、情報を処理するためにバス５０２に結合されたプロセッサ５０４とを含む。コンピュータシステム５００は、プロセッサ５０４によって実行される情報及び命令を格納するためにバス５０２に結合されたランダムアクセスメモリ（ＲＡＭ）又は他のダイナミック記憶装置などのメインメモリ５０６も含む。また、メインメモリ５０６は、プロセッサ５０４によって実行される命令の実行中に一時変数又は他の中間情報を格納するためにも使用することができる。
【００３３】
[0039]  コンピュータシステム５００は、さらに、プロセッサ５０４に関する静的情報及び命令を格納するために、バス５０２に結合された読み取り専用メモリ（ＲＯＭ）５０８又は他のスタティック記憶装置を含む。磁気ディスク又は光ディスクなどのストレージデバイス５１０が、情報及び命令を格納するために提供されバス５０２に結合される。
【００３４】
[0040]  コンピュータシステム５００は、コンピュータユーザに情報を表示するために、バス５０２を介して、陰極線管（ＣＲＴ）あるいはフラットパネル又はタッチパネルディスプレイなどのディスプレイ５１２に結合することができる。英数字及び他のキーを含む入力デバイス５１４は、情報及びコマンド選択をプロセッサ５０４に送るために、バス５０２に結合される。他のタイプのユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ５０４に送るため、並びにディスプレイ５１２上のカーソルの動きを制御するためのマウス、トラックボール、又はカーソル方向キーなどのカーソルコントロール５１６である。この入力デバイスは、通常、デバイスが平面内の位置を指定できるようにする第１の軸（例えば、ｘ）及び第２の軸（例えば、ｙ）という２つの軸における２つの自由度を有する。タッチパネル（スクリーン）ディスプレイも入力デバイスとして使用することができる。
【００３５】
[0041]  本明細書で使用される「コンピュータ読み取り可能媒体」という用語は、実行命令をプロセッサ５０４に提供することに関与する任意の媒体を意味する。このような媒体は、これに限定はされないが、不揮発性媒体、揮発性媒体、及び伝送媒体を含む多数の形態をとることができる。不揮発性媒体は、例えば、ストレージデバイス５１０などの光又は磁気ディスクを含む。揮発性媒体は、メインメモリ５０６などのダイナミックメモリを含む。伝送媒体は、バス５０２を含むワイヤを含む同軸ケーブル、銅線、及び光ファイバを含む。また、伝送媒体は、無線周波（ＲＦ）及び赤外線（ＩＲ）データ通信中に生成される音波又は光波の形態をとることができる。コンピュータ読み取り可能媒体の一般的な形態は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、任意の他の光媒体、パンチカード、紙テープ、穴パターンを備えた任意の他の物理媒体、ＲＡＭ、ＰＲＯＭ、及びＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、任意の他のメモリチップ又はカートリッジ、以下に説明する搬送波、又はコンピュータが読み取り可能な任意の他の媒体を含む。
【００３６】
[0042]  コンピュータ読み取り可能媒体の様々な形態は、１つ又は複数のシーケンスの１つ又は複数の命令を、実行のためにプロセッサ５０４に搬送することに関与することができる。例えば、命令は、初期にはリモートコンピュータの磁気ディスク上に担持される。リモートコンピュータは、そのダイナミックメモリに命令をロードし、モデムを使用し電話回線を介して命令を送信することができる。コンピュータシステム５００に対してローカルなモデムは、電話回線上のデータを受信し、赤外線送信器を使用してデータを赤外線信号に変換することができる。バス５０２に結合された赤外線検出器は、赤外線信号で搬送されたデータを受信し、このデータをバス５０２上に配置することができる。バス５０２は、データをメインメモリ５０６に搬送し、プロセッサ５０４がそこから命令を取り出して実行する。メインメモリ５０６が受信した命令は、任意選択で、プロセッサ５０４による実行の前又は後のいずれかにストレージデバイス５１０上に格納することができる。
【００３７】
[0043]  コンピュータシステム５００は、好ましくは、バス５０２に結合された通信インターフェイス５１８も含む。通信インターフェイス５１８は、ローカルネットワーク５２２に接続されたネットワークリンク５２０に結合する２方向データ通信を提供する。例えば、通信インターフェイス５１８は、対応するタイプの電話回線へのデータ通信接続を提供するための、サービス統合デジタル網（ＩＳＤＮ）カード又はモデムとすることができる。他の例として、通信インターフェイス５１８は、互換ＬＡＮへのデータ通信接続を提供するためのローカルエリアネットワーク（ＬＡＮ）カードとすることができる。無線リンクも実施可能である。任意のこうした実施では、通信インターフェイス５１８は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、又は光信号を送信及び受信する。
【００３８】
[0044]  ネットワークリンク５２０は、通常、１つ又は複数のネットワークを介して、他のデータデバイスにデータ通信を提供する。例えば、ネットワークリンク５２０は、ローカルネットワーク５２２を介して、ホストコンピュータ５２４へ、又は、インターネットサービスプロバイダ（ＩＳＰ）５２６によって動作するデータ機器への接続を提供する。次に、ＩＳＰ５２６は、今では一般に「インターネット」５２８と呼ばれるワールドワイドパケットデータ通信ネットワークを介して、データ通信サービスを提供する。ローカルネットワーク５２２及びインターネット５２８は、どちらもデジタルデータストリームを搬送する電気信号、電磁信号、又は光信号を使用する。コンピュータシステム５００との間でデジタルデータを搬送する種々のネットワークを介する信号、並びにネットワークリンク５２０上、及び通信インターフェイスを介する信号は、情報を移送する例示的な形の搬送波である。
【００３９】
[0045]  コンピュータシステム５００は、１つ又は複数のネットワーク、ネットワークリンク５２０、及び通信インターフェイス５１８を介してメッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ５３０が、インターネット５２８、ＩＳＰ５２６、ローカルネットワーク５２２、及び通信インターフェイス５１８を介して、アプリケーションプログラムに関する要求されたコードを伝送する場合がある。本発明によれば、こうしてダウンロードされたアプリケーションの１つが、例えば、実施形態の照度最適化のために提供される。受信されたコードは、受信された時点でプロセッサ５０４によって実行されること、及び／又は、後で実行するためにストレージデバイス５１０又は他の不揮発性ストレージ内に格納することができる。この場合、コンピュータシステム５００は、搬送波の形でアプリケーションコードを取得することができる。
【００４０】
[0046]  本発明は、従来技術全体にわたって多数の利点を提供する。最も重要なことには、本発明は、ＸＭＬデータ及び階層型データ構造を効率良く処理し、容易にアップグレード可能であり、アプリケーションプログラムによって使用される以前の事前の初期化を必要としないＸＭＬデータベースを提供する。ＸＭＬファイルを使用してオブジェクト（レコード）間の論理関係を記述することにより、データを処理するための対応クラス及び機能が自動的に生成される。アプリケーションとＸＭＬデータベースとの間でデータの読み取り(read)、構文解析(parse)、及び書き込み(write)を実行するために、データベースハンドラ及びスキーマも自動的に生成され、かなりの開発時間が節約される。オブジェクト間の論理関係が変更された場合、新しいクラス、機能、データベースハンドラ、及びスキーマが適宜及び自動的に生成され、手操作で関係を変更する場合にしばしば発生する人的エラーが回避される。
【００４１】
[0047]  データベース内のデータは、データの再使用及び共有のために、それらの論理関係に従って容易にバンドルすることができる。これにより、こうした動作が実質的には不可能である典型的なＳＱＬデータベース全体にわたって大幅な改善が提供される。本明細書に記載されたＸＭＬデータベースは、ＳＱＬデータベースに比べてより信頼性が高い。ＳＱＬデータベース内のデータは、フォーマットがユーザに対して未知のバイナリファイルに格納される。従って、ＳＱＬデータベースが破損した場合、ユーザの重要物を回復する方法がない。本明細書に記載されたＸＭＬデータベースでは、すべてのデータは、適切にフォーマットされた階層型でプレーンテキストのＸＭＬファイルに格納される。ユーザは、任意の既知のテキストエディタを使用して破損ファイルを開いて編集することにより、このファイルを容易に見つけ出して修正することができる。
【００４２】
[0048]  開示された実施形態の上記説明は、当業者であれば誰でも本発明を作成又は使用できるようにするために提供されたものである。当業者にはこれらの実施形態への様々な修正が容易に明らかとなり、本明細書に定義された一般原理は、本発明の精神又は範囲から逸脱することなしに、他の実施形態に適用することができる。それ故、本発明は、本明細書に示された実施形態に限定されるものと意図されるのではなく、特許請求の範囲に一致する全範囲が許可されるものとする。
【図面の簡単な説明】
【００４３】
【図１】[0012]  ＸＭＬデータベースを生成するためのシステムの例示的ブロック図を示す。
【図２Ａ】[0013]  本発明による利用可能な例示的ＸＭＬファイルを示す。
【図２Ｂ】[0014]  図２Ａに示されるようなＸＭＬファイルを構文解析する例示的方法を示す。
【図３】[0015]  ＸＭＬデータベースにアクセスするためのコードを生成する例示的方法を示す。
【図４】[0016]  本発明によるデータアクセス許可を決定する例示的方法を示す。
【図５】[0017]  本発明のＸＭＬデータベースを利用及び／又は実施可能なコンピュータシステムの例示的ブロックを示す。
【図１】
2009187528.tif 000003
【図２Ａ】
2009187528.tif 000004
【図５】
2009187528.tif 000005
【図２Ｂ】
2009187528.tif 000006
【図３】
2009187528.tif 000007
【図４】
2009187528.tif 000008
【外国語明細書】
2009187528000001.pdf