(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6707082
(24)【登録日】2020年5月21日
(45)【発行日】2020年6月10日
(54)【発明の名称】正規化スキーマ比較のためのシステム及び方法
(51)【国際特許分類】
G06F 40/14 20200101AFI20200601BHJP
G06F 40/194 20200101ALI20200601BHJP
G06F 40/154 20200101ALI20200601BHJP
【FI】
G06F17/22 647
G06F17/22 611
G06F17/22 670
【請求項の数】13
【全頁数】16
(21)【出願番号】特願2017-524364(P2017-524364)
(86)(22)【出願日】2015年11月6日
(65)【公表番号】特表2017-534992(P2017-534992A)
(43)【公表日】2017年11月24日
(86)【国際出願番号】US2015059395
(87)【国際公開番号】WO2016073817
(87)【国際公開日】20160512
【審査請求日】2018年10月24日
(31)【優先権主張番号】62/076,053
(32)【優先日】2014年11月6日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】507061029
【氏名又は名称】レクシスネクシス ア ディヴィジョン オブ リード エルザヴィア インコーポレイテッド
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100088694
【弁理士】
【氏名又は名称】弟子丸 健
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100122563
【弁理士】
【氏名又は名称】越柴 絵里
(72)【発明者】
【氏名】バティッド スティーヴ
(72)【発明者】
【氏名】ラッカボー ジョイ
(72)【発明者】
【氏名】ハミース マーン
【審査官】
成瀬 博之
(56)【参考文献】
【文献】
米国特許出願公開第2005/0192990(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00−40/58
(57)【特許請求の範囲】
【請求項1】
自動差分ツールのための参照情報として使用される正規化されたスキーマ比較ファイルを生成する方法であって、
処理デバイスが、拡張可能マークアップ言語(XML)文書に関するXMLスキーマを受け取る処理であって、前記XMLスキーマは、コンテンツモデル及び1又は2以上の内部スキーマ構造を含み、前記コンテンツモデルは、準拠XMLインスタンスファイル内で許可される1又は2以上のXML要素及びXML属性の詳細である当該処理と、
前記処理デバイスが、前記XMLスキーマを処理して前記1又は2以上の内部スキーマ構造に関し、少なくとも前記XML文書から内部構造情報を削除する処理と、
前記処理デバイスが、前記1又は2以上のXML要素及びXML属性の各々に関する定義情報を識別して複数の定義情報を取得し、制約又は拡張のタイプについての詳細と、前記XMLスキーマにおける1又は2以上のXML要素及びXML属性の各々に関して定義された制約又は拡張によって表される制約条件を完全に記述するのに必要な全ての関連情報とを含む前記定義情報に基づき、同じスキーマモジュールに全ての構造的要素が出現される単一のスキーマモジュールにフラット化した基準構造を決定する処理と、
前記処理デバイスが、前記XMLスキーマの構文を前記基準構造に基づきスキーマ比較する処理と、
前記処理デバイスが、前記基準構造における前記複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得する処理と、
前記処理デバイスが、前記整列した複数の定義情報において2以上の重複する同一のXML要素及びXML属性が存在する場合、1つだけ残して重複する定義情報を取り除く処理と、
前記処理デバイスが、前記整列し且つ重複のない前記XML要素及びXML属性で構成された複数の定義情報に基づき、前記XML文書のための前記XMLスキーマと区別されるスキーマ比較のための正規化ファイルを生成する処理と、
前記処理デバイスが、前記正規化ファイルを前記自動差分ツールに出力する処理であって、前記正規化ファイルにより、前記自動差分ツールが第1のXMLスキーマ言語及び第2のXMLスキーマ言語を、異なるXMLスキーマに準拠するXMLファイルと比較することが許可される当該処理と、
を実行する前記方法。
【請求項2】
前記正規化ファイルを前記自動差分ツールに出力する処理は、前記自動差分ツールによりアクセスされるリポジトリに前記正規化ファイルを出力すること含む、請求項1に記載の方法。
【請求項3】
前記正規化ファイルを前記自動差分ツールに出力する処理は、自動差分ツールによって読み取り可能な形式で前記正規化ファイルを出力することを含む、請求項1又は2に記載の方法。
【請求項4】
前記XMLスキーマは、複数のスキーマモジュールをさらに含み、前記複数のスキーマモジュールのいずれもが、前記XMLスキーマの構造的要素の1又は2以上の定義情報を提供する、請求項1〜3の何れか1項に記載の方法。
【請求項5】
処理に先だって、前記処理デバイスが、前記XMLスキーマを単一のスキーマモジュールに正規化する処理をさらに含む、請求項4に記載の方法。
【請求項6】
前記正規化する処理は、前記複数のスキーマモジュールの各々の中に包含される複数の定義情報を組み合わせて単一のファイルにする処理と、前記スキーマモジュールのうちの少なくとも1つを包含する又はインポートに関連する構文を削除する処理と含む、請求項5に記載の方法。
【請求項7】
前記1又は2以上のXML要素及びXML属性の各々に関する定義を識別する処理は、前記処理デバイスによって、要素の特定のデータタイプ、制約、及び拡張と、要素の属性のデータタイプ並びに他の制約及び拡張と、要素の子要素及びテキストコンテンツの濃度、順序、及び/又は他の制約及び拡張とのうちの1又は2以上に基づいて、1又は2以上の要素の各々を定義する処理を含む、請求項1〜6の何れか1項に記載の方法。
【請求項8】
前記XMLスキーマは、文書型定義(DTD)、Relax−NG、スキマトロン、及びW3C XSDから1つ選択されたスキーマ言語で記述され、
前記第2のスキーマ言語は、文書型定義(DTD)、Relax−NG、スキマトロン、及びW3C XSDの前記選択とは別のものが選択される、請求項1〜7の何れか1項に記載の方法。
【請求項9】
自動差分ツールのための参照情報として使用される正規化されたスキーマ比較ファイルを生成するためのシステムであって、
処理デバイスと、
非一時的プロセッサ可読記憶媒体と、
を備え、
前記処理デバイスによって、
拡張可能マークアップ言語(XML)文書に関する準拠XMLインスタンスファイル内で許可される1又は2以上のXML要素及びXML属性についての詳細であるコンテンツモデル、並びに1又は2以上の内部スキーマ構造を含むXMLスキーマを受け取り、
前記XMLスキーマを処理して前記1又は2以上の内部スキーマ構造に関し、少なくとも前記XML文書から内部構造情報を削除し、
前記1又は2以上のXML要素及びXML属性の各々に関する定義を識別して複数の定義情報を取得し、制約又は拡張のタイプについての詳細と、前記XMLスキーマにおける1又は2以上のXML要素及びXML属性の各々に関して定義された制約又は拡張によって表される制約条件を完全に記述するのに必要な全ての関連情報とを含む前記定義情報に基づき、同じスキーマモジュールに全ての構造的要素が出現される単一のスキーマモジュールにフラット化した基準構造を決定する処理と、
前記XMLスキーマの構文を前記基準構造に基づきスキーマ比較し、
前記基準構造における前記複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得し、
前記整列した複数の定義情報おいて2以上の重複する同一のXML要素及びXML属性が存在する場合、1つだけ残して重複する定義情報を取り除き、
前記整列し且つ重複のない前記XML要素及びXML属性で構成された複数の定義情報に基づき、前記XML文書のための前記XMLスキーマと区別されているスキーマ比較のための正規化ファイルを生成し、
前記正規化ファイルを前記自動差分ツールに出力し、前記正規化ファイルにより前記自動差分ツールが第1のXMLスキーマ言語及び第2のXMLスキーマ言語を、異なるXMLスキーマに準拠するXMLファイルと比較することが許可される、ための1又は2以上のプログラミング命令を前記非一時的プロセッサ可読記憶媒体に記憶している前記システム。
【請求項10】
前記処理デバイスに対し前記正規化ファイルを前記自動差分ツールに出力させるようにする前記1又は2以上のプログラミング命令は、前記自動差分ツールによりアクセスされるリポジトリに前記正規化ファイルを出力するための1又は2以上のプログラミング命令をさらに含む、請求項9に記載のシステム。
【請求項11】
前記正規化ファイルは、自動差分ツールによって読み取れる形式である、請求項9又は10に記載のシステム。
【請求項12】
前記1又は2以上のXML要素及びXML属性の各々に関する定義を識別させる前記1又は2以上のプログラミング命令はさらに、前記処理デバイスに、要素の特定のデータタイプ並びに他の制約及び拡張と、要素の属性のデータタイプ並びに他の制約及び拡張と、要素の子要素及びテキストコンテンツの濃度、順序、及び/又は他の制約及び拡張とのうちの1又は2以上に基づいて、1又は2以上の要素の各々を定義させる、請求項9〜11の何れか1項に記載のシステム。
【請求項13】
自動差分ツールのための参照情報として使用される正規化されたスキーマ比較ファイルを生成するための非一時的プロセッサ可読記憶媒体であって、
拡張可能マークアップ言語(XML)文書に関する、準拠XMLインスタンスファイル内で許可される1又は2以上のXML要素及びXML属性についての詳細であるコンテンツモデル、並びに1又は2以上の内部スキーマ構造を含むXMLスキーマを受け取り、
前記XMLスキーマを処理して前記1又は2以上の内部スキーマ構造に関し、少なくとも前記XML文書から内部構造情報を削除し、
前記1又は2以上のXML要素及びXML属性の各々に関する定義を識別して複数の定義情報を取得し、制約又は拡張のタイプについての詳細と、前記XMLスキーマにおける1又は2以上のXML要素及びXML属性の各々に関して定義された制約又は拡張によって表される制約条件を完全に記述するのに必要な全ての関連情報とを含む前記定義情報に基づき、同じスキーマモジュールに全ての構造的要素が出現される単一のスキーマモジュールにフラット化した基準構造を決定し、
前記XMLスキーマの構文を前記基準構造に基づきスキーマ比較し、
前記基準構造における前記複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得し、
前記整列した複数の定義情報おいて2以上の重複する同一のXML要素及びXML属性が存在する場合、1つだけ残して重複する定義情報を取り除き、
前記整列し且つ重複のないXML要素及びXML属性で構成された複数の定義情報に基づき前記XML文書のための前記XMLスキーマと区別されているスキーマ比較のための正規化ファイルを生成し、
前記正規化ファイルを前記自動差分ツールに出力し、前記正規化ファイルにより、前記自動差分ツールが第1のXMLスキーマ言語及び第2のXMLスキーマ言語を、異なるXMLスキーマに準拠するXMLファイルと比較することが許可される、処理を実行させる1又は2以上のプログラミング命令を含む、前記非一時的プロセッサ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2014年11月6日出願の米国仮特許出願番号62/076,053「SYSTEMS AND METHODS FOR NORMALIZED SCHEMA COMPARISON(正規化スキーマ比較のためのシステム及び方法)」の優先権を主張するものであり、その開示内容全体は、引用により本明細書に組み込まれる。
【0002】
(技術分野)
本明細書は、一般的に、データを比較するための方法、システム、及び媒体に関し、より具体的には、関連XMLスキーマに準拠するXMLファイルにおいて許可される構造を比較するのに使用される、正規化されたスキーマ比較ファイルを生成するための方法、システム、及び媒体に関する。
【背景技術】
【0003】
現在、拡張可能マークアップ言語(XML)スキーマは、1又は2以上の異なるスキーマ言語で生成することができる。このようなスキーマは、XML文書に同一の制約条件を設定することができるが、スキーマは、このような制約条件を達成するのに異なる構文(シンタックス)を用いる場合がある。異なるスキーマ言語にわたって異なる構文を使用すること又は同じスキーマ言語で異なる構文を使用すると、自動差分ツールを用いて互いにスキーマを比較することが非常に困難になる。
【0004】
従って、複数のXMLスキーマからの許容可能なXML構造を準拠XMLインスタンスファイルと比較することにおいて、各XMLスキーマで使用される構文又はスキーマ言語に関係なく正規化されたスキーマ比較ファイルに対するニーズがあり、このファイルは、自動差分ツールのための参照情報として使用される。
【発明の概要】
【課題を解決するための手段】
【0005】
一実施形態において、正規化されたスキーマ比較ファイルを生成する方法は、処理デバイスによってXML文書に関するXMLスキーマを受け取る処理を含む。このXMLスキーマは、コンテンツモデル及び1又は2以上の内部スキーマ構造を含み、このコンテンツモデルは、準拠XMLインスタンスファイル内で許可される1又は2以上のXML要素及びXML属性についての詳細である。本方法はさらに、処理デバイスによって、XMLスキーマを処理して1又は2以上の内部スキーマ構造を解明及び削除する処理と、処理デバイスによって、1又は2以上のXML要素及びXML属性の各々に関する定義を識別して複数の定義情報を取得することによって、統一された構造を特定する処理と、処理デバイスによって、この統一された構造を正規化されたスキーマ比較構文に提供する処理と、処理デバイスによって、複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得する処理と、処理デバイスによって、この整列した複数の定義情報内に存在する何らかの冗長な定義情報を取り除く処理と、処理デバイスによって、整列した複数の定義情報を包含する正規化されたスキーマ比較ファイルを生成する処理と、を含む。
【0006】
別の実施形態において、正規化されたスキーマ比較ファイルを生成するためのシステムは、処理デバイス及び非一時的プロセッサ可読記憶媒体を含むことができる。この非一時的プロセッサ可読記憶媒体は、実行時に、処理デバイスがXML文書に関するXMLスキーマを受け取る1又は2以上のプログラミング命令を含む。XMLスキーマは、コンテンツモデル及び1又は2以上の内部スキーマ構造を含む。このコンテンツモデルは、準拠XMLインスタンスファイル内で許可される1又は2以上のXML要素及びXML属性についての詳細である。非一時的プロセッサ可読記憶媒体はさらに、実行時に、処理デバイスが、XMLスキーマを処理して1又は2以上の内部スキーマ構造を解明及び削除し、1又は2以上のXML要素及びXML属性の各々に関する定義を識別して複数の定義情報を取得することによって、統一された構造を特定し、この統一された構造を正規化されたスキーマ比較構文に提供し、複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得し、この整列した複数の定義情報内に存在する何らかの冗長な定義情報を取り除き、整列した複数の定義情報を包含する正規化されたスキーマ比較ファイルを生成する、1又は2以上のプログラミング命令を含む。
【0007】
さらに別の実施形態では、正規化されたスキーマ比較ファイルを生成するための非一時的プロセッサ可読記憶媒体は、XML文書に関するXMLスキーマを受け取る処理を実行させる1又は2以上のプログラミング命令を含む。XMLスキーマは、コンテンツモデル及び1又は2以上の内部スキーマ構造を含み、このコンテンツモデルは、準拠XMLインスタンスファイル内で許可される1又は2以上のXML要素及びXML属性についての詳細である。非一時的プロセッサ可読記憶媒体はさらに、XMLスキーマを処理して1又は2以上の内部スキーマ構造を解明及び削除し、1又は2以上のXML要素及びXML属性の各々に関する定義を識別して複数の定義情報を取得することによって、統一された構造を特定し、この統一された構造を正規化されたスキーマ比較構文に提供し、複数の定義情報の各々をアルファベット順に整列して、整列した複数の定義情報を取得し、この整列した複数の定義情報内に存在する何らかの冗長な定義情報を取り除き、整列した複数の定義情報を包含する正規化されたスキーマ比較ファイルを生成する処理を実行させる1又は2以上のプログラミング命令を含む。
【0008】
本明細書で説明する実施形態によって提示されるこれらの及び追加の特徴は、図面と併せて以下の詳細な説明を読むことでより完全に理解されるであろう。
【0009】
図面で説明する実施形態は、本質的に説明的かつ例示的であり、特許請求の範囲によって定義される主題を限定するものではない。これらの説明的な実施形態の以下の詳細な説明は、同様の参照符号を用いて同様の構造を示す以下の図面と併せて読むことで理解することができる。
【図面の簡単な説明】
【0010】
【
図1A】本明細書で示して説明する1又は2以上の実施形態による説明的なXSDスキーマを示す。
【
図1B】本明細書で示して説明する1又は2以上の実施形態による説明的なRNGスキーマを示す。
【
図2】本明細書で図示して説明する1又は2以上の実施形態による、XMLスキーマを正規化するためのシステム用の例示的なコンピュータネットワークを概略的に示す。
【
図3】
図2のサーバコンピュータ装置を概略的に示し、さらに本明細書で示して説明する1又は2以上の実施形態による、データを提供するのに使用できるハードウェア及びソフトウェアを示す。
【
図4】本明細書で示し説明する1又は2以上の実施形態による、要素及び属性に関してXMLスキーマコンテンツモデルに問い合わせを行うことによって、正規化されたスキーマ比較ファイルを生成する例示的な方法のフローチャートを概略的に示す。
【
図5A】本明細書で示し説明する1又は2以上の実施形態による、単一のファイルに正規化することができる例示的なスキーマモジュールを示す。
【
図5B】本明細書で示し説明する1又は2以上の実施形態による、正規化された単一のファイルを示す。
【発明を実施するための形態】
【0011】
本明細書で説明する方法、システム、及び記憶媒体は、1又は2以上の関連XMLスキーマによって定義されたXMLインスタンスファイルにおける結果として生じる許容可能なXML構造を比較するために自動差分ツールが用いることができる、正規化されたスキーマ比較ファイルを生成することに関する。このような比較は、各XMLスキーマに用いられるスキーマ言語に無関係に、かつXMLスキーマを構造化するために特定のスキーマで用いられる構文に無関係に完了することができる。本明細書で説明する方法、システム、及び記憶媒体は、全ての内部スキーマ構造を無視して、各XMLスキーマによって定義された結果として生じる要素の定義のみに焦点を当てるように構成される。すなわち、本明細書で説明する方法、システム、及び記憶媒体は、第1の方法でXML文書の要素を定義した第1のスキーマが、第2の方法で同じXML文書の要素を定義した第2のスキーマと同一であるか否かを認識するのに用いることができる。このような方法、システム、及び記憶媒体は、多大な時間を必要としかつ第1及び第2のXMLスキーマによって与えられる特定の制約条件が同一であることを認識しない場合がある、第1のXMLスキーマと第2のXMLスキーマとの行ごとの比較を必要としないので、好都合である。
【0012】
XMLスキーマは、XML文書に関する制約条件を表現するための言語である。XMLは、人間が解読可能であり、かつ機械、特にコンピュータ装置が解読可能な形式で電子文書を符号化するためのルールセットを定義するマークアップ言語である。従って、XML文書(従って、XMLスキーマ)は、このXML文書が完全にコンピュータ使用のための電子文書のコード化に関連するので、必然的にコンピュータ及びコンピュータ技術に根差している。すなわち、XML文書を符号化するためにXMLスキーマを用いることは、コンピュータ技術の範囲を越えるものではないであろう。
【0013】
XMLスキーマは、例えば、語彙の要素及び属性のリストを提供するために、タイプ(例えば、整数、文字列、及び/又は同様のもの、或いは「shirt_size(シャツの大きさ)」、「glasses_color(グラスの色)」又は同様のものなどの特定の定義)を文書内で見出された値と関連付けるために、要素及び属性がどこで出現できるか、並びにこれらの要素の内部で何が出現できるかを制約するために(例えば、章題が章の中に存在すること、及び/又は章が章題及びその後に続く1又は2以上のテキスト段落を含む必要があることを記述する)、人間が解読可能で機械が処理可能な文書を提供するために、及び1又は2以上の文書の形式的記述を与えるために用いることができる。
【0014】
XMLベース言語の定義を支援するためにXMLスキーマが存在し、従って、このXMLスキーマは、カスタマイズされたXMLデータを定義する。しかしながら、例えば、文書型定義(DTD)、Relax−NG(RNG)、スキマトロン(Schematron)、及びワールド・ワイド・ウェブ・コンソーシアム(W3C)XSDなどのいくつかの異なるスキーマ言語が、広範にわたって使用されている。異なるXMLスキーマは、同一の、同様の、又は全体的に異なるXMLデータ構造を記述することができる。XMLスキーマを表すために、及び他の様々なツール及びソフトウェアがXMLスキーマを使用するのを助けるために用いられる全ての詳細構文に起因して、1つのスキーマを別のスキーマと、従って、XMLスキーマに準拠したXML文書において許可された結果として生じる構造と比較することが非常に困難である場合が多い。複数のスキーマによって定義された最終的な有効データ構造が同一である場合でも差分が存在する場合がある。例えば、第1のスキーマは、子要素の2つのグループであるグループA及びグループBを包含する要素Zを定義することができる。他のどこかで、XMLスキーマは、子要素z1及び子要素z2を包含するグループA、及び子要素z3及び子要素z4を包含するグループBを定義することができる。対照的に、第2のXMLスキーマは、子要素z1、子要素z2、子要素z3、及び子要素z4を包含する要素Zを定義することができる。第1のXMLスキーマ及び第2のXMLスキーマの各々は、要素Zが子要素z1、z2、z3、及びz4を包含することを必要とするが、これらのスキーマは、非常に異なって構造化される。
【0015】
別の例として、
図1Aは、例示的なXSDスキーマを示し、
図1Bは、例示的なRNGスキーマを示している。両方のスキーマは、特定のデータセットに対して同じ制約条件を提示するが、
図1A及び
図1Bに示されているように、XMLスキーマは、異なる方法でデータ出力を表現する。同じ値を定義する複数の異なる方法は、異なるスキーマの自動比較を行うのを困難にする。
【0016】
図2は、要素及び属性データモデルに関してXMLコンテンツモデルに問い合わせを行い、正規化されたXMLスキーマ比較構文を生成し、XML文書の比較に用いる正規化されたXMLスキーマ比較文書を出力するための、本明細書に示し説明する実施形態によるシステム用の構成要素を示す例示的なコンピュータネットワークである。
図2に示されるように、コンピュータネットワーク200は、インターネットなどのワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、移動体通信ネットワーク、公衆サービス電話網(PSTN)、パーソナルエリアネットワーク(PAN)、メトロポリタンエリアネットワーク(MAN)、仮想プライベートネットワーク(VPN)、及び/又は別のネットワークを含むことができる。コンピュータネットワーク200は、一般的に、1又は2以上のコンピュータ装置及び/又はこれらの構成要素に電子的に接続するように構成できる。例示的なコンピュータ装置は、限定されるものではないが、ユーザコンピュータ装置210a、サーバコンピュータ装置210b、及び管理者コンピュータ装置210cを含むことができる。
【0017】
ユーザコンピュータ装置210aは、一般的に、ユーザと、コンピュータネットワーク200に接続された他の構成要素との間のインタフェースとして使用することができる。従って、ユーザコンピュータ装置210aを使用して、1又は2以上の入力をユーザから受け取ること又はユーザに情報を提供することなどの、本明細書でさらに詳細に説明する1又は2以上のユーザ対面機能を実行することができる。いくつかの実施形態では、ユーザコンピュータ装置210aは、XML文書を比較するための1又は2以上のソフトウェアプログラム及び/又は同様のものを含むことができる。
【0018】
さらに、
図2には、管理者コンピュータ装置210cが含まれる。サーバコンピュータ装置210bが監視、更新、又は修正を必要とする場合、管理者コンピュータ装置210cは、所望の監視、更新、及び/又は修正をもたらすように構成することができる。また、管理者コンピュータ装置210cは、サーバコンピュータ装置210bに格納されたコーパス(corpus)に別のデータを入力するために使用することもできる。
【0019】
サーバコンピュータ装置210bは、1又は2以上の情報源からのデータを受け取って、このデータを格納し、ユーザコンピュータ装置210aなどの1又は2以上の受信者にこのデータを提供し、要素及び属性データモデルに関してXMLスキーマコンテンツモデルに問い合わせを行い、正規化されたXMLスキーマ比較構文を生成し、正規化されたXMLスキーマ比較文書を出力することができる。
【0020】
ユーザコンピュータ装置210a及び管理者コンピュータ装置210cは、パーソナルコンピュータとして示され、サーバコンピュータ装置210bは、サーバとして示されているが、これは、非限定的な例であることを理解されたい。より具体的には、いくつかの実施形態では、これらの構成要素のいずれかには、何らかのタイプのコンピュータ装置(例えば、モバイルコンピュータ装置、パーソナルコンピュータ、サーバなど)を用いることができる。追加的に、これらのコンピュータ装置の各々は、単一要素のハードウェアとして
図2に示されているが、これも単に一例である。より具体的には、ユーザコンピュータ装置210a、サーバコンピュータ装置210b、及び管理者コンピュータ装置210cの各々は、複数のコンピュータ、サーバ、データベース、構成要素、及び/又は同様のものを表すことができる。
【0021】
加えて、本明細書に示されている実施形態は、コンピュータ装置のネットワークに言及しているが、本開示は、このようなネットワークにのみに限定されるものではないことを理解されたい。例えば、いくつかの実施形態では、本明細書に記載する様々な処理は、ネットワークに接続されていないコンピュータ装置、又は本明細書で説明する様々な処理を完了するのにネットワークを使用しないネットワーク接続コンピュータ装置などの、単一のコンピュータ装置によって完了することができる。
【0022】
図3は、
図2のサーバコンピュータ装置210bを示しており、1又は2以上の情報源からのデータを受け取って、このデータを格納し、このデータを1又は2以上の受信者に提供し、要素及び属性データモデルに関してXMLスキーマコンテンツモデルに問い合わせを行い、正規化されたXMLスキーマ比較構文を生成し、正規化されたXMLスキーマ比較文書を出力するシステムをさらに示す。加えて、サーバコンピュータ装置210bは、要素及び属性データモデルに関してXMLスキーマコンテンツモデルに問い合わせを行い、正規化されたXMLスキーマ比較構文を生成し、正規化されたXMLスキーマ比較文書を出力するための、本明細書に示し説明する実施形態による非一時的コンピュータ可読媒体を含むことができる。一部の実施形態では、サーバコンピュータ装置210bは、必要なハードウェア、ソフトウェア、及び/又はファームウェアを有する汎用コンピュータとして構成でき、一部の実施形態では、サーバコンピュータ装置12bは、本明細書で説明する機能を実行するように専用に設計された専用コンピュータとして構成することもできる。
【0023】
また、
図3に示されているサーバコンピュータ装置210bは、プロセッサ330、入力/出力ハードウェア340、ネットワークインタフェースハードウェア350、データ記憶構成要素320(XML文書332、XMLスキーマ324、及び正規化されたスキーマ比較ファイル326を格納できる)、及び非一時的メモリ構成要素310を含むことができる。メモリ構成要素310は、揮発性コンピュータ可読媒体及び/又は不揮発性コンピュータ可読媒体として構成でき、そのようなものとして、ランダムアクセスメモリ(SRAM、DRAM、及び/又はその他のタイプのランダムアクセスメモリを含む)、フラッシュメモリ、レジスタ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、及び/又はその他のタイプの記憶構成要素を含むことができる。さらに、メモリ構成要素310は、オペレーティングロジック312及び正規化ロジック314(各々が、一例として、コンピュータプログラム、ファームウェア、又はハードウェアとして具体化できる)を格納するように構成することができる。
図3には、ローカルインタフェース300も含まれており、このローカルインタフェース300は、サーバコンピュータ装置12bの構成要素間の通信を容易にするためのバス又はその他のインタフェースとして実装することができる。
【0024】
プロセッサ330は、命令を(例えば、データ記憶構成要素320及び/又はメモリ構成要素310から)受け取ってこの命令を実行するように構成された何らかの処理構成要素を含むことができる。入力/出力ハードウェア340は、モニタ、キーボード、マウス、プリンタ、カメラ、マイクロフォン、スピーカ、タッチスクリーン、及び/又はデータを受け取る、データを送る、及び/又はデータを提示するための他のデバイスを含むことができる。ネットワークインタフェースハードウェア350は、モデム、LANポート、ワイヤレスフィディリティ(Wi−Fi)カード、WiMaxカード、移動体通信ハードウェア、及び/又は他のネットワーク及び/又はデバイスと通信するための他のハードウェアを含むことができる。
【0025】
データ記憶構成要素320は、サーバコンピュータ装置210bの近くに及び/又はそれから離れて存在でき、1又は2以上のデータ要素を格納して、これら1又は2以上のデータ要素へのアクセスを可能にするように構成できることを理解されたい。
図3に示されているように、データ記憶構成要素320は、本明細書でさらに詳細に説明されるように、XML文書322及びこのXML文書322に関連するXMLスキーマ324を格納することができる。加えて、データ記憶構成要素320は、本明細書でさらに詳細に説明するように、1又は2以上の正規化されたスキーマ比較ファイル326を格納することもできる。
【0026】
オペレーティングロジック312及び正規化ロジック314は、メモリ構成要素310に含まれる。オペレーティングロジック312は、オペレーティングシステム、及び/又はサーバコンピュータ装置210bの構成要素を管理するための他のソフトウェアを含むことができる。正規化ロジック314は、以下に詳細に説明するように、XMLスキーマを正規化するためのスキーマ比較文書を生成するように構成することができる。
【0027】
図3に示されている構成要素は、単に例示的なものであり、本開示の範囲を限定するものではないことを理解されたい。より具体的には、
図3における構成要素は、サーバコンピュータ装置210bの内部に存在するように示されているが、これは、非限定的な例である。一部の実施形態では、これらの構成要素のうちの1又は2以上は、サーバコンピュータ装置210bの外部に存在することができる。同様に、
図3は、サーバコンピュータ装置210bに関するものであるが、ユーザコンピュータ装置210a及び管理者コンピュータ装置210c(
図2)などの他の構成要素が、同様のハードウェア、ソフトウェア、及び/又はファームウェアを含むことができる。
【0028】
図4は、要素及び属性に関してXMLスキーマコンテンツモデルに問い合わせを行うことによって、正規化されたスキーマ比較ファイルを生成する例示的な方法のフローチャートを示している。このような問い合わせは、一般的に、複数のXMLスキーマからのXML文書構造の意味を準拠XMLインスタンスファイルと比較するのに使用できるファイルを生成するための最初のステップとして完了することができる。すなわち、
図4に関して説明する処理は、XML文書構造の要素及び属性を定義するのにどのスキーマを用いるかにかかわらず、XML文書構造の意味を理解するのに用いることができる。
【0029】
ステップ402に示されているように、XMLスキーマを受け取ることができる。例えばデータ記憶構成要素320(
図3)に格納されたXMLスキーマなどのXMLスキーマをXMLスキーマリポジトリから受け取ることができる。いくつかの実施形態では、得られるXMLスキーマは、例えば、1又は2以上の他のXMLスキーマと比較されるXMLスキーマとすることができる。一般に、XMLスキーマは、コンテンツモデルを包含することができ、これは、XML要素及びXML属性が許可される相対的構造及び配置、並びにXML要素及びXML属性がどのデータタイプを包含できるかを含む、準拠XMLインスタンスファイル内で許可される様々なXML要素及びXML属性の詳細である。上述した
図1A及び1Bは、XMLスキーマ内のコンテンツモデルの例示的な実施例を提示している。
【0030】
いくつかの実施形態では、XMLスキーマは、複数のスキーマモデルを含むことができる。スキーマモデルは、様々な構造的要素の定義を与えるXMLスキーマ構成要素である。効果的な比較構文を生成するために、XMLスキーマは、同じスキーマモジュール内に全ての構造的要素が出現するように、単一のスキーマモジュールに「フラット化」することができる。従って、ステップ404に示されているように、XMLスキーマがモジュールである場合(すなわち、ネスト化されたモジュールなどの複数のモジュールを包含する)、XMLスキーマは、ステップ406において単一のファイルに正規化することができる。XMLスキーマが複数のモジュールを含まない場合、ステップ406はスキップすることができる。XMLスキーマを単一のファイルに正規化するステップは、一般的に、様々なモジュール内に存在する全ての定義情報を組み合わせて単一のファイルにするステップ及びこのようなモジュールの包含又はインポートに関連する全ての構文を削除するステップを含むことができる。非限定的な例では、XMLスキーマは、モジュール2及び3を含めるための構文を包含するモジュール1を含むことができる。加えて、モジュール2は、要素「A」の定義を包含し、モジュール3は、要素「B」の定義を包含する。XMLスキーマを単一のファイルに正規化することにより、モジュール1のコンテンツを包含するファイルがもたらされるが、モジュール2及び3を含めるための構文が削除される。加えて、この単一のファイルは、限定されるものではないが、要素「A」及び要素「B」の定義を含むモジュール2及び3のコンテンツも包含する。XMLスキーマを正規化する別の非限定的な例が、
図5A及び5Bに示されている。
図5Aに示されているように、第1のスキーマモジュール502及び第2のスキーマモジュール504は、
図5Bに示されている単一のファイル506に正規化することができる。この単一のファイル506は、第1のスキーマモジュール502及び第2のスキーマモジュール504のコンテンツを包含するが、第1のスキーマモジュール502において行われる第2のスキーマモジュール504への参照を含んでいない。
【0031】
再度
図4を参照すると、様々な実施形態において、XMLスキーマは、XML文書の構造に関連するが、比較するためには無関係である様々な内部構造を包含する場合がある。例えば、いくつかの内部構造は、XMLスキーマ自体をどのように配列するかに関連することができるが、最終的にXMLスキーマによって規定される、結果として生じるXMLインスタンス文書構造に無関係である。例示的な内部構造は、グループ、パターン、タイプ、及び参照を含む。しかしながら、内部構造は、これらの内部構造に限定されるものではなく、その他の内部構造を含むことができることを理解されたい。グループは、一般的に、XMLスキーマが内部でデータをどのようにグループ化するかに言及することができる。パターンは、一般的に、XMLスキーマが、アクセスに備えてデータをどのように配列するかに言及することができる。タイプは、一般的に、階層内でデータをどのように構造化するかに言及することができる。参照は、一般的に、XMLスキーマが、1又は2以上の他の定義への参照をどのように関連付けるかに言及することができる。内部構造は、XMLスキーマをどのように構造化するかにのみ関連しており、XMLスキーマによって表されるコンテンツモデルを比較する目的では無関係であるので、内部構造は、ステップ408において、この内部構造を解明及び/又は削除するように処理することができる。内部構造を解明及び/又は削除するステップは、例えば、文書から内部構造情報を削除するステップ、及び内部構造情報を参照するデータアーチファクト内に適切な関連コンテンツモデル情報を挿入するステップを含むことができる。一般的に、本開示の範囲から逸脱することなく、内部構造を解明及び/又は削除する他の方法を用いることができることを理解されたい。
【0032】
ステップ410において、統一された構造を特定する。一般的に、統一された構造は、XMLスキーマ内に存在して参照される各要素を定義し、各定義情報は、限定されるものではないが、定義された要素の特定のデータタイプ並びに他の制約及び拡張、要素の属性のデータタイプ並びに他の制約及び拡張、要素の子要素及びテキストコンテンツの濃度、順序、及び/又は他の制約及び拡張を含むことを理解されたい。子要素及びテキストコンテンツに関する詳細は、何らかの所要の子要素グループ化、及びこのようなグループ化の順序を含む。従って、統一された構造を特定するステップは、各要素、要素の子要素及びテキストコンテンツの各々、並びにこれらに関連する定義を識別するステップを含む。このような統一された構造を特定するステップにより、1つのXMLスキーマのコンテンツモデル内の要素の定義が、何らかの他のXMLスキーマのコンテンツモデル内の要素の定義と同じタイプの情報を包含することが保証される。
【0033】
統一された構造の非限定的な例は、要素「A」が、データタイプxs:dateの属性「date(日付)」を包含し、要素「B」又は要素「C」のいずれかの選択を包含し、その後に厳密に2つの要素「D」の存在が続くことを規定する構造を含むことができる。さらに、同じ統一された構造は、要素「B」が空であり、要素「C」が、データタイプxs:integerの属性「RefNo」のみを包含し、要素「D」が、データタイプxs:booleanの属性「ReplyNeeded」のみを包含することを規定することができる。
【0034】
要素又は属性の制約又は拡張は、一般的に、限定されるものではないが、例えば、W3C XMLスキーマ定義又はRELAX NGスキーマ言語規格などの標準構文を含む、何らかのスキーマ定義構文において定義された要素及び属性の拡張及び制約の概念に言及する。いくつかの実施形態では、統一された構造は、制約又は拡張のタイプについての詳細と、XMLスキーマの要素又は属性に関して定義された制約又は拡張によって表される制約条件を完全に記述するのに必要な全ての関連情報と、を含む。
【0035】
子要素の濃度は、特定の要素がXMLスキーマによって定義された要素内に発生する必要がある潜在的な回数に言及し、統一された構造内に含まれる。濃度の非限定的な例は、統一された構造が、要素「B」が要素「A」の子要素として厳密に3回発生する必要があることを規定することとすることができる。
【0036】
子要素の順序は、XMLスキーマによって定義されて統一された構造内に含まれる要素内の他の子要素又は要素グループに対する位置決めに言及する。すなわち、子要素の順序は、例えば、XMLスキーマ内の他の要素に対する、第1の子要素、第2の子要素、第2の連続する子要素グループ内の第3の子要素などとすることができる。例えば、統一された構造は、定義された要素「A」内の子要素「B」、「C」、及び「D」の順序は、「A」の後に「B」又は「C」のグループを選択したものが続き、その後「D」が続く必要があることを規定することができる。
【0037】
要素又は属性のデータタイプは、この要素又は属性内で許可されるコンテンツのタイプに言及する。データタイプの値は、W3C XMLスキーマ定義言語(http://www.w3.org/TR/xmlschema11−1/)で定義される要素及び属性に関する許可されるデータタイプによって定義される。統一された構造内のデータタイプの値の例示的な例は、限定されるものではないが、「xs:date」及び「xs:integer」を含む。
【0038】
統一された構造が特定されると、この統一された構造から、正規化されたスキーマ比較構文を生成することができる。従って、ステップ412において、発見されたデータモデルを、これらの要素及び属性の定義に基づいて、正規化されたスキーマ比較構文で提示(表現)することができる。すなわち、データモデルは、使用される構文が、比較できるXMLスキーマの全てのコンテンツモデルにわたって同じであるように正規化することができる。構文が正規化されると、ステップ414において、各データモデルの要素の定義情報は、この要素の名称によってアルファベット順にソートすることができる。同様に、ステップ416において、各要素に関する属性の定義情報は、アルファベット順にソートすることができる。
【0039】
ステップ414及び416におけるアルファベット順のソートが完了すると、不要なものが取り除く処理を開始でき、それによって、ステップ418に示すように、冗長なアーチファクトが取り除かれる。この冗長なアーチファクトは、例えば、2以上のXMLスキーマに出現する特定のデータモデル又は要素及びその属性(これらの定義を含む)とすることができる。データモデルの要素及び/又はその属性が同一なので、これらのデータモデルの要素及び/又はその属性の単一のリストのみが存在するように、少なくとも1つをファイルから削除する又は取り除くことができる。従って、結果として生じるファイルは、表面上、XMLスキーマと同様であるように見えるが、ほとんどの場合、XMLスキーマではないと理解される。
【0040】
ステップ420において、正規化されソートされ不要なものが取り除かれたデータモデルから、正規化されたスキーマ比較ファイルを生成することができる。ステップ422において、正規化されたスキーマXMLファイルを保存すること、及び/又は使用に向けて出力することができる。このファイルは、例えばユーザコンピュータ装置210a又は管理者コンピュータ装置210c(
図2)などの何らかの受信者に向けて出力することができる。別の例では、このファイルは、データ記憶構成要素320(
図2)などのリポジトリに向けて出力することができる。このファイルは、XMLスキーマに準拠しXMLインスタンス文書において許可される構造を、異なるXMLスキーマに準拠しXMLインスタンスファイルにおいて許可される構造と比較するために使用することができる。いくつかの実施形態では、この比較は、例えば1又は2以上のソフトウェアモジュールによって具体化されたツールなどの自動差分ツールによって完了することができる。この自動差分ツールは、一般的に、XML文書、テキスト文書、及び/又は同様のものなどの複数の対象間の差分を特定するのに用いることができる何らかのソフトウェア検査ツールとすることができる。ファイルは、自動差分ツールが、このファイルを読み取ることができることが保証されるように、好適な形式で出力することができる。一般的に、自動差分ツールによって読み取れる特定の形式を認識する要がある。ファイルの使用は、本開示によって制限されるものではなく、このような比較が本明細書において具体的に開示されるか否かにかかわらず、何らかの比較目的で用いることができることを理解されたい。
【0041】
いくつかの実施形態では、
図4に関して説明したステップは、複数のXMLスキーマの各々に対して完了することができる。例えば、
図4に関して説明したステップは、データ記憶構成要素320(
図3)に含まれているXMLスキーマの各々に対して完了することができる。従って、ステップ424において、別のXMLスキーマを処理することができるか否かに関しての判定を行うことができる。そのような場合には、処理は、ステップ402において繰り返すことができる。そうでない場合には、処理は終了することができる。
【0042】
ここで、本明細書で説明する実施形態は、XMLスキーマ、特に、関連XMLスキーマに準拠したXML文書の結果として生じる許容可能な構造を比較するのに使用されるファイルを生成してこのファイルを提供することを理解されたい。自動差分ツール及び/又はXMLスキーマを迅速に比較してXMLスキーマ間の差分を特定するための同様のものが、このようなファイルを使用することができ、それによって、手動比較に関連する時間が節約される。さらに、文書は、使用されるXMLスキーマのタイプ、XMLスキーマを記述する言語、及びXMLスキーマ自体の構造に関係なく、比較のために用いることができる。
【0043】
本明細書では、特定の実施形態を図示し説明したが、特許請求される主題の趣旨及び範囲から逸脱することなく、他の様々な変更及び修正を行うことができると理解されたい。さらに、本明細書では、特許請求される主題の様々な態様を説明したが、このような態様を組み合わせて利用する必要はない。従って、添付の特許請求の範囲は、特許請求される主題の範囲内に含まれる全てのこのような変更及び修正も対象として含むことが意図されている。