(57)【要約】一般に、データ記述言語に対するスキーマ情報を動的に生成するための技術を記載する。本技術は、データ記述言語に従う要素のクラスを定義するスキーマ（８）を受け取ること、及び要素のインスタンスに対する要求を定義する制限テンプレート（１８）を受け取ることを含む。本技術は、スキーマ（８）及び制限テンプレート（１８）に基づいてスキーマ情報を動的に生成すること、及びスキーマ（８）情報に従って文書を有効にすることで更に構成される。
2005521159.tif 000002
【特許請求の範囲】
【請求項１】
データ記述言語に従う要素のクラスを定義するスキーマを受け取ることと、
前記要素のインスタンス対する要求を定義する制限テンプレートを受け取ることと、
前記スキーマ及び前記制限テンプレートに従って文書を有効にすることと、
で構成される方法。
【請求項２】
文書を有効にすることは、前記文書を有効にするために前記スキーマ及び前記制限テンプレートに基づいてスキーマ情報を動的に生成することで構成される請求項１に記載の方法。
【請求項３】
文書を有効にすることは、
前記スキーマを代表するスキーマ情報を記憶するためのデータ構造を有する仮想スキーマを動的に生成することと、
前記制限テンプレートの定義する要求に基づいて前記データ構造を更新することと、
前記制限テンプレートの定義する前記スキーマ及び前記要求によって定義される前記クラスに従って前記文書内で要素のインスタンスを有効にすることと、
で構成される請求項１に記載の方法。
【請求項４】
前記制限テンプレートは、前記要素の前記インスタンスに対して要求される濃度を定義する請求項１に記載の方法。
【請求項５】
前記制限テンプレートは、前記要素の前記インスタンスの要求される最小数及び要求される最大数の一つを定義する請求項１に記載の方法。
【請求項６】
前記制限テンプレートは、前記要素の前記インスタンスの要求される数に対する範囲を定義する請求項１に記載の方法。
【請求項７】
前記制限テンプレートは、前記要素の前記インスタンスに対して要求される属性を定義する請求項１に記載の方法。
【請求項８】
前記制限テンプレートは、前記要素の前記インスタンスに対して要求されるパラメータ値を定義する請求項１に記載の方法。
【請求項９】
前記制限テンプレートは、前記要素の特定の要求されるインスタンスを定義する請求項１に記載の方法。
【請求項１０】
文書を有効にすることは、前記文書から無くなっている前記要素の前記要求されるインスタンスのいずれかを識別することで構成される請求項９に記載の方法。
【請求項１１】
前記無くなっている要求されるインスタンスに対するデータを取り込むためにユーザにインターフェースを提供することで更に構成される請求項１０に記載の方法。
【請求項１２】
前記制限テンプレートは、前記データ記述言語に従う請求項１に記載の方法。
【請求項１３】
前記データ記述言語は、拡張マークアップ言語（ＸＭＬ）で構成される請求項１に記載の方法。
【請求項１４】
制限テンプレート・スキーマに応じて前記制限テンプレートを有効にすることで更に構成される請求項１に記載の方法。
【請求項１５】
ユーザからの入力に基づいて前記制限テンプレートを生成することで更に構成される請求項１に記載の方法。
【請求項１６】
前記要素に対するサブクラスを定義する定義テンプレートを受け取ることで更に構成される請求項１に記載の方法。
【請求項１７】
定義テンプレート・スキーマに応じて前記定義テンプレートを有効にすることで更に構成される請求項１６に記載の方法。
【請求項１８】
ユーザからの入力に基づいて前記定義テンプレートを生成することで更に構成される請求項１６に記載の方法。
【請求項１９】
制限テンプレートを受け取ることは、制限テンプレートを受け取ることの階層を受け取ることで構成され、かつ文書を有効にすることは、制限テンプレートの前記階層に従って文書を有効にすることで構成される請求項１に記載の方法。
【請求項２０】
データ記述言語に従う要素のクラスを定義するスキーマと、
前記要素のインスタンスに対する要求を定義する制限テンプレートと、
前記スキーマ及び前記制限テンプレートに従って文書を有効にする有効化エンジンと、
で構成されるシステム。
【請求項２１】
前記スキーマ及び前記制限テンプレートに基づいて仮想スキーマを生成するスキーマ生成で更に構成され、前記有効化エンジンは、前記仮想スキーマで前記文書を有効にする請求項２０に記載のシステム。
【請求項２２】
前記スキーマ生成は、前記スキーマを代表するスキーマ情報を記憶するためにデータ構造を動的に生成し、かつ前記制限テンプレートの定義する要求を代表する付加的なスキーマ情報を記憶するために前記データ構造を更新する請求項２０に記載のシステム。
【請求項２３】
前記制限テンプレートは、前記要素の前記インスタンスに対して要求される濃度を定義する請求項２０に記載のシステム。
【請求項２４】
前記制限テンプレートは、前記要素の前記インスタンスの要求される最小数及び要求される最大数の一つを定義する請求項２０に記載のシステム。
【請求項２５】
前記制限テンプレートは、前記要素の前記インスタンスの要求される数に対する範囲を定義する請求項２０に記載のシステム。
【請求項２６】
前記制限テンプレートは、前記要素の前記インスタンスに対して要求される属性を定義する請求項２０に記載のシステム。
【請求項２７】
前記制限テンプレートは、前記要素の前記インスタンスに対して要求されるパラメータ値を定義する請求項２０に記載のシステム。
【請求項２８】
前記制限テンプレートは、前記要素の特定の要求されるインスタンスを定義する請求項２０に記載のシステム。
【請求項２９】
前記有効化エンジンは、前記文書から無くなっている前記要素の前記要求されるインスタンスのいずれかを識別する請求項２８に記載のシステム。
【請求項３０】
前記無くなっている要求されるインスタンスに対するデータを取り込む取り込みモジュールで更に構成される請求項２９に記載のシステム。
【請求項３１】
前記制限テンプレートは、前記データ記述言語に従う請求項２０に記載のシステム。
【請求項３２】
前記データ記述言語は、拡張マークアップ言語（ＸＭＬ）で構成される請求項２０に記載のシステム。
【請求項３３】
前記スキーマ生成は、制限テンプレート・スキーマに従って前記制限テンプレートを有効にする請求項２０に記載のシステム。
【請求項３４】
前記要素に対するサブクラスを定義する定義テンプレートで更に構成され、前記有効化エンジンは、前記定義テンプレートに従って前記文書を有効にする請求項２０に記載のシステム。
【請求項３５】
前記スキーマ、前記制限テンプレート、及び前記定義テンプレートに基づいて仮想スキーマを生成するスキーマ生成で更に構成され、前記有効化エンジンは、前記仮想スキーマで前記文書を有効にする請求項３４に記載のシステム。
【請求項３６】
前記スキーマ生成は、定義テンプレート・スキーマに応じて前記定義テンプレートを有効にする請求項３５に記載のシステム。
【請求項３７】
少なくとも一つのペアレント制限テンプレート及び少なくとも一つのチャイルド制限テンプレートを有する制限テンプレートの階層で更に構成され、前記チャイルド制限テンプレートは、前記ペアレント制限テンプレートの定義する要求を限定する要求を含み、かつ前記有効化エンジンは、前記チャイルド制限テンプレートに従って前記文書を有効にする請求項２０に記載のシステム。
【請求項３８】
データ記述言語に従う要素のクラスを定義するスキーマと、
前記要素に対するサブクラスを定義する定義テンプレートと、
前記サブクラスのインスタンスに対する要求を定義する制限テンプレートと、
前記スキーマ、前記定義テンプレート、及び前記制限テンプレートに基づいて仮想スキーマを生成するスキーマ生成と、
前記仮想スキーマに従って文書を有効にする有効化エンジンと、
で構成されるシステム。
【請求項３９】
前記仮想スキーマは、前記スキーマ、前記サブクラス、及び前記要求を代表するスキーマ情報を記憶するデータ構造で構成される請求項３８に記載のシステム。
【請求項４０】
前記スキーマ生成は、前記データ構造を動的に生成する請求項３９に記載のシステム。
【請求項４１】
前記制限テンプレート及び前記定義テンプレートは、前記データ記述言語に従う請求項３８に記載のシステム。
【請求項４２】
前記制限テンプレートは、前記要素の特定の要求されるインスタンスを定義し、かつ前記有効化エンジンは、前記文書から無くなっている前記要素の前記要求されるインスタンスのいずれかを識別する請求項３８に記載のシステム。
【請求項４３】
前記無くなっている要求されるインスタンスに対するデータを取り込む取り込みモジュールで更に構成される請求項４２に記載のシステム。
【請求項４４】
前記制限テンプレートは、
前記要素の前記インスタンスに対して要求される濃度と、
前記要素の前記インスタンスの要求される最小数及び要求される最大数と、
前記要素の前記インスタンスの要求される数の範囲と、
前記要素の前記インスタンスに対して要求される属性と、
前記要素の前記インスタンスに対して要求されるパラメータ値と、
の少なくとも一つを定義する請求項３８に記載のシステム。
【請求項４５】
前記制限テンプレートは、前記データ記述言語に従う請求項３８に記載のシステム。
【請求項４６】
プロセッサに請求項１〜１９に記載の方法を実行させる命令で構成されるコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算装置に関し、より詳細には、データを通信する際に計算装置がしばしば用いる拡張マークアップ言語（ＸＭＬ）のようなデータ記述言語に関する。
【背景技術】
【０００２】
拡張マークアップ言語（ＸＭＬ）は、データを記述し通信するための強力な言語として近年浮上してきた。特に、ＸＭＬは、データに構造的かつ意味的な情報を与える開かれたテキストベースのマークアップ言語である。ＸＭＬは、普及している汎用マークアップ言語規約（ＳＧＭＬ）のサブセットであり、インターネット内で広く用いられるようになってきた。
【０００３】
ＸＭＬ文書は、ルート要素を、場合によっては多数のチャイルド要素を含む。各要素は、開始タグと終了タグとから成る。文書の要素は、チャイルドに対する終了タグの中にネストする必要がある。このように、ＸＭＬ文書は、要素がペアレント−チャイルド関係を有するツリー構造に従う。例えば、以下の擬似コードは、従来のＸＭＬ文書のフォーマットを説明している。
【０００４】
【数１】
2005521159.tif 000003
【０００５】
ＸＭＬスキーマは、ＸＭＬ文書のクラスを定義し記述するために用いられる。より具体的には、ＸＭＬスキーマは、ＸＭＬ文書のクラス内で用いることのできる要素の意味、用法、及び関係、並びに要素に対する許容される内容、属性、及び値を定義するスキーマ・コンポーネントを用いる。例えば、ワールド・ワイド・ウェブ・コンソーシアム（Ｗ３Ｃ）ＸＭＬスキーマ定義言語は、ＸＭＬ文書の内容を記述し制限するためのＸＭＬ言語である。別の例となるスキーマ定義言語には、Document Content Description for XML（ＤＣＤ）、Schema for Object-Oriented（ＳＯＸ）、XSchemaとも称されるDocument Definition Markup Language（ＤＤＭＬ）、Regular Language description for XML Core（ＲＥＬＡＸ）、Tree Regular Expressions for XML（ＴＲＥＸ）、Schematron（ＳＣＨ）、及びExamplotron（ＥＧ）が含まれる。
【０００６】
以下の擬似コードは、従来のＸＭＬスキーマのフォーマットを説明している。
【０００７】
【数２】
2005521159.tif 000004
【０００８】
上記の擬似コードは、スキーマ言語のサポートする基本的概念のいくつかを説明している。例えば、上で定義した要素USED-CAR、MODEL、及びYEARのような様々な要素を定義することができる。更に、要素又は要素の属性が要求されているか否か、及び要素の出現回数の範囲のような要素に対する基本的な制限を定義することができる。
【０００９】
しかしながら、ＸＭＬ文書の構造及び内容を制限するスキーマ言語を利用すると、各許容し得る要素に対する特定の定義を有する非常に複雑なスキーマをもたらすことができる。例えば、スキーマ言語は、要素に関する制限を定義するためにスキーマ内に特定の要素の定義を要求する傾向がある。この方法によって、準拠しているＸＭＬ文書が標準化を失う傾向がある。換言すると、この方法の結果、要素に対する名前や属性が著しく異なるＸＭＬ文書が生じることがある。
【発明の開示】
【００１０】
要約
一般に、本発明は、拡張マークアップ言語（ＸＭＬ）のようなデータ記述言語に対するスキーマ情報を動的に生成するための技術を対象とする。より具体的には、本技術は、一つ以上の制限テンプレートを基礎スキーマに適用することによりスキーマ情報を動的に生成する。要素の有効な種類を更に定義するのに必要な基礎スキーマを拡張するために、一つ以上の定義テンプレートを利用することもできる。このように、基礎スキーマに対する修正を要請することなく要素の利用及び関係を制限する要求を含む複雑なスキーマ情報を生成することができる。
【００１１】
一実施形態において、方法は、データ記述言語に従う要素のクラスを定義するスキーマを受け取ること、及び要素のインスタンスに対する要求を定義する制限テンプレートを受け取ることで構成される。この方法は、スキーマ及び制限テンプレートに従って文書を有効にすることで更に構成される。
【００１２】
別の実施形態において、システムは、データ記述言語に従う要素のクラスを定義するスキーマ、及び要素のインスタンスに対する要求を定義する制限テンプレートで構成される。このシステムは、スキーマ及び制限テンプレートに従って文書を有効にする有効化エンジンで更に構成される。
【００１３】
別の実施形態において、システムは、データ記述言語に従う要素のクラスを定義するスキーマ、要素に対するサブクラスを定義する定義テンプレート、及びサブクラスのインスタンスに対する要求を定義する制限テンプレートで構成される。このシステムは、スキーマ、定義テンプレート、及び制限テンプレートに基づいて仮想スキーマを生成するスキーマ生成、及び仮想スキーマに従って文書を有効にする有効化エンジンで更に構成される。
【００１４】
別の実施形態において、コンピュータ可読媒体は、データ記述言語に従う要素のクラスを定義するスキーマ及び要素のインスタンスに対する要求を定義する制限テンプレートをプロセッサが受け取るようにする命令で構成される。この媒体は、スキーマ及び制限テンプレートに基づいてスキーマ情報を動的に生成する命令で更に構成される。
【００１５】
別の実施形態において、システムは、データ記述言語に従う要素のクラスを定義するスキーマ及び少なくとも一つのペアレント制限テンプレート及び少なくとも一つのチャイルド制限テンプレートを有する制限テンプレートの階層で構成される。ここで、制限テンプレートは、要素のインスタンスに対する要求を定義し、チャイルド制限テンプレートの要求は、ペアレント制限テンプレートの要求を限定する。
【００１６】
本明細書に記載した技術は、一つ以上の利点を提供することができる。例えば、制限テンプレート及び定義テンプレートは、例えばＸＭＬのようなデータ記述言語に従い、容易に生成・修正され得る。従って、ユーザは、スキーマ自体を修正する必要なく、スキーマの要素に対する制限を定義することができる。更に、テンプレートの構造及び内容を制御するために、制限テンプレート・スキーマ及び定義テンプレート・スキーマを利用することができる。ゆえに、テンプレート内のあらゆるエラーを識別するためにテンプレートの各スキーマを背景にして、ユーザの生成したテンプレートを有効にすることができる。このように、ＸＭＬ文書の新しいクラスをサポートするためにユーザはスキーマを継続的に生成又は修正する必要がない点で、本技術はエラーの可能性を減少させている。
【００１７】
更に、基礎スキーマに従うＸＭＬ文書は、要素の名前及び属性が実質的に同様になるという意味で標準化されている。従って、文書がその標準化を失う複雑なスキーマを要請することなく、ＸＭＬ文書の微粒子（fine-grain）有効化に対する制限を導入することができる。
【００１８】
本発明の一つ以上の実施形態の詳細を、添付の図面及び以下の記載において説明する。本発明のその他の特徴、目的、及び利点は、記載及び図面から、及び請求項から明らかになろう。
【００１９】
詳細な説明
図１は、スキーマ生成４が仮想スキーマ６と称されるスキーマ情報を動的に生成する、例となるシステム２を説明するブロック図である。特に、スキーマ生成４は、基礎スキーマ８、定義テンプレート１０、及び制限テンプレート１２に従って仮想スキーマ６を生成する。
【００２０】
基礎スキーマ８は、スキーマ定義言語に従っており、拡張マークアップ言語（ＸＭＬ）のようなデータ記述言語に従う要素のクラスを定義する。このように、基礎スキーマ８は、静的であり続けることができ、新しいＸＭＬ文書をサポートするために修正される必要はない。
【００２１】
許容し得るＸＭＬ文書のクラスを定義するために、ユーザ１４は、定義テンプレート１０、制限テンプレート１２、又はその両方を生成することができる。より具体的には、ユーザは、基礎スキーマ８の定義する要素に対するサブクラスを定義する一つ以上の定義テンプレート１０を生成することができる。このように、ユーザ１４は、基礎スキーマ８を修正することなく基礎スキーマ８の要素定義を拡張することができる。
【００２２】
更に、ユーザ１４は、要素のインスタンスに対する要求を定義する一つ以上の制限テンプレート１２を生成することができる。制限テンプレート１２は、基礎スキーマ８の定義するクラスに属する要素のインスタンス、定義テンプレート１０の定義するサブクラスに属する要素のインスタンス、又はその両方に対する要求を定義することができる。例えば、制限テンプレート１２は、要素のインスタンスに対して要求される濃度、インスタンスの要求される最小数又は最大数、要素のインスタンスの要求される数に対する範囲、インスタンスに対して要求される属性、要素のインスタンスに対して要求されるパラメータ値、特定の要求される要素のインスタンス等を定義することができる。
【００２３】
スキーマ生成４は、基礎スキーマ８の定義する要素のクラスを代表するデータ構造を最初に生成することによって仮想スキーマ６のスキーマ情報を生成する。次いで、スキーマ生成４は、定義テンプレート１０内で定義される要素のサブクラスを含むようにスキーマ情報を拡張すべく、定義テンプレート１０を基礎スキーマ８に与える。最後に、スキーマ生成４は、制限テンプレート１２の定義する制限を含むようにスキーマ情報を更新すべく、制限テンプレート１２を利用する。
【００２４】
定義テンプレート１０及び制限テンプレート１２は、基礎スキーマ８の要素が従う、例えばＸＭＬ等の、データ記述言語に従う。従って、ユーザ１４は、定義テンプレート１０及び制限テンプレート１２を容易に生成・修正することができ、ＸＭＬ文書１９の新しいクラスをサポートするには基礎スキーマ８の修正だけが必要である。
【００２５】
スキーマ生成４は、定義テンプレート１６及び制限テンプレート・スキーマ１８を背景にして、ユーザ１４の生成した定義テンプレート１０及び制限テンプレート１２をそれぞれ有効にする。このように、定義テンプレート１６及び制限テンプレート１８は、テンプレート１０、１２の構造及び内容を有効にするために用いることができる。このように、本技術はユーザ１４のエラーの可能性を減少させることができる。
【００２６】
文書１９は、データ記述言語に従うメタデータを含む、電子文書、ファイル、スクリプト、通信ストリーム、ソフトウェア・オブジェクト等を代表する。より具体的には、メタデータは、スキーマ８の定義する要素のクラス又は定義テンプレート１０の定義する要素のサブクラスに属する要素のインスタンスを含む。例となる言語には、Extensible Markup Language（ＸＭＬ）、Extensible Style Language（ＸＳＬ）、Standardized Multimedia Authoring Language（ＳＭＩＬ）、並びにStandard Generalized Markup Language（ＳＧＭＬ）のバリエーションが含まれる。
【００２７】
有効化エンジン１７は、スキーマ生成４の生成した仮想スキーマ６に従って文書１９を有効にする。特に、有効化エンジン１７は、文書１９内の要素のインスタンスが、基礎スキーマ６の定義する要素のクラス、定義テンプレート１０の定義するサブクラス、及び制限テンプレート１２の定義するインスタンスに対する制限に従っていることを確認する。
【００２８】
文書１９は、基礎スキーマに従い、それにより、要素の名前及び属性が実質的に同様になるという意味で標準化されるのが好都合である。従って、文書が標準化を失うような複雑なスキーマを要求することなく、基礎スキーマ８を拡張することができ、文書１９の微粒子有効化に対する制限を導入することができる。
【００２９】
以下の擬似コードは、再利用可能なソフトウェア資産に関連する情報を取り込むために用いることのできる模範的な基礎スキーマ、定義テンプレート、及び制限テンプレートを説明している。特に、以下の模範的な基礎スキーマはASSETという名前の要素のペアレント・クラス、及びKEYWORD及びRELATIONという名前の二つの要素のチャイルド・クラスを定義する。
【００３０】
【数３】
2005521159.tif 000005
【００３１】
以下の模範的な定義テンプレートは、KEYWORD及びRELATIONという要素のクラスに対するサブクラスの定義を説明しており、それにより、上に掲載した模範的な基礎スキーマの与える定義を拡張している。
【００３２】
【数４】
2005521159.tif 000006
【００３３】
上で説明した模範的な定義テンプレートは、模範的な基礎スキーマの定義するこれらの各要素のクラスに対する特定のサブクラスを定義するためにDEFINE-KEYWORD及びDEFINE-RELATIONという要素を利用する。より具体的には、KEYWORDというクラスに対して、模範的な定義テンプレートは、FINANCE及びBANKINGという二つの可能な値を有するCATEGORYというサブクラスを定義する。模範的な定義テンプレートは、PRICE及びALIASを含むKEYWORDというクラスに対する二つの付加的なサブクラスを定義する。RELATIONというクラスに対して、定義テンプレートは、USES及びPREDECESSORという二つのサブクラスを定義する。
【００３４】
以下の模範的な制限テンプレートは、要素のインスタンスの利用に対する要求及びそれに対する制限を与える。
【００３５】
【数５】
2005521159.tif 000007
【００３６】
上で説明した模範的な制限テンプレートは、定義テンプレートの定義する要素のサブクラスに対するインスタンスに対して特定の要求を定義するために、USE-KEYWORD及びUSE-RELATIONという要素を利用する。より具体的には、模範的な制限テンプレート１０は、CATEGORYというサブクラスに属する要素の少なくとも一つの要素のインスタンスを許可する。模範的な制限テンプレートは、PRICEというサブクラスに属する高々一つの要素のインスタンスを更に許可する。同様に、模範的な制限テンプレートは、PREDECESSORというサブクラスに属する少なくとも一つの要素のインスタンスを許可し、USESというサブクラスに属する少なくとも一つの要素のインスタンスを要求する。
【００３７】
以下の擬似コードは、再利用可能なソフトウェア資産を記述し、かつ上に掲載した模範的な基礎スキーマ、定義テンプレート、及び制限テンプレートに従う模範的な文書を説明している。
【００３８】
【数６】
2005521159.tif 000008
【００３９】
図２は、制限テンプレート２２Ａ〜２２Ｉ（ここで、制限テンプレート２２とする）の階層２０を説明している。ペアレント制限テンプレートの定義する要求を更に限定する要求をチャイルド制限テンプレートが含むペアレント／チャイルド関係に従って、制限テンプレート２２は配置される。例えば、制限テンプレート２２Ｂは、制限テンプレート２２Ａのチャイルドであり、制限テンプレート２２Ａの定義する要求を更に限定する。同様に、制限テンプレート２２Ｄは、制限テンプレート２２Ｂの定義する要求を更に限定する。
【００４０】
仮想スキーマ６を生成するために、スキーマ生成４は、階層２０のあらゆるノード、すなわち制限テンプレート２２のあらゆるもの、を利用することができる。例えば、制限テンプレート２２Ｆが利用される場合、基礎スキーマ８及び定義テンプレート１０の定義する要素クラス及びサブクラスのインスタンスの利用を完全に制限すべく、スキーマ生成４は、アンセスター（ancestor）制限テンプレート２２Ａ、２２Ｂ、２２Ｄ、及び２２Ｆを利用する。制限テンプレート２２を利用している間、スキーマ生成４は、制限テンプレート・スキーマ１６を背景にして制限テンプレート２２を有効にする。更に、スキーマ生成４は、利用される各チャイルド制限テンプレートがあらゆるアンセスター制限テンプレートと競合しないことを有効にする。例えば、ペアレント制限テンプレートが要素に対するインスタンスの最小数を定義する場合、チャイルド制限テンプレートはより低い最小数を定義することはできない。
【００４１】
ユーザ１４は、一つ以上の制限テンプレート２２を階層２０に付加することによってＸＭＬ文書の新しいクラスをサポートするように、システム２を容易に構成することができる。このように、制限テンプレートは、階層的な方法でテンプレートを構築することによって一企業全体をサポートするように、容易に構築することができる。階層２０によってサポートされるＸＭＬ文書の全ては、基礎スキーマ８に従い、要素の名前及び属性が実質的に同様となるという意味で標準化されるのが好都合である。
【００４２】
図３は、スキーマ情報を動的に生成するための技術を更に詳細に説明するフローチャートである。最初に、スキーマ生成４は、データ記述言語に従う要素のクラスを定義する基礎スキーマ８を受け取る（３０）。次に、スキーマ生成４は、要素に対するサブクラスを定義する任意の個数の定義テンプレートを受け取ることができる（３２）。定義テンプレート１０を受け取ると、スキーマ生成４は、定義テンプレート・スキーマ１６を用いて定義テンプレートを有効にする（３６）。
【００４３】
スキーマ生成４が定義テンプレート・スキーマ１６を考慮して定義テンプレートのいずれかが有効ではないと判定した場合（３６のＮＯ分岐）、スキーマ生成４は、ユーザ１４にエラー・メッセージを表示する（５０）。
【００４４】
そうでない場合、スキーマ生成４は、要素のインスタンスに対して要求を定義する任意の個数の制限テンプレート１２を受け取る（３８）。上述したように、制限テンプレート１２は、階層型で関連付けることができる。制限テンプレート１２を受け取ると、スキーマ生成４は、制限テンプレート・スキーマ１８を用いて各制限テンプレートを有効にする（４０）。スキーマ生成４が制限テンプレート・スキーマ１８を考慮して制限テンプレート１２のいずれかが有効ではないと判定した場合（３６のＮＯ分岐）、スキーマ生成４は、ユーザ１４にエラー・メッセージを表示する（５０）。
【００４５】
定義テンプレート１０及び制限テンプレート１２の両者を有効にすると、スキーマ生成４は、スキーマ情報、すなわち仮想スキーマ６、を生成する（４４）。特に、スキーマ生成４は、基礎スキーマ８の定義する要素のクラスを代表するデータ構造を最初に生成することによって、仮想スキーマ６のスキーマ情報を生成する。次いで、スキーマ生成４は、定義テンプレート１０内で定義される要素のサブクラスを含むようにスキーマ情報を拡張すべく、定義テンプレート１０を基礎スキーマ８に与える。最後に、スキーマ生成４は、制限テンプレート１２の定義する制限を含むようにスキーマ情報を更新すべく制限テンプレート１２を利用する。上述したように、スキーマ生成４は、ルート制限テンプレートで始まり階層の制限テンプレートの選択された一つへ続く制限テンプレートの階層を利用することができる。
【００４６】
一実施形態において、スキーマ生成４は、クラス及びサブクラスのインスタンスを有効にするために許容できる値及び属性を定義するデータ構造として、仮想スキーマ６を生成する。全ての許容できる要素に対して、データ構造は、要素の名前、有効な値のリスト、要素に対する濃度、及び許容できる属性のリストを定義するレコードを生成する。データ構造は、属性に対する有効な値を列挙する各属性に対するレコードを更に生成する。スキーマ生成４は、ツリー、ハッシュ・テーブル、連結リスト等、又はそれらの任意の組み合わせとして、データ構造を生成することができる。
【００４７】
有効化エンジン１７は、仮想スキーマ６に従って文書１９を有効にする（４８）。換言すると、有効化エンジン１７は、要素のインスタンスが、それぞれ基礎スキーマ８及び定義テンプレート１０の定義するクラス及びサブクラス、及び制限テンプレート１３の定義する要求に従っていることを確認する。同様に、定義テンプレート１０が与えられない場合、有効化エンジンは、基礎スキーマ８及び制限テンプレート１２から生成される仮想スキーマ６に従って文書１９を有効にする。文書１９が有効でないと有効化エンジン１７が判定した場合、有効化エンジン１７は、ユーザ１４にエラー・メッセージを表示することができる（５０）。
【００４８】
図４は、文書１９から無くなっている要求された要素のインスタンスのいずれかを識別するために有効化エンジン１７が仮想スキーマ６を利用するシステム６０を説明するブロック図である。無くなっているインスタンスを検出すると、有効化エンジン４は、取り込みモジュール６２を起動して、ユーザ１４又は収納庫６４からデータを取り込む。このように、有効化エンジン１７及び取り込みモジュール６２は、上述の例で説明したような再利用可能なソフトウェア資産といったデータを取り込み標準化するためのプロセスを起動すべく、基礎スキーマ８、定義テンプレート１０、及び制限テンプレート１２を利用することができる。
【００４９】
例えば、取り込まれた再利用可能なソフトウェア資産は、後の開発環境でその資産を繰り返し利用することを目的として作られた一組の関連する製品で構成され得る。製品の例には、ソフトウェア資産に対するソース・コード又はバイナリ・コードが含まれる。別の例には、要求仕様、設計文書等のような文書が含まれる。製品の更なる例には、Enterprise JavaBeans（ＥＪＢ）及びComponent Object Model（ＣＯＭ）のような独立に配布可能なソフトウェア・コンポーネント、データ記述言語に従うスキーマ、様々なソフトウェア・コンポーネントの形式的表現を与えるモデリング情報（モデル）、ソフトウェア・コンポーネントの特定のインスタンスのような資産の配置に関連する製品が含まれる。
【００５０】
本発明の様々な実施形態を記載してきた。これらの及びその他の実施形態は、請求項の範囲内にある。
【図面の簡単な説明】
【００５１】
【図１】スキーマ生成が「仮想」スキーマと称されるスキーマ情報を動的に生成する例となるシステムを説明するブロック図である。
【図２】スキーマ生成による利用のための制限テンプレートの階層を説明するブロック図である。
【図３】スキーマ情報を動的に生成するための技術を更に詳細に説明するフローチャートである。
【図４】有効化エンジンがデータ取り込みプロセスを起動するために仮想スキーマを利用するシステムを説明するブロック図である。
【図１】
2005521159.tif 000009
【図２】
2005521159.tif 000010
【図３】
2005521159.tif 000011
【図４】
2005521159.tif 000012
【手続補正書】
【提出日】平成16年11月18日(2004.11.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ記述言語に従う要素のクラスを定義するスキーマを受け取ることと、
前記要素のインスタンス対する要求を定義する制限テンプレートを受け取ることと、
前記スキーマ及び前記制限テンプレートに従って文書を有効にすることと、
で構成される方法。
【請求項２】
前記文書を有効にするために前記スキーマ及び前記制限テンプレートに基づいてスキーマ情報を動的に生成することで更に構成される請求項１に記載の方法。
【請求項３】
文書を有効にすることは、
前記スキーマを代表するスキーマ情報を記憶するためのデータ構造を有する仮想スキーマを動的に生成することと、
前記制限テンプレートの定義する要求に基づいて前記データ構造を更新することと、
前記制限テンプレートの定義する前記スキーマ及び前記要求によって定義される前記クラスに従って前記文書内で要素のインスタンスを有効にすることと、
で構成される請求項１に記載の方法。
【請求項４】
前記制限テンプレートは、
前記要素の前記インスタンスに対して要求される濃度と、
前記要素の前記インスタンスの要求される最小数及び要求される最大数と、
前記要素の前記インスタンスの要求される数に対する範囲と、
前記要素の前記インスタンスに対して要求される属性と、
前記要素の前記インスタンスに対して要求されるパラメータ値と、
前記要素の特定の要求されるインスタンスと、
の少なくとも一つを定義する請求項１に記載の方法。
【請求項５】
前記制限テンプレートは、前記データ記述言語に従う請求項１に記載の方法。
【請求項６】
制限テンプレートを受け取ることは、制限テンプレートの階層を受け取ることで構成され、
かつ文書を有効にすることは、制限テンプレートの前記階層に従って文書を有効にすることで構成される、
請求項１に記載の方法。
【請求項７】
データ記述言語に従う要素のクラスを定義するスキーマと、
前記要素のインスタンスに対する要求を定義する制限テンプレートと、
前記スキーマ及び前記制限テンプレートに従って文書を有効にする有効化エンジンと、
で構成されるシステム。
【請求項８】
前記スキーマ及び前記制限テンプレートに基づいて仮想スキーマを生成するスキーマ生成で更に構成され、前記有効化エンジンは、前記仮想スキーマで前記文書を有効にし、
前記スキーマ生成は、前記スキーマを代表するスキーマ情報を記憶するためにデータ構造を動的に生成し、かつ前記制限テンプレートの定義する要求を代表する付加的なスキーマ情報を記憶するために前記データ構造を更新する、
請求項７に記載のシステム。
【請求項９】
少なくとも一つのペアレント制限テンプレート及び少なくとも一つのチャイルド制限テンプレートを有する制限テンプレートの階層で更に構成され、前記チャイルド制限テンプレートは、前記ペアレント制限テンプレートの定義する要求を限定する要求を含み、かつ前記有効化エンジンは、前記チャイルド制限テンプレートに従って前記文書を有効にする請求項７に記載のシステム。
【請求項１０】
プロセッサに請求項１〜６に記載の方法を実行させる命令で構成されるコンピュータ可読媒体。
【国際調査報告】
2005521159.tif 000013
2005521159.tif 000014