(57)【特許請求の範囲】
【請求項１】
自動差分ツールのための参照情報として使用される正規化されたスキーマ比較ファイルを生成する方法であって、
処理デバイスが、拡張可能マークアップ言語（ＸＭＬ）文書に関するＸＭＬスキーマを受け取る処理であって、前記ＸＭＬスキーマは、コンテンツモデル及び１又は２以上の内部スキーマ構造を含み、前記コンテンツモデルは、準拠ＸＭＬインスタンスファイル内で許可される１又は２以上のＸＭＬ要素及びＸＭＬ属性の詳細である当該処理と、
前記処理デバイスが、前記ＸＭＬスキーマを処理して前記１又は２以上の内部スキーマ構造に関し、少なくとも前記ＸＭＬ文書から内部構造情報を削除する処理と、
前記処理デバイスが、前記１又は２以上のＸＭＬ要素及びＸＭＬ属性の各々に関する定義情報を識別して複数の定義情報を取得し、制約又は拡張のタイプについての詳細と、前記ＸＭＬスキーマにおける１又は２以上のＸＭＬ要素及びＸＭＬ属性の各々に関して定義された制約又は拡張によって表される制約条件を完全に記述するのに必要な全ての関連情報とを含む前記定義情報に基づき、同じスキーマモジュールに全ての構造的要素が出現される単一のスキーマモジュールにフラット化した基準構造を決定する処理と、
前記処理デバイスが、前記ＸＭＬスキーマの構文を前記基準構造に基づきスキーマ比較する処理と、
前記処理デバイスが、前記基準構造における前記複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得する処理と、
前記処理デバイスが、前記整列した複数の定義情報において２以上の重複する同一のＸＭＬ要素及びＸＭＬ属性が存在する場合、１つだけ残して重複する定義情報を取り除く処理と、
前記処理デバイスが、前記整列し且つ重複のない前記ＸＭＬ要素及びＸＭＬ属性で構成された複数の定義情報に基づき、前記ＸＭＬ文書のための前記ＸＭＬスキーマと区別されるスキーマ比較のための正規化ファイルを生成する処理と、
前記処理デバイスが、前記正規化ファイルを前記自動差分ツールに出力する処理であって、前記正規化ファイルにより、前記自動差分ツールが第１のＸＭＬスキーマ言語及び第２のＸＭＬスキーマ言語を、異なるＸＭＬスキーマに準拠するＸＭＬファイルと比較することが許可される当該処理と、
を実行する前記方法。
【請求項２】
前記正規化ファイルを前記自動差分ツールに出力する処理は、前記自動差分ツールによりアクセスされるリポジトリに前記正規化ファイルを出力すること含む、請求項１に記載の方法。
【請求項３】
前記正規化ファイルを前記自動差分ツールに出力する処理は、自動差分ツールによって読み取り可能な形式で前記正規化ファイルを出力することを含む、請求項１又は２に記載の方法。
【請求項４】
前記ＸＭＬスキーマは、複数のスキーマモジュールをさらに含み、前記複数のスキーマモジュールのいずれもが、前記ＸＭＬスキーマの構造的要素の１又は２以上の定義情報を提供する、請求項１〜３の何れか１項に記載の方法。
【請求項５】
処理に先だって、前記処理デバイスが、前記ＸＭＬスキーマを単一のスキーマモジュールに正規化する処理をさらに含む、請求項４に記載の方法。
【請求項６】
前記正規化する処理は、前記複数のスキーマモジュールの各々の中に包含される複数の定義情報を組み合わせて単一のファイルにする処理と、前記スキーマモジュールのうちの少なくとも１つを包含する又はインポートに関連する構文を削除する処理と含む、請求項５に記載の方法。
【請求項７】
前記１又は２以上のＸＭＬ要素及びＸＭＬ属性の各々に関する定義を識別する処理は、前記処理デバイスによって、要素の特定のデータタイプ、制約、及び拡張と、要素の属性のデータタイプ並びに他の制約及び拡張と、要素の子要素及びテキストコンテンツの濃度、順序、及び／又は他の制約及び拡張とのうちの１又は２以上に基づいて、１又は２以上の要素の各々を定義する処理を含む、請求項１〜６の何れか１項に記載の方法。
【請求項８】
前記ＸＭＬスキーマは、文書型定義（ＤＴＤ）、Ｒｅｌａｘ−ＮＧ、スキマトロン、及びＷ３Ｃ  ＸＳＤから１つ選択されたスキーマ言語で記述され、
前記第２のスキーマ言語は、文書型定義（ＤＴＤ）、Ｒｅｌａｘ−ＮＧ、スキマトロン、及びＷ３Ｃ  ＸＳＤの前記選択とは別のものが選択される、請求項１〜７の何れか１項に記載の方法。
【請求項９】
自動差分ツールのための参照情報として使用される正規化されたスキーマ比較ファイルを生成するためのシステムであって、
処理デバイスと、
非一時的プロセッサ可読記憶媒体と、
を備え、
前記処理デバイスによって、
拡張可能マークアップ言語（ＸＭＬ）文書に関する準拠ＸＭＬインスタンスファイル内で許可される１又は２以上のＸＭＬ要素及びＸＭＬ属性についての詳細であるコンテンツモデル、並びに１又は２以上の内部スキーマ構造を含むＸＭＬスキーマを受け取り、
前記ＸＭＬスキーマを処理して前記１又は２以上の内部スキーマ構造に関し、少なくとも前記ＸＭＬ文書から内部構造情報を削除し、
前記１又は２以上のＸＭＬ要素及びＸＭＬ属性の各々に関する定義を識別して複数の定義情報を取得し、制約又は拡張のタイプについての詳細と、前記ＸＭＬスキーマにおける１又は２以上のＸＭＬ要素及びＸＭＬ属性の各々に関して定義された制約又は拡張によって表される制約条件を完全に記述するのに必要な全ての関連情報とを含む前記定義情報に基づき、同じスキーマモジュールに全ての構造的要素が出現される単一のスキーマモジュールにフラット化した基準構造を決定する処理と、
前記ＸＭＬスキーマの構文を前記基準構造に基づきスキーマ比較し、
前記基準構造における前記複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得し、
前記整列した複数の定義情報おいて２以上の重複する同一のＸＭＬ要素及びＸＭＬ属性が存在する場合、１つだけ残して重複する定義情報を取り除き、
前記整列し且つ重複のない前記ＸＭＬ要素及びＸＭＬ属性で構成された複数の定義情報に基づき、前記ＸＭＬ文書のための前記ＸＭＬスキーマと区別されているスキーマ比較のための正規化ファイルを生成し、
前記正規化ファイルを前記自動差分ツールに出力し、前記正規化ファイルにより前記自動差分ツールが第１のＸＭＬスキーマ言語及び第２のＸＭＬスキーマ言語を、異なるＸＭＬスキーマに準拠するＸＭＬファイルと比較することが許可される、ための１又は２以上のプログラミング命令を前記非一時的プロセッサ可読記憶媒体に記憶している前記システム。
【請求項１０】
前記処理デバイスに対し前記正規化ファイルを前記自動差分ツールに出力させるようにする前記１又は２以上のプログラミング命令は、前記自動差分ツールによりアクセスされるリポジトリに前記正規化ファイルを出力するための１又は２以上のプログラミング命令をさらに含む、請求項９に記載のシステム。
【請求項１１】
前記正規化ファイルは、自動差分ツールによって読み取れる形式である、請求項９又は１０に記載のシステム。
【請求項１２】
前記１又は２以上のＸＭＬ要素及びＸＭＬ属性の各々に関する定義を識別させる前記１又は２以上のプログラミング命令はさらに、前記処理デバイスに、要素の特定のデータタイプ並びに他の制約及び拡張と、要素の属性のデータタイプ並びに他の制約及び拡張と、要素の子要素及びテキストコンテンツの濃度、順序、及び／又は他の制約及び拡張とのうちの１又は２以上に基づいて、１又は２以上の要素の各々を定義させる、請求項９〜１１の何れか１項に記載のシステム。
【請求項１３】
自動差分ツールのための参照情報として使用される正規化されたスキーマ比較ファイルを生成するための非一時的プロセッサ可読記憶媒体であって、
拡張可能マークアップ言語（ＸＭＬ）文書に関する、準拠ＸＭＬインスタンスファイル内で許可される１又は２以上のＸＭＬ要素及びＸＭＬ属性についての詳細であるコンテンツモデル、並びに１又は２以上の内部スキーマ構造を含むＸＭＬスキーマを受け取り、
前記ＸＭＬスキーマを処理して前記１又は２以上の内部スキーマ構造に関し、少なくとも前記ＸＭＬ文書から内部構造情報を削除し、
前記１又は２以上のＸＭＬ要素及びＸＭＬ属性の各々に関する定義を識別して複数の定義情報を取得し、制約又は拡張のタイプについての詳細と、前記ＸＭＬスキーマにおける１又は２以上のＸＭＬ要素及びＸＭＬ属性の各々に関して定義された制約又は拡張によって表される制約条件を完全に記述するのに必要な全ての関連情報とを含む前記定義情報に基づき、同じスキーマモジュールに全ての構造的要素が出現される単一のスキーマモジュールにフラット化した基準構造を決定し、
前記ＸＭＬスキーマの構文を前記基準構造に基づきスキーマ比較し、
前記基準構造における前記複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得し、
前記整列した複数の定義情報おいて２以上の重複する同一のＸＭＬ要素及びＸＭＬ属性が存在する場合、１つだけ残して重複する定義情報を取り除き、
前記整列し且つ重複のないＸＭＬ要素及びＸＭＬ属性で構成された複数の定義情報に基づき前記ＸＭＬ文書のための前記ＸＭＬスキーマと区別されているスキーマ比較のための正規化ファイルを生成し、
前記正規化ファイルを前記自動差分ツールに出力し、前記正規化ファイルにより、前記自動差分ツールが第１のＸＭＬスキーマ言語及び第２のＸＭＬスキーマ言語を、異なるＸＭＬスキーマに準拠するＸＭＬファイルと比較することが許可される、処理を実行させる１又は２以上のプログラミング命令を含む、前記非一時的プロセッサ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２０１４年１１月６日出願の米国仮特許出願番号６２／０７６，０５３「ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ  ＦＯＲ  ＮＯＲＭＡＬＩＺＥＤ  ＳＣＨＥＭＡ  ＣＯＭＰＡＲＩＳＯＮ（正規化スキーマ比較のためのシステム及び方法）」の優先権を主張するものであり、その開示内容全体は、引用により本明細書に組み込まれる。
【０００２】
（技術分野）
本明細書は、一般的に、データを比較するための方法、システム、及び媒体に関し、より具体的には、関連ＸＭＬスキーマに準拠するＸＭＬファイルにおいて許可される構造を比較するのに使用される、正規化されたスキーマ比較ファイルを生成するための方法、システム、及び媒体に関する。
【背景技術】
【０００３】
現在、拡張可能マークアップ言語（ＸＭＬ）スキーマは、１又は２以上の異なるスキーマ言語で生成することができる。このようなスキーマは、ＸＭＬ文書に同一の制約条件を設定することができるが、スキーマは、このような制約条件を達成するのに異なる構文（シンタックス）を用いる場合がある。異なるスキーマ言語にわたって異なる構文を使用すること又は同じスキーマ言語で異なる構文を使用すると、自動差分ツールを用いて互いにスキーマを比較することが非常に困難になる。
【０００４】
従って、複数のＸＭＬスキーマからの許容可能なＸＭＬ構造を準拠ＸＭＬインスタンスファイルと比較することにおいて、各ＸＭＬスキーマで使用される構文又はスキーマ言語に関係なく正規化されたスキーマ比較ファイルに対するニーズがあり、このファイルは、自動差分ツールのための参照情報として使用される。
【発明の概要】
【課題を解決するための手段】
【０００５】
一実施形態において、正規化されたスキーマ比較ファイルを生成する方法は、処理デバイスによってＸＭＬ文書に関するＸＭＬスキーマを受け取る処理を含む。このＸＭＬスキーマは、コンテンツモデル及び１又は２以上の内部スキーマ構造を含み、このコンテンツモデルは、準拠ＸＭＬインスタンスファイル内で許可される１又は２以上のＸＭＬ要素及びＸＭＬ属性についての詳細である。本方法はさらに、処理デバイスによって、ＸＭＬスキーマを処理して１又は２以上の内部スキーマ構造を解明及び削除する処理と、処理デバイスによって、１又は２以上のＸＭＬ要素及びＸＭＬ属性の各々に関する定義を識別して複数の定義情報を取得することによって、統一された構造を特定する処理と、処理デバイスによって、この統一された構造を正規化されたスキーマ比較構文に提供する処理と、処理デバイスによって、複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得する処理と、処理デバイスによって、この整列した複数の定義情報内に存在する何らかの冗長な定義情報を取り除く処理と、処理デバイスによって、整列した複数の定義情報を包含する正規化されたスキーマ比較ファイルを生成する処理と、を含む。
【０００６】
別の実施形態において、正規化されたスキーマ比較ファイルを生成するためのシステムは、処理デバイス及び非一時的プロセッサ可読記憶媒体を含むことができる。この非一時的プロセッサ可読記憶媒体は、実行時に、処理デバイスがＸＭＬ文書に関するＸＭＬスキーマを受け取る１又は２以上のプログラミング命令を含む。ＸＭＬスキーマは、コンテンツモデル及び１又は２以上の内部スキーマ構造を含む。このコンテンツモデルは、準拠ＸＭＬインスタンスファイル内で許可される１又は２以上のＸＭＬ要素及びＸＭＬ属性についての詳細である。非一時的プロセッサ可読記憶媒体はさらに、実行時に、処理デバイスが、ＸＭＬスキーマを処理して１又は２以上の内部スキーマ構造を解明及び削除し、１又は２以上のＸＭＬ要素及びＸＭＬ属性の各々に関する定義を識別して複数の定義情報を取得することによって、統一された構造を特定し、この統一された構造を正規化されたスキーマ比較構文に提供し、複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得し、この整列した複数の定義情報内に存在する何らかの冗長な定義情報を取り除き、整列した複数の定義情報を包含する正規化されたスキーマ比較ファイルを生成する、１又は２以上のプログラミング命令を含む。
【０００７】
さらに別の実施形態では、正規化されたスキーマ比較ファイルを生成するための非一時的プロセッサ可読記憶媒体は、ＸＭＬ文書に関するＸＭＬスキーマを受け取る処理を実行させる１又は２以上のプログラミング命令を含む。ＸＭＬスキーマは、コンテンツモデル及び１又は２以上の内部スキーマ構造を含み、このコンテンツモデルは、準拠ＸＭＬインスタンスファイル内で許可される１又は２以上のＸＭＬ要素及びＸＭＬ属性についての詳細である。非一時的プロセッサ可読記憶媒体はさらに、ＸＭＬスキーマを処理して１又は２以上の内部スキーマ構造を解明及び削除し、１又は２以上のＸＭＬ要素及びＸＭＬ属性の各々に関する定義を識別して複数の定義情報を取得することによって、統一された構造を特定し、この統一された構造を正規化されたスキーマ比較構文に提供し、複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得し、この整列した複数の定義情報内に存在する何らかの冗長な定義情報を取り除き、整列した複数の定義情報を包含する正規化されたスキーマ比較ファイルを生成する処理を実行させる１又は２以上のプログラミング命令を含む。
【０００８】
本明細書で説明する実施形態によって提示されるこれらの及び追加の特徴は、図面と併せて以下の詳細な説明を読むことでより完全に理解されるであろう。
【０００９】
図面で説明する実施形態は、本質的に説明的かつ例示的であり、特許請求の範囲によって定義される主題を限定するものではない。これらの説明的な実施形態の以下の詳細な説明は、同様の参照符号を用いて同様の構造を示す以下の図面と併せて読むことで理解することができる。
【図面の簡単な説明】
【００１０】
【図１Ａ】本明細書で示して説明する１又は２以上の実施形態による説明的なＸＳＤスキーマを示す。
【図１Ｂ】本明細書で示して説明する１又は２以上の実施形態による説明的なＲＮＧスキーマを示す。
【図２】本明細書で図示して説明する１又は２以上の実施形態による、ＸＭＬスキーマを正規化するためのシステム用の例示的なコンピュータネットワークを概略的に示す。
【図３】図２のサーバコンピュータ装置を概略的に示し、さらに本明細書で示して説明する１又は２以上の実施形態による、データを提供するのに使用できるハードウェア及びソフトウェアを示す。
【図４】本明細書で示し説明する１又は２以上の実施形態による、要素及び属性に関してＸＭＬスキーマコンテンツモデルに問い合わせを行うことによって、正規化されたスキーマ比較ファイルを生成する例示的な方法のフローチャートを概略的に示す。
【図５Ａ】本明細書で示し説明する１又は２以上の実施形態による、単一のファイルに正規化することができる例示的なスキーマモジュールを示す。
【図５Ｂ】本明細書で示し説明する１又は２以上の実施形態による、正規化された単一のファイルを示す。
【発明を実施するための形態】
【００１１】
本明細書で説明する方法、システム、及び記憶媒体は、１又は２以上の関連ＸＭＬスキーマによって定義されたＸＭＬインスタンスファイルにおける結果として生じる許容可能なＸＭＬ構造を比較するために自動差分ツールが用いることができる、正規化されたスキーマ比較ファイルを生成することに関する。このような比較は、各ＸＭＬスキーマに用いられるスキーマ言語に無関係に、かつＸＭＬスキーマを構造化するために特定のスキーマで用いられる構文に無関係に完了することができる。本明細書で説明する方法、システム、及び記憶媒体は、全ての内部スキーマ構造を無視して、各ＸＭＬスキーマによって定義された結果として生じる要素の定義のみに焦点を当てるように構成される。すなわち、本明細書で説明する方法、システム、及び記憶媒体は、第１の方法でＸＭＬ文書の要素を定義した第１のスキーマが、第２の方法で同じＸＭＬ文書の要素を定義した第２のスキーマと同一であるか否かを認識するのに用いることができる。このような方法、システム、及び記憶媒体は、多大な時間を必要としかつ第１及び第２のＸＭＬスキーマによって与えられる特定の制約条件が同一であることを認識しない場合がある、第１のＸＭＬスキーマと第２のＸＭＬスキーマとの行ごとの比較を必要としないので、好都合である。
【００１２】
ＸＭＬスキーマは、ＸＭＬ文書に関する制約条件を表現するための言語である。ＸＭＬは、人間が解読可能であり、かつ機械、特にコンピュータ装置が解読可能な形式で電子文書を符号化するためのルールセットを定義するマークアップ言語である。従って、ＸＭＬ文書（従って、ＸＭＬスキーマ）は、このＸＭＬ文書が完全にコンピュータ使用のための電子文書のコード化に関連するので、必然的にコンピュータ及びコンピュータ技術に根差している。すなわち、ＸＭＬ文書を符号化するためにＸＭＬスキーマを用いることは、コンピュータ技術の範囲を越えるものではないであろう。
【００１３】
ＸＭＬスキーマは、例えば、語彙の要素及び属性のリストを提供するために、タイプ（例えば、整数、文字列、及び／又は同様のもの、或いは「ｓｈｉｒｔ＿ｓｉｚｅ（シャツの大きさ）」、「ｇｌａｓｓｅｓ＿ｃｏｌｏｒ（グラスの色）」又は同様のものなどの特定の定義）を文書内で見出された値と関連付けるために、要素及び属性がどこで出現できるか、並びにこれらの要素の内部で何が出現できるかを制約するために（例えば、章題が章の中に存在すること、及び／又は章が章題及びその後に続く１又は２以上のテキスト段落を含む必要があることを記述する）、人間が解読可能で機械が処理可能な文書を提供するために、及び１又は２以上の文書の形式的記述を与えるために用いることができる。
【００１４】
ＸＭＬベース言語の定義を支援するためにＸＭＬスキーマが存在し、従って、このＸＭＬスキーマは、カスタマイズされたＸＭＬデータを定義する。しかしながら、例えば、文書型定義（ＤＴＤ）、Ｒｅｌａｘ−ＮＧ（ＲＮＧ）、スキマトロン（Ｓｃｈｅｍａｔｒｏｎ）、及びワールド・ワイド・ウェブ・コンソーシアム（Ｗ３Ｃ）ＸＳＤなどのいくつかの異なるスキーマ言語が、広範にわたって使用されている。異なるＸＭＬスキーマは、同一の、同様の、又は全体的に異なるＸＭＬデータ構造を記述することができる。ＸＭＬスキーマを表すために、及び他の様々なツール及びソフトウェアがＸＭＬスキーマを使用するのを助けるために用いられる全ての詳細構文に起因して、１つのスキーマを別のスキーマと、従って、ＸＭＬスキーマに準拠したＸＭＬ文書において許可された結果として生じる構造と比較することが非常に困難である場合が多い。複数のスキーマによって定義された最終的な有効データ構造が同一である場合でも差分が存在する場合がある。例えば、第１のスキーマは、子要素の２つのグループであるグループＡ及びグループＢを包含する要素Ｚを定義することができる。他のどこかで、ＸＭＬスキーマは、子要素ｚ１及び子要素ｚ２を包含するグループＡ、及び子要素ｚ３及び子要素ｚ４を包含するグループＢを定義することができる。対照的に、第２のＸＭＬスキーマは、子要素ｚ１、子要素ｚ２、子要素ｚ３、及び子要素ｚ４を包含する要素Ｚを定義することができる。第１のＸＭＬスキーマ及び第２のＸＭＬスキーマの各々は、要素Ｚが子要素ｚ１、ｚ２、ｚ３、及びｚ４を包含することを必要とするが、これらのスキーマは、非常に異なって構造化される。
【００１５】
別の例として、図１Ａは、例示的なＸＳＤスキーマを示し、図１Ｂは、例示的なＲＮＧスキーマを示している。両方のスキーマは、特定のデータセットに対して同じ制約条件を提示するが、図１Ａ及び図１Ｂに示されているように、ＸＭＬスキーマは、異なる方法でデータ出力を表現する。同じ値を定義する複数の異なる方法は、異なるスキーマの自動比較を行うのを困難にする。
【００１６】
図２は、要素及び属性データモデルに関してＸＭＬコンテンツモデルに問い合わせを行い、正規化されたＸＭＬスキーマ比較構文を生成し、ＸＭＬ文書の比較に用いる正規化されたＸＭＬスキーマ比較文書を出力するための、本明細書に示し説明する実施形態によるシステム用の構成要素を示す例示的なコンピュータネットワークである。図２に示されるように、コンピュータネットワーク２００は、インターネットなどのワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、移動体通信ネットワーク、公衆サービス電話網（ＰＳＴＮ）、パーソナルエリアネットワーク（ＰＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、及び／又は別のネットワークを含むことができる。コンピュータネットワーク２００は、一般的に、１又は２以上のコンピュータ装置及び／又はこれらの構成要素に電子的に接続するように構成できる。例示的なコンピュータ装置は、限定されるものではないが、ユーザコンピュータ装置２１０ａ、サーバコンピュータ装置２１０ｂ、及び管理者コンピュータ装置２１０ｃを含むことができる。
【００１７】
ユーザコンピュータ装置２１０ａは、一般的に、ユーザと、コンピュータネットワーク２００に接続された他の構成要素との間のインタフェースとして使用することができる。従って、ユーザコンピュータ装置２１０ａを使用して、１又は２以上の入力をユーザから受け取ること又はユーザに情報を提供することなどの、本明細書でさらに詳細に説明する１又は２以上のユーザ対面機能を実行することができる。いくつかの実施形態では、ユーザコンピュータ装置２１０ａは、ＸＭＬ文書を比較するための１又は２以上のソフトウェアプログラム及び／又は同様のものを含むことができる。
【００１８】
さらに、図２には、管理者コンピュータ装置２１０ｃが含まれる。サーバコンピュータ装置２１０ｂが監視、更新、又は修正を必要とする場合、管理者コンピュータ装置２１０ｃは、所望の監視、更新、及び／又は修正をもたらすように構成することができる。また、管理者コンピュータ装置２１０ｃは、サーバコンピュータ装置２１０ｂに格納されたコーパス（corpus）に別のデータを入力するために使用することもできる。
【００１９】
サーバコンピュータ装置２１０ｂは、１又は２以上の情報源からのデータを受け取って、このデータを格納し、ユーザコンピュータ装置２１０ａなどの１又は２以上の受信者にこのデータを提供し、要素及び属性データモデルに関してＸＭＬスキーマコンテンツモデルに問い合わせを行い、正規化されたＸＭＬスキーマ比較構文を生成し、正規化されたＸＭＬスキーマ比較文書を出力することができる。
【００２０】
ユーザコンピュータ装置２１０ａ及び管理者コンピュータ装置２１０ｃは、パーソナルコンピュータとして示され、サーバコンピュータ装置２１０ｂは、サーバとして示されているが、これは、非限定的な例であることを理解されたい。より具体的には、いくつかの実施形態では、これらの構成要素のいずれかには、何らかのタイプのコンピュータ装置（例えば、モバイルコンピュータ装置、パーソナルコンピュータ、サーバなど）を用いることができる。追加的に、これらのコンピュータ装置の各々は、単一要素のハードウェアとして図２に示されているが、これも単に一例である。より具体的には、ユーザコンピュータ装置２１０ａ、サーバコンピュータ装置２１０ｂ、及び管理者コンピュータ装置２１０ｃの各々は、複数のコンピュータ、サーバ、データベース、構成要素、及び／又は同様のものを表すことができる。
【００２１】
加えて、本明細書に示されている実施形態は、コンピュータ装置のネットワークに言及しているが、本開示は、このようなネットワークにのみに限定されるものではないことを理解されたい。例えば、いくつかの実施形態では、本明細書に記載する様々な処理は、ネットワークに接続されていないコンピュータ装置、又は本明細書で説明する様々な処理を完了するのにネットワークを使用しないネットワーク接続コンピュータ装置などの、単一のコンピュータ装置によって完了することができる。
【００２２】
図３は、図２のサーバコンピュータ装置２１０ｂを示しており、１又は２以上の情報源からのデータを受け取って、このデータを格納し、このデータを１又は２以上の受信者に提供し、要素及び属性データモデルに関してＸＭＬスキーマコンテンツモデルに問い合わせを行い、正規化されたＸＭＬスキーマ比較構文を生成し、正規化されたＸＭＬスキーマ比較文書を出力するシステムをさらに示す。加えて、サーバコンピュータ装置２１０ｂは、要素及び属性データモデルに関してＸＭＬスキーマコンテンツモデルに問い合わせを行い、正規化されたＸＭＬスキーマ比較構文を生成し、正規化されたＸＭＬスキーマ比較文書を出力するための、本明細書に示し説明する実施形態による非一時的コンピュータ可読媒体を含むことができる。一部の実施形態では、サーバコンピュータ装置２１０ｂは、必要なハードウェア、ソフトウェア、及び／又はファームウェアを有する汎用コンピュータとして構成でき、一部の実施形態では、サーバコンピュータ装置１２ｂは、本明細書で説明する機能を実行するように専用に設計された専用コンピュータとして構成することもできる。
【００２３】
また、図３に示されているサーバコンピュータ装置２１０ｂは、プロセッサ３３０、入力／出力ハードウェア３４０、ネットワークインタフェースハードウェア３５０、データ記憶構成要素３２０（ＸＭＬ文書３３２、ＸＭＬスキーマ３２４、及び正規化されたスキーマ比較ファイル３２６を格納できる）、及び非一時的メモリ構成要素３１０を含むことができる。メモリ構成要素３１０は、揮発性コンピュータ可読媒体及び／又は不揮発性コンピュータ可読媒体として構成でき、そのようなものとして、ランダムアクセスメモリ（ＳＲＡＭ、ＤＲＡＭ、及び／又はその他のタイプのランダムアクセスメモリを含む）、フラッシュメモリ、レジスタ、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、及び／又はその他のタイプの記憶構成要素を含むことができる。さらに、メモリ構成要素３１０は、オペレーティングロジック３１２及び正規化ロジック３１４（各々が、一例として、コンピュータプログラム、ファームウェア、又はハードウェアとして具体化できる）を格納するように構成することができる。図３には、ローカルインタフェース３００も含まれており、このローカルインタフェース３００は、サーバコンピュータ装置１２ｂの構成要素間の通信を容易にするためのバス又はその他のインタフェースとして実装することができる。
【００２４】
プロセッサ３３０は、命令を（例えば、データ記憶構成要素３２０及び／又はメモリ構成要素３１０から）受け取ってこの命令を実行するように構成された何らかの処理構成要素を含むことができる。入力／出力ハードウェア３４０は、モニタ、キーボード、マウス、プリンタ、カメラ、マイクロフォン、スピーカ、タッチスクリーン、及び／又はデータを受け取る、データを送る、及び／又はデータを提示するための他のデバイスを含むことができる。ネットワークインタフェースハードウェア３５０は、モデム、ＬＡＮポート、ワイヤレスフィディリティ（Ｗｉ−Ｆｉ）カード、ＷｉＭａｘカード、移動体通信ハードウェア、及び／又は他のネットワーク及び／又はデバイスと通信するための他のハードウェアを含むことができる。
【００２５】
データ記憶構成要素３２０は、サーバコンピュータ装置２１０ｂの近くに及び／又はそれから離れて存在でき、１又は２以上のデータ要素を格納して、これら１又は２以上のデータ要素へのアクセスを可能にするように構成できることを理解されたい。図３に示されているように、データ記憶構成要素３２０は、本明細書でさらに詳細に説明されるように、ＸＭＬ文書３２２及びこのＸＭＬ文書３２２に関連するＸＭＬスキーマ３２４を格納することができる。加えて、データ記憶構成要素３２０は、本明細書でさらに詳細に説明するように、１又は２以上の正規化されたスキーマ比較ファイル３２６を格納することもできる。
【００２６】
オペレーティングロジック３１２及び正規化ロジック３１４は、メモリ構成要素３１０に含まれる。オペレーティングロジック３１２は、オペレーティングシステム、及び／又はサーバコンピュータ装置２１０ｂの構成要素を管理するための他のソフトウェアを含むことができる。正規化ロジック３１４は、以下に詳細に説明するように、ＸＭＬスキーマを正規化するためのスキーマ比較文書を生成するように構成することができる。
【００２７】
図３に示されている構成要素は、単に例示的なものであり、本開示の範囲を限定するものではないことを理解されたい。より具体的には、図３における構成要素は、サーバコンピュータ装置２１０ｂの内部に存在するように示されているが、これは、非限定的な例である。一部の実施形態では、これらの構成要素のうちの１又は２以上は、サーバコンピュータ装置２１０ｂの外部に存在することができる。同様に、図３は、サーバコンピュータ装置２１０ｂに関するものであるが、ユーザコンピュータ装置２１０ａ及び管理者コンピュータ装置２１０ｃ（図２）などの他の構成要素が、同様のハードウェア、ソフトウェア、及び／又はファームウェアを含むことができる。
【００２８】
図４は、要素及び属性に関してＸＭＬスキーマコンテンツモデルに問い合わせを行うことによって、正規化されたスキーマ比較ファイルを生成する例示的な方法のフローチャートを示している。このような問い合わせは、一般的に、複数のＸＭＬスキーマからのＸＭＬ文書構造の意味を準拠ＸＭＬインスタンスファイルと比較するのに使用できるファイルを生成するための最初のステップとして完了することができる。すなわち、図４に関して説明する処理は、ＸＭＬ文書構造の要素及び属性を定義するのにどのスキーマを用いるかにかかわらず、ＸＭＬ文書構造の意味を理解するのに用いることができる。
【００２９】
ステップ４０２に示されているように、ＸＭＬスキーマを受け取ることができる。例えばデータ記憶構成要素３２０（図３）に格納されたＸＭＬスキーマなどのＸＭＬスキーマをＸＭＬスキーマリポジトリから受け取ることができる。いくつかの実施形態では、得られるＸＭＬスキーマは、例えば、１又は２以上の他のＸＭＬスキーマと比較されるＸＭＬスキーマとすることができる。一般に、ＸＭＬスキーマは、コンテンツモデルを包含することができ、これは、ＸＭＬ要素及びＸＭＬ属性が許可される相対的構造及び配置、並びにＸＭＬ要素及びＸＭＬ属性がどのデータタイプを包含できるかを含む、準拠ＸＭＬインスタンスファイル内で許可される様々なＸＭＬ要素及びＸＭＬ属性の詳細である。上述した図１Ａ及び１Ｂは、ＸＭＬスキーマ内のコンテンツモデルの例示的な実施例を提示している。
【００３０】
いくつかの実施形態では、ＸＭＬスキーマは、複数のスキーマモデルを含むことができる。スキーマモデルは、様々な構造的要素の定義を与えるＸＭＬスキーマ構成要素である。効果的な比較構文を生成するために、ＸＭＬスキーマは、同じスキーマモジュール内に全ての構造的要素が出現するように、単一のスキーマモジュールに「フラット化」することができる。従って、ステップ４０４に示されているように、ＸＭＬスキーマがモジュールである場合（すなわち、ネスト化されたモジュールなどの複数のモジュールを包含する）、ＸＭＬスキーマは、ステップ４０６において単一のファイルに正規化することができる。ＸＭＬスキーマが複数のモジュールを含まない場合、ステップ４０６はスキップすることができる。ＸＭＬスキーマを単一のファイルに正規化するステップは、一般的に、様々なモジュール内に存在する全ての定義情報を組み合わせて単一のファイルにするステップ及びこのようなモジュールの包含又はインポートに関連する全ての構文を削除するステップを含むことができる。非限定的な例では、ＸＭＬスキーマは、モジュール２及び３を含めるための構文を包含するモジュール１を含むことができる。加えて、モジュール２は、要素「Ａ」の定義を包含し、モジュール３は、要素「Ｂ」の定義を包含する。ＸＭＬスキーマを単一のファイルに正規化することにより、モジュール１のコンテンツを包含するファイルがもたらされるが、モジュール２及び３を含めるための構文が削除される。加えて、この単一のファイルは、限定されるものではないが、要素「Ａ」及び要素「Ｂ」の定義を含むモジュール２及び３のコンテンツも包含する。ＸＭＬスキーマを正規化する別の非限定的な例が、図５Ａ及び５Ｂに示されている。図５Ａに示されているように、第１のスキーマモジュール５０２及び第２のスキーマモジュール５０４は、図５Ｂに示されている単一のファイル５０６に正規化することができる。この単一のファイル５０６は、第１のスキーマモジュール５０２及び第２のスキーマモジュール５０４のコンテンツを包含するが、第１のスキーマモジュール５０２において行われる第２のスキーマモジュール５０４への参照を含んでいない。
【００３１】
再度図４を参照すると、様々な実施形態において、ＸＭＬスキーマは、ＸＭＬ文書の構造に関連するが、比較するためには無関係である様々な内部構造を包含する場合がある。例えば、いくつかの内部構造は、ＸＭＬスキーマ自体をどのように配列するかに関連することができるが、最終的にＸＭＬスキーマによって規定される、結果として生じるＸＭＬインスタンス文書構造に無関係である。例示的な内部構造は、グループ、パターン、タイプ、及び参照を含む。しかしながら、内部構造は、これらの内部構造に限定されるものではなく、その他の内部構造を含むことができることを理解されたい。グループは、一般的に、ＸＭＬスキーマが内部でデータをどのようにグループ化するかに言及することができる。パターンは、一般的に、ＸＭＬスキーマが、アクセスに備えてデータをどのように配列するかに言及することができる。タイプは、一般的に、階層内でデータをどのように構造化するかに言及することができる。参照は、一般的に、ＸＭＬスキーマが、１又は２以上の他の定義への参照をどのように関連付けるかに言及することができる。内部構造は、ＸＭＬスキーマをどのように構造化するかにのみ関連しており、ＸＭＬスキーマによって表されるコンテンツモデルを比較する目的では無関係であるので、内部構造は、ステップ４０８において、この内部構造を解明及び／又は削除するように処理することができる。内部構造を解明及び／又は削除するステップは、例えば、文書から内部構造情報を削除するステップ、及び内部構造情報を参照するデータアーチファクト内に適切な関連コンテンツモデル情報を挿入するステップを含むことができる。一般的に、本開示の範囲から逸脱することなく、内部構造を解明及び／又は削除する他の方法を用いることができることを理解されたい。
【００３２】
ステップ４１０において、統一された構造を特定する。一般的に、統一された構造は、ＸＭＬスキーマ内に存在して参照される各要素を定義し、各定義情報は、限定されるものではないが、定義された要素の特定のデータタイプ並びに他の制約及び拡張、要素の属性のデータタイプ並びに他の制約及び拡張、要素の子要素及びテキストコンテンツの濃度、順序、及び／又は他の制約及び拡張を含むことを理解されたい。子要素及びテキストコンテンツに関する詳細は、何らかの所要の子要素グループ化、及びこのようなグループ化の順序を含む。従って、統一された構造を特定するステップは、各要素、要素の子要素及びテキストコンテンツの各々、並びにこれらに関連する定義を識別するステップを含む。このような統一された構造を特定するステップにより、１つのＸＭＬスキーマのコンテンツモデル内の要素の定義が、何らかの他のＸＭＬスキーマのコンテンツモデル内の要素の定義と同じタイプの情報を包含することが保証される。
【００３３】
統一された構造の非限定的な例は、要素「Ａ」が、データタイプｘｓ：ｄａｔｅの属性「ｄａｔｅ（日付）」を包含し、要素「Ｂ」又は要素「Ｃ」のいずれかの選択を包含し、その後に厳密に２つの要素「Ｄ」の存在が続くことを規定する構造を含むことができる。さらに、同じ統一された構造は、要素「Ｂ」が空であり、要素「Ｃ」が、データタイプｘｓ：ｉｎｔｅｇｅｒの属性「ＲｅｆＮｏ」のみを包含し、要素「Ｄ」が、データタイプｘｓ：ｂｏｏｌｅａｎの属性「ＲｅｐｌｙＮｅｅｄｅｄ」のみを包含することを規定することができる。
【００３４】
要素又は属性の制約又は拡張は、一般的に、限定されるものではないが、例えば、Ｗ３Ｃ  ＸＭＬスキーマ定義又はＲＥＬＡＸ  ＮＧスキーマ言語規格などの標準構文を含む、何らかのスキーマ定義構文において定義された要素及び属性の拡張及び制約の概念に言及する。いくつかの実施形態では、統一された構造は、制約又は拡張のタイプについての詳細と、ＸＭＬスキーマの要素又は属性に関して定義された制約又は拡張によって表される制約条件を完全に記述するのに必要な全ての関連情報と、を含む。
【００３５】
子要素の濃度は、特定の要素がＸＭＬスキーマによって定義された要素内に発生する必要がある潜在的な回数に言及し、統一された構造内に含まれる。濃度の非限定的な例は、統一された構造が、要素「Ｂ」が要素「Ａ」の子要素として厳密に３回発生する必要があることを規定することとすることができる。
【００３６】
子要素の順序は、ＸＭＬスキーマによって定義されて統一された構造内に含まれる要素内の他の子要素又は要素グループに対する位置決めに言及する。すなわち、子要素の順序は、例えば、ＸＭＬスキーマ内の他の要素に対する、第１の子要素、第２の子要素、第２の連続する子要素グループ内の第３の子要素などとすることができる。例えば、統一された構造は、定義された要素「Ａ」内の子要素「Ｂ」、「Ｃ」、及び「Ｄ」の順序は、「Ａ」の後に「Ｂ」又は「Ｃ」のグループを選択したものが続き、その後「Ｄ」が続く必要があることを規定することができる。
【００３７】
要素又は属性のデータタイプは、この要素又は属性内で許可されるコンテンツのタイプに言及する。データタイプの値は、Ｗ３Ｃ  ＸＭＬスキーマ定義言語（ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｍｌｓｃｈｅｍａ１１−１／）で定義される要素及び属性に関する許可されるデータタイプによって定義される。統一された構造内のデータタイプの値の例示的な例は、限定されるものではないが、「ｘｓ：ｄａｔｅ」及び「ｘｓ：ｉｎｔｅｇｅｒ」を含む。
【００３８】
統一された構造が特定されると、この統一された構造から、正規化されたスキーマ比較構文を生成することができる。従って、ステップ４１２において、発見されたデータモデルを、これらの要素及び属性の定義に基づいて、正規化されたスキーマ比較構文で提示（表現）することができる。すなわち、データモデルは、使用される構文が、比較できるＸＭＬスキーマの全てのコンテンツモデルにわたって同じであるように正規化することができる。構文が正規化されると、ステップ４１４において、各データモデルの要素の定義情報は、この要素の名称によってアルファベット順にソートすることができる。同様に、ステップ４１６において、各要素に関する属性の定義情報は、アルファベット順にソートすることができる。
【００３９】
ステップ４１４及び４１６におけるアルファベット順のソートが完了すると、不要なものが取り除く処理を開始でき、それによって、ステップ４１８に示すように、冗長なアーチファクトが取り除かれる。この冗長なアーチファクトは、例えば、２以上のＸＭＬスキーマに出現する特定のデータモデル又は要素及びその属性（これらの定義を含む）とすることができる。データモデルの要素及び／又はその属性が同一なので、これらのデータモデルの要素及び／又はその属性の単一のリストのみが存在するように、少なくとも１つをファイルから削除する又は取り除くことができる。従って、結果として生じるファイルは、表面上、ＸＭＬスキーマと同様であるように見えるが、ほとんどの場合、ＸＭＬスキーマではないと理解される。
【００４０】
ステップ４２０において、正規化されソートされ不要なものが取り除かれたデータモデルから、正規化されたスキーマ比較ファイルを生成することができる。ステップ４２２において、正規化されたスキーマＸＭＬファイルを保存すること、及び／又は使用に向けて出力することができる。このファイルは、例えばユーザコンピュータ装置２１０ａ又は管理者コンピュータ装置２１０ｃ（図２）などの何らかの受信者に向けて出力することができる。別の例では、このファイルは、データ記憶構成要素３２０（図２）などのリポジトリに向けて出力することができる。このファイルは、ＸＭＬスキーマに準拠しＸＭＬインスタンス文書において許可される構造を、異なるＸＭＬスキーマに準拠しＸＭＬインスタンスファイルにおいて許可される構造と比較するために使用することができる。いくつかの実施形態では、この比較は、例えば１又は２以上のソフトウェアモジュールによって具体化されたツールなどの自動差分ツールによって完了することができる。この自動差分ツールは、一般的に、ＸＭＬ文書、テキスト文書、及び／又は同様のものなどの複数の対象間の差分を特定するのに用いることができる何らかのソフトウェア検査ツールとすることができる。ファイルは、自動差分ツールが、このファイルを読み取ることができることが保証されるように、好適な形式で出力することができる。一般的に、自動差分ツールによって読み取れる特定の形式を認識する要がある。ファイルの使用は、本開示によって制限されるものではなく、このような比較が本明細書において具体的に開示されるか否かにかかわらず、何らかの比較目的で用いることができることを理解されたい。
【００４１】
いくつかの実施形態では、図４に関して説明したステップは、複数のＸＭＬスキーマの各々に対して完了することができる。例えば、図４に関して説明したステップは、データ記憶構成要素３２０（図３）に含まれているＸＭＬスキーマの各々に対して完了することができる。従って、ステップ４２４において、別のＸＭＬスキーマを処理することができるか否かに関しての判定を行うことができる。そのような場合には、処理は、ステップ４０２において繰り返すことができる。そうでない場合には、処理は終了することができる。
【００４２】
ここで、本明細書で説明する実施形態は、ＸＭＬスキーマ、特に、関連ＸＭＬスキーマに準拠したＸＭＬ文書の結果として生じる許容可能な構造を比較するのに使用されるファイルを生成してこのファイルを提供することを理解されたい。自動差分ツール及び／又はＸＭＬスキーマを迅速に比較してＸＭＬスキーマ間の差分を特定するための同様のものが、このようなファイルを使用することができ、それによって、手動比較に関連する時間が節約される。さらに、文書は、使用されるＸＭＬスキーマのタイプ、ＸＭＬスキーマを記述する言語、及びＸＭＬスキーマ自体の構造に関係なく、比較のために用いることができる。
【００４３】
本明細書では、特定の実施形態を図示し説明したが、特許請求される主題の趣旨及び範囲から逸脱することなく、他の様々な変更及び修正を行うことができると理解されたい。さらに、本明細書では、特許請求される主題の様々な態様を説明したが、このような態様を組み合わせて利用する必要はない。従って、添付の特許請求の範囲は、特許請求される主題の範囲内に含まれる全てのこのような変更及び修正も対象として含むことが意図されている。
【図１Ａ】
0006707082.tif 000002
【図１Ｂ】
0006707082.tif 000003
【図２】
0006707082.tif 000004
【図３】
0006707082.tif 000005
【図４】
0006707082.tif 000006
【図５Ａ】
0006707082.tif 000007
【図５Ｂ】
0006707082.tif 000008