(57)【要約】  ＸＭＬスキーマを現場で発展させるための方法およびシステムが開示される。既存のＸＭＬスキーマを自動的に発展させるために、スキーマイボルバは既存のＸＭＬスキーマおよびＸＭＬ文書の両方を入力として受取る。ＸＭＬ文書は既存のＸＭＬスキーマに行なわれるべき変更を示す。既存のＸＭＬスキーマおよびＸＭＬ文書に基づき、スキーマイボルバは既存のＸＭＬスキーマを、ＸＭＬ文書に示される変更を組込んだ新しいＸＭＬスキーマに発展させる。一つの態様では、スキーマイボルバは新しいＸＭＬスキーマに基づき１つ以上のＳＱＬステートメントを生成する。ＳＱＬステートメントは、データベースサーバによって実行されると、データベース構造が新しいＸＭＬスキーマと一致するよう、データベースサーバに前の既存ＸＭＬスキーマに基づくデータベース構造を発展させる。これは、データをデータベース構造でコピーすることなく「現場」で達成される。
2007534036.tif 000002
【特許請求の範囲】
【請求項１】
拡張可能なマークアップ言語（ＸＭＬ）スキーマを発展させる方法であって、
コンピュータシステムで実行されるスキーマイボルバにおいて、第１のＸＭＬスキーマに対してなされるべき１つ以上の変更を示す文書を受取るステップと、
前記第１のＸＭＬスキーマおよび前記文書に基づき、前記スキーマイボルバは第２のＸＭＬスキーマを生成するステップと、
前記第２のＸＭＬスキーマに基づき、１つ以上の第１の構造化クエリー言語（ＳＱＬ）ステートメントを生成するステップとを含む、方法。
【請求項２】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトタイプを生成させる、請求項１に記載の方法。
【請求項３】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトテーブルを生成させる、請求項１に記載の方法。
【請求項４】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトタイプを削除させる、請求項１に記載の方法。
【請求項５】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトテーブルを削除させる、請求項１に記載の方法。
【請求項６】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトタイプを変更させる、請求項１に記載の方法。
【請求項７】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトテーブルを変更させる、請求項１に記載の方法。
【請求項８】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトインスタンスを変更させる、請求項１に記載の方法。
【請求項９】
前記１つ以上の変更は、第３のＸＭＬスキーマによって指定される１つ以上のＸＭＬタイプの１つ以上のインスタンスとして表現される、請求項１に記載の方法。
【請求項１０】
実行されると、前記１つ以上の第１のＳＱＬステートメントの影響を無効にする、１つ以上の第２のＳＱＬステートメントを生成するステップをさらに含む、請求項１に記載の方法。
【請求項１１】
前記１つ以上の第１のＳＱＬステートメントを実行しながら、エラーが起こったかどうかを判断するステップと、
エラーが起こったという判断に応答して、前記１つ以上の第２のＳＱＬステートメントを１つ以上実行するステップとをさらに含み、前記１つ以上の第２のＳＱＬステートメントは実行されると、実行された前記１つ以上の第１のＳＱＬステートメントの影響を無効にする、請求項１０に記載の方法。
【請求項１２】
１つ以上のデータベースオブジェクトタイプの組を定義する定義データを有するデータシステムにおいて、データベースタイプを変更するための構造化クエリー言語（ＳＱＬ）ステートメントを生成する方法であって、
第１の拡張可能なマークアップ言語（ＸＭＬ）スキーマを受取るステップと、
前記第１のＸＭＬスキーマに基づき、実行されると、データベースサーバに前記１つ以
上のデータベースオブジェクトタイプの組を変更させる、１つ以上のＳＱＬステートメントを生成するステップとを含む、方法。
【請求項１３】
前記１つ以上のデータベースオブジェクトタイプは、前記第１のＸＭＬスキーマと異なる第２のＸＭＬスキーマに基づき生成される、請求項１２に記載の方法。
【請求項１４】
前記第１のＸＭＬスキーマは前記第２のＸＭＬスキーマに基づき生成される、請求項１３に記載の方法。
【請求項１５】
前記１つ以上のＳＱＬステートメントは、実行されると、前記データベースサーバに前記１つ以上のデータベースオブジェクトタイプを１つ以上生成させる、請求項１２に記載の方法。
【請求項１６】
前記１つ以上のＳＱＬステートメントは、実行されると、前記データベースサーバに前記１つ以上のデータベースオブジェクトタイプを１つ以上削除させる、請求項１２に記載の方法。
【請求項１７】
データベースオブジェクトインスタンスを変更するための構造化クエリー言語（ＳＱＬ）ステートメントを生成する方法であって、
第１の拡張可能なマークアップ言語（ＸＭＬ）スキーマを受取るステップと、
前記第１のＸＭＬスキーマに基づき、実行されるとデータベースサーバに１つ以上のデータベースオブジェクトインスタンスの組を変更させる、１つ以上のＳＱＬステートメントを生成させるステップとを含む、方法。
【請求項１８】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項１９】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項２に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２０】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項３に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２１】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項４に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２２】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項５に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２３】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項６に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２４】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項７に記載の方法を
行なわせる、コンピュータ読取可能媒体。
【請求項２５】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項８に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２６】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項９に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２７】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１０に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２８】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１１に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２９】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１２に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項３０】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１３に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項３１】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１４に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項３２】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１５に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項３３】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１６に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項３４】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１７に記載の方法を行なわせる、コンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は以下の米国特許出願に関連し、その全部の内容はあらゆる目的のためにここに引用により援用される：
２００２年９月２７日に出願され、「リレーショナルシステムにおける階層データをアクセスするためのオペレータ」と題される、Nipun Agarwal, Ravi Murthy, Eric Sedlar,
Sivasankarn ChandrasekarおよびFei Geiの米国特許出願連続番号第１０／２６０，１３８号；
２００２年９月２７日に出願され、「リレーショナルデータの一致した階層抽象化の提供」と題される、Nipun Agarwal, Eric Sedlar, Ravi MurthyおよびNamit Jainの米国特許出願連続番号第１０／２６０，３８４号；
２００２年９月２７日に出願され、「オブジェクトリレーショナルデータベースシステムにＸＭＬスキーマをマッピングするためのメカニズム」と題される、Ravi Murthy, Muralidhar Krishnaprasad, Sivasankarn Chandrasekar, Eric Sedlar, Vishu KrishnamurthyおよびNipun Agarwalの米国特許出願連続番号第第１０／２５９，２７８号；
２００２年９月２７日に出願され、「データベースシステムにおいてバージョン管理されたデータを効率的に管理するための索引付け」と題される、Nipun Agarwal, Eric SedlarおよびRavi Murthyの米国特許出願連続番号第１０／２６０，１６１号；
２００２年９月２７日に出願され、「階層的に編成されたリソースのコンテンツおよび特性を格納するためのメカニズム」と題される、Ravi Murthy, Eric Sedlar, Nipun AgarwalおよびNeema Jalaliの米国特許出願連続番号第１０／２５６，５２４号；
２００２年９月２７日に出願され、「データベースシステムにおける均一アクセス制御のためのメカニズム」と題される、Ravi Murthy, Eric Sedlar, Nipun Agarwal, Sam IdiculaおよびNicolas Montoyaの米国特許出願連続番号第１０／２５９，１７６号；
２００２年９月２７日に出願され、「ＸＭＬドキュメントのレイジーマニフェステーションのローダブルユニット」と題される、Syam Pannala, Eric Sedlar, Bhushan Khaladkar, Ravi Murthy, Sivasankarn ChandrasekarおよびNipun Agarwalの米国特許出願連続番号第１０／２５６，７７７号；
２００２年９月２７日に出願され、「リレーショナルデータベースシステムにおいて階層アクセスを提供する構造化データを効率的に索引付けするためのメカニズム」と題される、Neema Jalali, Eric Sedlar, Nipun AgarwalおよびRavi Murthyの米国特許出願連続番号第１０／２６０，３８１号；
２００３年８月２５日に出願され、「半構造データの直接ローディング」と題される、Namit Jain, Nipun AgarwalおよびRavi Murthyの米国特許出願連続番号第１０／６４８，６００号；
２００３年８月２５日に出願され、「不透過型の直接ローディング」と題される、Namit Jain, Ellen Batbouta, Ravi Murthy, Nipun Agarwal, Paul ReillyおよびJamesの米国特許出願連続番号第１０／６４８，５７７号；および
２００３年８月２５日に出願され、「ＸＭＬスキーマの発展を可能にするためのメカニズム」と題される、Sam Idicula, Nipun Agarwal, Ravi Murthy, Eric SedlarおよびSivasankarn Chandrasekarの米国特許出願連続番号第１０／６４８，４９７号。
【０００２】
発明の分野
本発明はデータ管理システムに関し、特にＸＭＬスキーマを更新するための技法、並びに更新されたＸＭＬスキーマに一致するようＸＭＬスキーマに基づくインスタンス文書およびデータベース構造を更新するための技法に関する。
【背景技術】
【０００３】
発明の背景
拡張可能なマークアップ言語（ＸＭＬ）を用いると、情報は特定の階層構造と一致するように表わすことができる。ＸＭＬスキーマはこのような構造を定義する。ＸＭＬスキーマはルートＸＭＬ要素を含む。１つ以上の他のＸＭＬ要素を、ルートＸＭＬ要素のコンテンツとして、ルートＸＭＬ要素内にネストすることができる。このようなネストされるＸＭＬ要素は、ルートＸＭＬ要素の子ＸＭＬ要素と呼ばれる。逆に、ルートＸＭＬ要素は子ＸＭＬ要素の親ＸＭＬ要素と呼ばれる。子ＸＭＬ要素の各々は、親ＸＭＬ要素内にネストされる１つ以上のさらなる子ＸＭＬ要素の親ＸＭＬ要素となり得る。ＸＭＬスキーマ内のＸＭＬ要素の親子の関係は階層構造を定義し、それに従い情報は階層的に構造化された態様で格納することができる。ＸＭＬスキーマにおける各ＸＭＬ要素に対して、ＸＭＬスキーマはそのＸＭＬ要素のコンテンツ値のタイプを定義する。
【０００４】
ＸＭＬスキーマと一致して格納される情報は、ＸＭＬスキーマ内におけるＸＭＬ要素のＸＭＬタグを示す必要はない。具体的には、このような情報がどのＸＭＬスキーマと一致するのかわかっている限り、ＸＭＬスキーマにおけるＸＭＬ要素に対応するコンテンツ値は、コンテンツ値を囲むＸＭＬタグを持たないで格納することができる。たとえば、コンテンツ値はカンマ記号のような区切り文字によって分けられているフォーマットに従って、格納することができる。コンテンツ値をＸＭＬスキーマにおける対応するＸＭＬ要素と位置合せさせるために、対応するＸＭＬスキーマを参照することができる。
【０００５】
別の例として、データベーステーブルおよびデータベースビューのようなデータベース構造は、ＸＭＬスキーマに基づいて生成することができる。このようなデータベーステーブルの列に関連付けられる名称およびデータタイプは、ＸＭＬスキーマにおけるＸＭＬ要素の属性によって示される名称およびデータタイプに対応し得る。ＸＭＬスキーマにおける特定のＸＭＬ要素に対応するコンテンツ値は、特定のＸＭＬ要素に対応するデータベーステーブルの列に格納することができる。
【０００６】
各々が同じＸＭＬスキーマに基づく複数の異なる組のコンテンツ値は、互いに明確に区別して格納できる。各組は別個の「インスタンス文書」である。たとえば、ＸＭＬスキーマは“＜element name='quantity' type='integer'＞”のようなＸＭＬ要素を定義することができる。あるインスタンス文書はＸＭＬ要素に対応するコンテンツ値「１」を含むかも知れない。別のインスタンス文書は同じＸＭＬ要素に対応するコンテンツ値「２」を含むかも知れない。コンテンツ値をデータベーステーブルに格納する場合、異なるインスタンス文書からのコンテンツ値はデータベーステーブルの異なる行に格納することができる。同じＸＭＬ要素に対応するコンテンツ値は、データベーステーブルの同じ列に格納することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
たくさんのインスタンス文書が特定のＸＭＬスキーマと一致するように生成された後でも、ＸＭＬスキーマを発展させることが望ましい場合が度々ある。たとえば、新しいＸＭＬ要素をＸＭＬスキーマの既存のＸＭＬ要素間に挿入することにより、新たなＸＭＬ要素をＸＭＬスキーマに加えたい場合があるかも知れない。別の例としては、特定のＸＭＬ要素が計数値タイプを表わす場合、特定のＸＭＬ要素において子ＸＭＬ要素の各々は異なる計数値を表わすような組に新しいＸＭＬ要素を挿入したい場合があるかも知れない。
【０００８】
ＸＭＬスキーマは、たとえばテキスト編集ツールを用いて、手作業で変更することができる。残念ながら、ＸＭＬスキーマを変更した結果、今までＸＭＬスキーマと一致していた既存のインスタンス文書は、ＸＭＬスキーマと一致しないようになるかも知れない。変
更されたＸＭＬスキーマに従って解釈されるインスタンス文書は間違って解釈されるかも知れず、それにより、インスタンス文書のコンテンツ値が変更されたＸＭＬスキーマの間違ったＸＭＬ要素と位置合せされるかも知れない。
【０００９】
さらに、データベーステーブルやデータベースビューのようなデータベース構造であって、その構造がＸＭＬスキーマの変更前のＸＭＬスキーマに基づいていたものは、ＸＭＬスキーマと一致しなくなるかも知れない。その結果、このようなデータベース構造において、変更されたＸＭＬスキーマと一致して生成されたインスタンス文書にコンテンツ値を正しく格納することが不可能になるかも知れない。たとえば、データベーステーブルにはＸＭＬスキーマに挿入された新しいＸＭＬ要素に対応する列がないかも知れない。さらに、特定の列の特定のＸＭＬ要素へのマッピングが変化したのなら、既存のインスタンス文書は不正確に解釈されるかも知れない。
【００１０】
ＸＭＬスキーマに基づくインスタンス文書およびデータベース構造が、ＸＭＬスキーマが変更された後でも、それらが基づいているＸＭＬスキーマと一致し続けることを確実にするアプローチは確立されていない。ＸＭＬスキーマを発展させながら、ＸＭＬスキーマに基づくインスタンス文書およびデータベース構造が、ＸＭＬスキーマが発展させられた後でも、ＸＭＬスキーマと一致し続けることを確実にするための技法が求められる。
【００１１】
本箇所で説明するアプローチは追及することができるアプローチではあるが、必ずしも今までに考えられたまたは追及されたものには限らない。したがって、特に明記しない限り、ここに記載されるいずれのアプローチも本箇所に含まれているからといって、先行技術であると思われてはならない。
【００１２】
本発明は添付される図面で実施例により示されが、それは限定を意図したものではなく、類似した参照番号は類似した要素を示す。
【課題を解決するための手段】
【００１３】
発明の詳細な説明
（１）ＸＭＬスキーマ、（２）ＸＭＬスキーマに基づくデータベースオブジェクトタイプおよびテーブル、ならびに（３）データベースオブジェクトタイプに基づくデータベースオブジェクトインスタンスについて、現場での発展のための方法およびシステムが提供される。以下の記載では、説明する目的のために、さまざまな特定の詳細が本発明を十分に理解できるように示される。しかし、本発明はこのような特定の詳細がなくても実施できる。他の例では、本発明を不必要に曖昧にするのを避けるために、周知の構造および装置がブロック図の形で示される。
【００１４】
機能的総括
ＸＭＬスキーマに一致するインスタンス文書およびデータベース構造は、ＸＭＬスキーマが発展させられた後でもそのインスタンス文書およびデータベース構造がＸＭＬスキーマと一致し続けるよう、ＸＭＬスキーマとともに発展させることが望ましい。本発明の実施例に従い、このような継続する一致は、コンピュータシステムで実行されるスキーマイボルバによって達成される。
【００１５】
スキーマイボルバは既存のＸＭＬスキーマおよびＸＭＬ文書の両方を入力として受取る。ＸＭＬ文書は既存のＸＭＬスキーマに対して行なわれる１つ以上の変更を示す。既存のＸＭＬスキーマおよびＸＭＬ文書に基づき、スキーマイボルバはまずＸＭＬ文書に示される変更を含む新しいＸＭＬスキーマを生成する。
【００１６】
さらに、一実施例に従い、スキーマイボルバは新しいＸＭＬスキーマに基づき、１つ以
上の構造化クエリー言語（ＳＱＬ）ステートメントを生成する。ＳＱＬステートメントがデータベースサーバによって実行されることにより、データベース構造が新しいＸＭＬスキーマと一致するよう、データベースサーバに元の既存のＸＭＬスキーマに基づいているデータベース構造を発展させる。このようなデータベース構造はたとえばデータベースオブジェクトタイプおよびデータベースオブジェクトインスタンスを定義し得る。
【００１７】
データベースオブジェクトタイプ、データベースオブジェクトテーブル、およびデータベースオブジェクトインスタンス
データベースオブジェクトタイプは、データベースオブジェクトタイプに基づいているすべてのデータベースオブジェクトインスタンスの構造および属性を特定する。たとえば、“address”オブジェクトタイプは３つの基本“VARCHAR”オブジェクトタイプのシーケンスを特定するかも知れない：１つは人の名前(name)を記憶するため、１つは番地(street)識別子を記憶するため、および１つは都市(city)識別子を記憶するためのものである。データベースオブジェクトテーブルはデータベースオブジェクトタイプに基づくデータベーステーブルである。たとえば、“address”オブジェクトタイプに基づく“address”オブジェクトテーブルは、少なくとも３つの別個の列を含む。１つは人の名前用、１つは番地識別子用、１つは都市識別子用である。データベースオブジェクトタイプが変えられると、そのデータベースオブジェクトタイプに基づくデータベースオブジェクトテーブルも対応して変えられる。
【００１８】
“address”オブジェクトタイプに基づき、複数の異なる“address”オブジェクトインスタンスを生成することができる。“address”オブジェクトインスタンスの各々は、その“address”オブジェクトタイプによって特定される構造および属性に一致する。異なる“address”オブジェクトインスタンスの各々は、“address”オブジェクトによって指定される特定の属性のための異なる値を指定し得る。たとえば、１つの“address”オブジェクトインスタンスは名前の属性の値として“Joe Smith”を指定するかも知れないし、別の“address”オブジェクトインスタンスは名前の属性の値として“John Taylor”を指定するかも知れない。
【００１９】
ＸＭＬスキーマを発展させる場合、ＸＭＬ要素はＸＭＬスキーマに対して追加または削除できる。新しいＸＭＬ要素を追加することにより、スキーマイボルバに、ＳＱＬステートメントであって、データベースサーバによって実行されると、データベースサーバが対応する属性をデータベースオブジェクトタイプに追加させるようなＳＱＬステートメントを生成させ得る。ＳＱＬステートメントがデータベースサーバによって実行されることにより、データベースサーバに、対応する列をデータベースオブジェクトタイプに基づくデータベースオブジェクトインスタンスを記憶するデータベーステーブルに追加させ得る。
【００２０】
同様に、ＸＭＬ要素を削除することにより、スキーマイボルバに、ＳＱＬステートメントであって、データベースサーバによって実行されると、データベースサーバに対応する属性をデータベースオブジェクトタイプから取除かせるようなＳＱＬステートメントを生成させ得る。ＳＱＬステートメントがデータベースサーバによって実行されることにより、データベースサーバに、データベースオブジェクトタイプに基づくデータベースオブジェクトインスタンスを記憶するデータベーステーブルから対応する列を落とさせ得る。
【００２１】
こうして、スキーマイボルバによって生成されたＳＱＬステートメントは、発展させるべきデータベースオブジェクトタイプおよびデータベースオブジェクトインスタンスの両方を新しいＸＭＬスキーマと一致させ得る。このようなＳＱＬステートメントにより、データベースオブジェクトタイプおよびデータベースオブジェクトインスタンスが生成、削除、および／または変更され得る。
【００２２】
現場での発展
ここに記載する技法は、ＸＭＬスキーマ並びにこのようなＸＭＬスキーマに基づくデータベースオブジェクトタイプおよびデータベースオブジェクトインスタンスの「現場」での発展を可能にする。「現場」での発展により、このような構造で表わされる情報のさらなるコピーを作る必要はない。反対に、このような構造によって表わされる情報は、情報のさらなるコピーを作ることなく更新することができる。既存のＸＭＬスキーマへの変更は、ＸＭＬ文書によって示される変更に従い、ＸＭＬスキーマを変更することによって自動的に行なわれる。データベースサーバは自動的に生成されたＳＱＬステートメントを実行し、それによりデータベースサーバに変更されたＸＭＬスキーマと一致するよう既存のデータベースオブジェクトタイプおよびデータベースオブジェクトインスタンスを変更させる。
【００２３】
「現場」での発展は「データコピー」の発展と異なる。「データコピー」の発展は、発展させるべき構造によって表わされる情報のコピーを作り、その構造を削除し、次に新しい構造を作成し、コピーからの情報を新しい構造の対応するコンポーネントに戻すことに関わる。「現場」での発展は「データコピー」の発展より優れたパフォーマンスを示し、データコピー発展が必要とするディスクスペースを必要としない。
【発明を実施するための最良の形態】
【００２４】
現場でのＸＭＬスキーマ発展に関わる構造間の相互作用
図１は本発明の実施例に従う、現場のＸＭＬスキーマ発展に関わる構造間の相互作用を示すブロック図である。スキーマイボルバ１０２はデータベースサーバ１０４のコンポーネントである。データベースサーバ１０４はコンピュータシステムで実行を行なう。スキーマイボルバ１０２は、入力として、既存のＸＭＬスキーマ１０６およびＸＭＬ文書１０８を受取る。既存のＸＭＬスキーマ１０６は、データベース１１０に現在登録されているＸＭＬスキーマである。ＸＭＬ文書１０８は、ＸＭＬにおいて、既存のＸＭＬスキーマ１０６に行なわれるべき変更を示す。
【００２５】
スキーマイボルバ１０２は既存のＸＭＬスキーマ１０６を自動的に変更して、ＸＭＬ文書１０８に示される変更が既存のＸＭＬスキーマ１０６に組込まれるようにする。その結果、既存のＸＭＬスキーマ１０６は発展ＸＭＬスキーマ１１２に発展させられる。発展させられたＸＭＬスキーマ１１２はＸＭＬ文書１０８によって示される変更すべてを組込んでいる。
【００２６】
一実施例に従い、スキーマイボルバ１０２は入力として、発展させられたＸＭＬスキーマ１１２、既存のデータベースオブジェクトタイプ１１４、および既存のデータベースオブジェクトインスタンス１１６を受取る。既存のデータベースオブジェクトタイプ１１４は既存のＸＭＬスキーマ１０６によって示される構造と一致する。既存のデータベースオブジェクトインスタンス１１６は、データベースオブジェクトタイプ１１４によって示されるタイプ定義に一致する。
【００２７】
スキーマイボルバ１０２は既存のデータベースオブジェクトタイプ１１４のどの態様が発展させられたＸＭＬスキーマ１１２と一致しないかを定める。この不一致の態様に基づき、スキーマイボルバ１０２は自動的にＳＱＬステートメント１１８を生成し、このステートメントはデータベースサーバ１０４によって実行されると、データベースサーバ１０４が既存のデータベースオブジェクトタイプ１１４を発展させられたＸＭＬスキーマ１１２と一致するよう変更させる。さらに、データベースサーバ１０４によって実行されると、ＳＱＬステートメント１１８はデータベースサーバに、既存のデータベースオブジェクトインスタンス１１６を、ＳＱＬステートメントを実行するデータベースサーバ１０４からもたらされる既存のタイプ定義１１４への変更と一致させる。
【００２８】
データベースサーバ１０４はＳＱＬステートメント１１８を実行する。その結果、データベースサーバ１０４は既存のデータベースオブジェクトタイプ１１４を発展データベースオブジェクトタイプ１０２に発展させる。別の結果として、データベースサーバ１０４は既存データベースオブジェクトインスタンス１１６を発展データベースオブジェクトインスタンス１１２に発展させる。発展させられたデータベースオブジェクトタイプ１２０は発展ＸＭＬスキーマ１１２によって示される構造と一致する。発展させられたデータベースオブジェクトインスタンス１２２は発展データベースオブジェクトタイプ１２０によって示される構造と一致する。
【００２９】
ロールバックステートメント
ＳＱＬステートメント１１８は「発展」ステートメントと呼ぶことができる。なぜなら、実行されると、ＳＱＬステートメントによりデータベースサーバ１０４が既存のデータベースオブジェクトタイプ１１４および既存のデータベースオブジェクトインスタンス１１６を発展させるからである。その発展をアトミックなトランザクションにするためには、スキーマイボルバ１０２はＳＱＬステートメント１２４を生成し、これがデータベースサーバ１０４によって実行されると、エラーが起こった場合には、実行されたＳＱＬステートメント１１８のすべての影響をデータベースサーバに取消させる、または「ロールバック」させる。したがって、ＳＱＬステートメント１２４は「ロールバックステートメント」と呼ぶことができる。
【００３０】
ＳＱＬステートメント１１８の実行の途中でエラーが起こると、データベースサーバ１０４はデータベースサーバが実行したＳＱＬステートメント１１８の影響を無効にするＳＱＬステートメント１２４を実行する。したがって、全部の発展がうまく完了しない限り、発展のどの部分も恒久的なものにはならない。
【００３１】
ＸＭＬスキーマ１０６への変更は、ＸＭＬスキーマの発展の途中でエラーが起きたときも無効にされる。たとえば、スキーマイボルバ１０２はＸＭＬスキーマ１０６に行なわれた変更を追跡し、全体の発展トランザクションが完了する前にエラーが起こった場合にこれらの変更を取消す。
【００３２】
ＸＭＬスキーマおよびＸＭＬスキーマに基づくデータベース構造を現場で発展させるための技法例
図２は、ＸＭＬスキーマおよびＸＭＬスキーマに基づくデータベース構造を現場で発展させるための、本発明の実施例に従う技法２００を示すフロー図である。ブロック２０２において、スキーマイボルバはＸＭＬ文書を受取る。ＸＭＬ文書は既存のＸＭＬスキーマに行なわれるべき１つ以上の変更を示す。
【００３３】
ブロック２０４において、スキーマイボルバは、既存のＸＭＬスキーマおよびＸＭＬ文書に基づき、発展ＸＭＬスキーマを生成する。発展ＸＭＬスキーマは、ＸＭＬ文書によって示される変更すべてを組込んでいる。スキーマイボルバは発展ＸＭＬスキーマを作成するために既存のＸＭＬスキーマになされた変更を追跡することができる。
【００３４】
ブロック２０６において、スキーマイボルバは、発展ＸＭＬスキーマに基づき、“evolve”(発展)ＳＱＬステートメントを生成する。“evolve”ＳＱＬステートメントは、データベースサーバによって実行されると、データベースサーバに以下の動作を１つ以上実行させる：新しいデータベース構造を作成する、既存のデータベース構造を削除する、および／または既存のデータベース構造を変更する。作成、削除、および／または変更され得るデータベース構造は、データベースオブジェクトタイプを定義する構造およびデータベースオブジェクトインスタンスを定義する構造を含み得る。
【００３５】
“evolve”ステートメントがデータベースサーバによって実行されることにより、データベースサーバに展開前のＸＭＬスキーマに基づくデータベースオブジェクトタイプを、発展ＸＭＬスキーマによって示される構造に一致させる。こうして、データベースオブジェクトタイプは発展させられる。さらに、データベースサーバが“evolve”ＳＱＬステートメントを実行すると、それによりデータベースサーバに展開前のデータベースオブジェクトタイプに基づくデータベースオブジェクトインスタンスを発展データベースオブジェクトタイプに一致させる。こうして、データベースオブジェクトインスタンスが発展させられる。
【００３６】
たとえば、スキーマイボルバは、新たなＸＭＬ要素を組込んだ発展ＸＭＬスキーマに基づき、データベースに新たな列をデータベーステーブルに追加させるＳＱＬステートメントを発生し得る。新しい列は新しいＸＭＬ要素の属性によって示されるのと同じ名称を有することができ、新しいＸＭＬ要素の属性によって示されるタイプに基づくデフォルト値によって占められ得る。スキーマイボルバが生成し得るＳＱＬステートメントは、“CREATE”、“ALTER”、“ADD”、“MODIFY”および“DROP”のような動作を含み得る。このようなＳＱＬステートメントはＳＱＬステートメントのターゲットが“TYPE”や“TABLE”などであるかどうかを示し得る。
【００３７】
ブロック２０８において、スキーマイボルバは１つ以上の“rollback”(ロールバック)ＳＱＬステートメントを生成する。スキーマイボルバは、“evolve”ＳＱＬステートメントが生成されるときに、“rollback”ＳＱＬステートメントを生成し得る。“rollback”ＳＱＬステートメントがデータベースサーバによって実行されると、データベースサーバに“evolve”ＳＱＬステートメントのターゲットに対する“evolve”ＳＱＬステートメントの影響を無効にさせる。
【００３８】
ブロック２１０において、データベースサーバは“evolve”ＳＱＬステートメントを実行する。その結果、データベースオブジェクトタイプおよびデータベースオブジェクトインスタンスは作成、削除、または変更され得る。エラーが起こらなければ、結果のデータベースオブジェクトタイプおよびデータベースオブジェクトインスタンスは発展ＸＭＬスキーマと一致する。
【００３９】
データベースサーバが“evolve”ＳＱＬステートメントを実行している間、ブロック２１２において“evolve”ＳＱＬステートメントの実行についてエラーが起こったかどうかが判断される。“evolve”ＳＱＬステートメントがエラーなしで完全に実行されると、制御はブロック２１４に渡される。さもなければ、制御はエラーが起こると直ちにブロック２１６に渡される。
【００４０】
エラーが起こらなければ、ブロック２１４において発展が終了する。しかし、“evolve”ＳＱＬステートメントの実行の途中でエラーが起こると、ブロック２１６において、データベースサーバは必要な数だけの「ロールバック」ＳＱＬステートメントを実行して、“evolve”ＳＱＬステートメントのターゲットに対して既に実行された“evolve”ＳＱＬステートメントの影響を無効にする。スキーマイボルバはＸＭＬスキーマを発展させている際にスキーマイボルバが追跡した変更に基づき、ＸＭＬスキーマに対して行なわれた変更を取消すことができる。その結果、ＸＭＬスキーマおよびＸＭＬスキーマに基づくデータベース構造は、その発展前の状態にロールバックされる。こうして、発展はアトミック動作となることが保証される。
【００４１】
ＸＤＩＦＦスキーマ
上述のように、スキーマイボルバは、既存のＸＭＬスキーマになされるべき変更を示す
ＸＭＬ文書に基づき、既存のＸＭＬスキーマを発展ＸＭＬスキーマに発展させる。ＸＭＬ文書は変更を、“xdiff”ＸＭＬスキーマによって定義されＸＭＬ要素の用語で表わすことができ、そこではＸＭＬ文書がインスタンス文書である。
【００４２】
xdiffスキーマは、ＸＭＬで、ユーザが発展コマンドを表わすことができる基本要素を定義する。このようなコマンドは“node”（ノード）に相関する動作を表わし得る。ここで使用される“node”は、ＸＭＬ要素のようなＸＭＬ構造のなんらかの態様である。たとえば、xdiffスキーマの１要素は、指定ノードを指定されたノードリストの最後に付けるためのコマンドの構造を定義し得る。xdiffスキーマの別の要素は、指定ノードを別の指定ノードのすぐ前に挿入するためのコマンドの構造を定義し得る。xdiffスキーマのさらに別の要素は、指定ノードおよびその指定ノードの子のノードを削除するためのコマンドの構造を定義し得る。
【００４３】
xdiffスキーマの例を以下に示す：
【００４４】
【数１】
2007534036.tif 000003
【００４５】
【数２】
2007534036.tif 000004
【００４６】
上記のxdiffスキーマにおいて、３つの要素“append-node”、“insert-node-before”および“delete-node”が定義される。“append-node”要素は、スキーマイボルバが、“parent-xpath”属性によって指定されるノードの最後の子のノードとして、“content”要素によって指定されるノードを加えるべきであることを示すシンタックスを表わす。“content”要素によって指定されるノードは、“node-type”要素によって指定されるノードタイプであることが示される。
【００４７】
たとえば、スキーマイボルバに与えられるＸＭＬ文書はつぎのような要素を含み得る：
【００４８】
【数３】
2007534036.tif 000005
【００４９】
これに基づき、スキーマイボルバは“＜enumeration value='FL'/＞”を加え、以下の追加後のＸＭＬスキーマに示されるようになる：
【００５０】
【数４】
2007534036.tif 000006
【００５１】
“insert-node-before”要素は、スキーマイボルバが“xpath”属性によって指定されるノードのすぐ前に、“content”要素によって指定されるノードを挿入するべきであることを示すシンタックスを表わす。ここでも、“content”要素によって指定されるノードは、“node-type”要素によって指定されるノードタイプであることが示される。
【００５２】
たとえば、スキーマイボルバに与えられるＸＭＬ文書はつぎのような要素を含み得る：
【００５３】
【数５】
2007534036.tif 000007
【００５４】
これに基づき、スキーマイボルバは“＜!--A type representing US States--＞”を挿入し、以下の挿入後のＸＭＬスキーマに示されるようになる：
【００５５】
【数６】
2007534036.tif 000008
【００５６】
“delete-node”要素は、スキーマイボルバが“xpath”属性によって指定されるノードおよびそのノードのすべての子のノードとともに削除するべきであることを示すシンタックスを表わす。“append-node”または“insert-node-before”要素との組合せにより、“delete-node”要素はＸＭＬスキーマの既存のノードへの変更を表わすのに用いられ得る。
【００５７】
ＸＰＡＴＨにおけるノードの指定
異なるレベルの階層の異なるノードは、ＸＭＬスキーマの異なる場所において同一のテキストによって表わすことができるので、単にＸＭＬスキーマにおいて１つの特定のテキストストリングを探し、そのテキストストリングを別の指定されたテキストストリングと置き換えるだけでは正しい変換をもたらさないかもしれない。したがって、ＸＭＬ文書においてＸＭＬＰａｔｈ言語（ＸＰａｔｈ）表現が用いられて、ＸＭＬスキーマにおいてノードを正確に特定する。ＸＰａｔｈ表現は階層におけるその場所に相関するノードを識別する。たとえば、ＸＭＬ階層は以下のノードを示し得る：
【００５８】
【数７】
2007534036.tif 000009
【００５９】
ＸＰａｔｈ表現“/fool/nmspl:fool”は、コンテンツ値「２」を含む要素を正確に特定する。
【００６０】
ハードウェアの総括
図３は本発明の実施例が実現できるコンピュータシステム３００を示すブロック図である。コンピュータシステム３００はバス３０２または情報を送るための他の通信メカニズム、および情報を処理するための、バス３０２に結合されるプロセッサ３０４を含む。コンピュータシステム３００はさらに、ランダムアクセスメモリ（ＲＡＭ）または他の動的記憶装置であるメインメモリ３０６を含み、これはプロセッサ３０４によって実行される情報および命令を記憶するために、バス３０２に結合される。メインメモリ３０６は、プロセッサ３０４によって実行されるべき命令の実行の際の、一時的変数または他の中間情報を記憶するために用いられてもよい。コンピュータシステム３００はさらにプロセッサ３０４向けの静的情報および命令を記憶するために、バス３０２に結合されるリードオンリメモリ（ＲＯＭ）３０８または他の静的記憶装置を含む。情報および命令を記憶するために、磁気ディスクまたは光学ディスクのような記憶装置３１０が設けられてバス３０２に結合される。
【００６１】
コンピュータシステム３００はバス３０２を介して陰極線管（ＣＲＴ）のような表示装置３１２に結合されてコンピュータユーザに情報を表示する。英数文字キーや他のキーを含む入力装置３１４はバス３０２に結合されて、情報およびコマンドの選択をプロセッサ３０４に送る。ユーザ入力装置の別のタイプとしては、マウス、トラックボール、またはカーソル方向キーのようなカーソル制御装置３１６があり、方向情報およびコマンド選択をプロセッサ３０４に送る、または表示装置３１２上のカーソルの動きを制御する。この入力装置は一般に２つの軸において２つの自由度を有する。すなわち第１の軸（たとえば、ｘ）および第２の軸（たとえばｙ）を有し、これにより装置は平面における位置を特定することができる。
【００６２】
本発明はここに記載される技法を実現するためのコンピュータシステム３００の使用に関する。本発明の一実施例に従い、これらの技法は、メインメモリ３０６に含まれる１つ以上の命令の１つ以上のシーケンスを実行するプロセッサ３０４に応答して、コンピュータシステム３００によって実施される。このような命令は記憶装置３１０のような他のコンピュータ読取可能な媒体からメインメモリ３０６に読込むことができる。メインメモリ３０６に含まれる命令のシーケンスの実行により、プロセッサ３０４はここに記載されるプロセスステップを行なう。代替の実施例において、本発明を実現するために、ハードワイヤード回路をソフトウェア命令の代わりに、または組合せて、用いることができる。こうして、本発明の実施例はハードウェア回路およびソフトウェアの特定の組合せに限定されない。
【００６３】
ここに用いられる「コンピュータ読取可能な媒体」の用語は、実行のためにプロセッサ３０４に命令を与えることに関係するすべての媒体を指す。このような媒体は不揮発性媒体、揮発性媒体、および伝送媒体などのように多くの形を取り得るが、これらに限定され
ない。たとえば、不揮発性媒体は記憶装置３１０のような光ディスクまたは磁気ディスクを含む。揮発性媒体はメインメモリ３０６のような動的メモリを含む。伝送媒体はバス３０２をなすワイヤを含めて、同軸ケーブル、導線、および光ファイバ含む。伝送媒体はさらに、無線および赤外線データ通信の際に生成されるような、音波または光波の形を取り得る。
【００６４】
コンピュータ読取可能な媒体の一般的な形は、たとえば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは他の磁気媒体、ＣＤ−ＲＯＭ、他の光学媒体、パンチカード、紙テープ、孔のパターンを有する他の物理的媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、他のメモリチップもしくはカートリッジ、後で記載される搬送波、またはコンピュータが読取可能な他の媒体を含む。
【００６５】
さまざまな形のコンピュータ読取可能な媒体が、実行のために１つ以上の命令の１つ以上のシーケンスをプロセッサ３０４に送ることにかかわる。たとえば、命令は初めは遠隔コンピュータの磁気ディスクにあってもよい。遠隔コンピュータはその命令を自分の動的メモリにロードし、その命令をモデムを使った電話回線により送ることができる。コンピュータシステム３００に対してローカルであるモデムは、電話回線のデータを受取り、赤外線トランスミッタを用いてデータを赤外線信号に変換することができる。赤外線ディテクタは赤外線信号で運ばれるデータを受取り、適切な回路でもってデータをバス３０２に置くことができる。バス３０２はデータをメインメモリ３０６に渡し、そこからプロセッサ３０４は命令を抽出および実行する。メインメモリ３０６によって受取られる命令は、プロセッサ３０４での実行の前または後で、記憶装置３１０に任意に格納することができる。
【００６６】
コンピュータシステム３００はバス３０２に結合される通信インターフェイス３１８をさらに含む。通信インターフェイス３１８は、ローカルネットワーク３２２に接続されるネットワークリンク３２０に結合される、双方向性データ通信を与える。たとえば、通信インターフェイス３１８は、統合デジタル通信サービス網（ＩＳＤＮ）カード、または対応する種類の電話回線にデータ通信接続を確立するためのモデムであってもよい。別の例として、通信インターフェイス３１８は互換性のあるＬＡＮへのデータ通信接続を確立するためのローカルエリアネットワーク（ＬＡＮ）カードであってもよい。無線リンクも実現できる。このような実現において、通信インターフェイス３１８はさまざまな種類の情報を表わすデジタルデータストリームを運ぶ、電気信号、電磁信号、または光学信号を送るまたは受取る。
【００６７】
ネットワークリンク３２０は典型的には１つ以上のネットワークを介してデータ通信を他のデータ装置に与える。たとえば、ネットワークリンク３２０はローカルネットワーク３２２を介してホストコンピュータ３２４に、またはインターネットサービスプロバイダ（ＩＳＰ）３２６によって動作されるデータ装置に、接続を与え得る。ＩＳＰ３２６は現在は一般に「インターネット」３２８と呼ばれる、ワールドワイドパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク３２２およびインターネット３２８はどちらも、デジタルデータストリームを運ぶ電気信号、電磁信号、または光学信号を用いる。さまざまなネットワークを介した信号、およびコンピュータシステム３００の入出力デジタルデータを運ぶ、ネットワークリンク３２０上の信号や通信インターフェイス３１８を介する信号は、情報を運ぶ搬送波の一例を示す。
【００６８】
コンピュータシステム３００は、ネットワーク、ネットワークリンク３２０および通信インターフェイス３１８を介してメッセージを送り、かつプログラムコードを含むデータを受取ることができる。インターネットの例では、サーバ３３０はインターネット３２８
、ＩＳＰ３２６、ローカルネットワーク３２２および通信インターフェイス３１８を介して、アプリケーションプログラム用のリクエストされたコードを送信し得る。
【００６９】
受取られたコードはそのままプロセッサ３０４によって、および／または記憶媒体３１０に記憶されて、または後で実行するための他の不揮発性記憶装置に格納されて、プロセッサ３０４によって実行され得る。このような態様で、コンピュータシステム３００は搬送波の形でアプリケーションコードを得ることができる。
【００７０】
上記の説明では、本発明の実施の態様は実施例ごとに変わり得る、多数の特定の詳細を参照して説明された。こうして、本発明が何であるかという唯一の指標および出願人が意図している本発明は、本願による一連のクレームにあり、後の補正を含めて、これらのクレームが示される特定の形にある。これらのクレームに含まれる用語に対してここに明示的に示される定義は、クレームで用いられるこれらの用語の意味を支配する。したがって、請求項において明示的に示されていない限定、要素、特性、特徴、利点または属性は請求の範囲をどのようにも限定するものではない。したがって、明細書および図面は限定の意味ではなく、例示的なものである。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施例に従い、現場のＸＭＬスキーマ発展にかかわる構造間の相互作用を示すブロック図である。
【図２】本発明の一実施例に従い、ＸＭＬスキーマおよびＸＭＬスキーマに基づくデータベース構造を現場で発展させるための技法を示すフロー図である。
【図３】本発明の実施例が実現できる、コンピュータシステムを示すブロック図である。
【図１】
2007534036.tif 000010
【図２】
2007534036.tif 000011
【図３】
2007534036.tif 000012
【手続補正書】
【提出日】平成17年11月28日(2005.11.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
拡張可能なマークアップ言語（ＸＭＬ）スキーマを発展させるための方法であって、
コンピュータシステムで実行されるスキーマイボルバにおいて、第１のＸＭＬスキーマに行なわれるべき動作を指定する文書を受取るステップを含み、１つ以上の動作を行なうことは第１のＸＭＬスキーマへの１つ以上の変更をもたらし、さらに
前記第１のＸＭＬスキーマおよび前記文書に基づき、前記スキーマイボルバは前記動作を行なうことにより、第２のＸＭＬスキーマを生成するステップと、
前記第２のＸＭＬスキーマに基づき、１つ以上の第１の構造化クエリー言語（ＳＱＬ）ステートメントを生成するステップとを含む、方法。
【請求項２】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトタイプを生成させる、請求項１に記載の方法。
【請求項３】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトテーブルを生成させる、請求項１に記載の方法。
【請求項４】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトタイプを削除させる、請求項１に記載の方法。
【請求項５】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトテーブルを削除させる、請求項１に記載の方法。
【請求項６】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトタイプを変更させる、請求項１に記載の方法。
【請求項７】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトテーブルを変更させる、請求項１に記載の方法。
【請求項８】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトインスタンスを変更させる、請求項１に記載の方法。
【請求項９】
前記１つ以上の変更は、第３のＸＭＬスキーマによって指定される１つ以上のＸＭＬタイプの１つ以上のインスタンスとして表現される、請求項１に記載の方法。
【請求項１０】
実行されると、前記１つ以上の第１のＳＱＬステートメントの影響を無効にする、１つ以上の第２のＳＱＬステートメントを生成するステップをさらに含む、請求項１に記載の方法。
【請求項１１】
前記１つ以上の第１のＳＱＬステートメントを実行しながら、エラーが起こったかどうかを判断するステップと、
エラーが起こったという判断に応答して、前記１つ以上の第２のＳＱＬステートメントを１つ以上実行するステップとをさらに含み、前記１つ以上の第２のＳＱＬステートメントは実行されると、実行された前記１つ以上の第１のＳＱＬステートメントの影響を無効にする、請求項１０に記載の方法。
【請求項１２】
前記動作を行なう前記ステップは、
前記文書からＸＭＬ要素を読取るステップと、
前記ＸＭＬ要素に指定されるコマンドを判断するステップと、
前記ＸＭＬ要素に指定されるターゲットノードを定めるステップと、
前記ターゲットノードに相関して、前記コマンドに対応する動作を行なうステップとを含む、請求項１に記載の方法。
【請求項１３】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項１４】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項２に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項１５】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項３に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項１６】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項４に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項１７】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項５に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項１８】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項６に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項１９】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項７に記載の方法を
行なわせる、コンピュータ読取可能媒体。
【請求項２０】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項８に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２１】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項９に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２２】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１０に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２３】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１１に記載の方法を行なわせる、コンピュータ読取可能媒体。
【請求項２４】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１２に記載の方法を行なわせる、コンピュータ読取可能媒体。
【手続補正書】
【提出日】平成19年8月2日(2007.8.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
拡張可能なマークアップ言語（ＸＭＬ）スキーマを発展させるための方法であって、
コンピュータシステムで実行されるスキーマイボルバにおいて、第１のＸＭＬスキーマに行なわれるべき動作を指定する文書を受取るステップを含み、１つ以上の動作を行なうことは第１のＸＭＬスキーマへの１つ以上の変更をもたらし、さらに
前記第１のＸＭＬスキーマおよび前記文書に基づき、前記スキーマイボルバは前記動作を行なうことにより、第２のＸＭＬスキーマを生成するステップと、
前記第２のＸＭＬスキーマに基づき、１つ以上の第１の構造化クエリー言語（ＳＱＬ）ステートメントを生成するステップとを含む、方法。
【請求項２】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトタイプを生成させる、請求項１に記載の方法。
【請求項３】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトテーブルを生成させる、請求項１に記載の方法。
【請求項４】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトタイプを削除させる、請求項１に記載の方法。
【請求項５】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトテーブルを削除させる、請求項１に記載の方法。
【請求項６】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトタイプを変更させる、請求項１に記載の方法。
【請求項７】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトテーブルを変更させる、請求項１に記載の方法。
【請求項８】
前記第１のＳＱＬステートメントは、実行されると、１つ以上のデータベースオブジェクトインスタンスを変更させる、請求項１に記載の方法。
【請求項９】
前記１つ以上の変更は、第３のＸＭＬスキーマによって指定される１つ以上のＸＭＬタイプの１つ以上のインスタンスとして表現される、請求項１に記載の方法。
【請求項１０】
実行されると、前記１つ以上の第１のＳＱＬステートメントの影響を無効にする、１つ以上の第２のＳＱＬステートメントを生成するステップをさらに含む、請求項１に記載の方法。
【請求項１１】
前記１つ以上の第１のＳＱＬステートメントを実行しながら、エラーが起こったかどうかを判断するステップと、
エラーが起こったという判断に応答して、前記１つ以上の第２のＳＱＬステートメントを１つ以上実行するステップとをさらに含み、前記１つ以上の第２のＳＱＬステートメントは実行されると、実行された前記１つ以上の第１のＳＱＬステートメントの影響を無効にする、請求項１０に記載の方法。
【請求項１２】
前記動作を行なう前記ステップは、
前記文書からＸＭＬ要素を読取るステップと、
前記ＸＭＬ要素に指定されるコマンドを判断するステップと、
前記ＸＭＬ要素に指定されるターゲットノードを定めるステップと、
前記ターゲットノードに相関して、前記コマンドに対応する動作を行なうステップとを含む、請求項１に記載の方法。
【請求項１３】
１つ以上のシーケンスの命令を持つコンピュータ読取可能媒体であって、命令が１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに請求項１〜１２のいずれかに記載の方法を行なわせる、コンピュータ読取可能媒体。
【国際調査報告】
2007534036.tif 000013
2007534036.tif 000014
2007534036.tif 000015
2007534036.tif 000016