ある XSD スキーマが別の XSD スキーマのサブセットであることを確認するにはどうすればよいですか?
「ブループリント」XSD スキーマのコレクション (サブコンポーネントで使用可能なすべての入力または出力を定義する) を使用して、System-of-Systems アプリケーションを作成しています。多くのサブコンポーネントが実装されており、これらのサブコンポーネントは XML ファイルを使用して相互にデータを渡します。各サブコンポーネントは、関連するブループリント XSD スキーマのサブセットを作成します (可能な入力または出力のどれを実装するために選択したかを示すため)。サブセット XSD スキーマに対して検証する XML データファイルは、ブループリント XSD スキーマに対しても検証する必要がありますが、その逆は当てはまりません (サブセット XSD スキーマには、ブループリント XSD スキーマからのすべての「オプション」または「選択」XML 要素が含まれていない可能性があるため、また、既存の XML タグで許可されているデータ値をさらに制限することもできます)。
テスト中に、各サブコンポーネントのサブセット XSD スキーマが、関連付けられたブループリント XSD スキーマのサブセットであることを確認する予定ですが、この検証を実行する自動化された手段はありません。これらの XSD スキーマは、このテストを手作業で行うにはかなり大きくて醜いです。Java が XSD スキーマに対して XML ファイルの検証を実行する方法と同様に、一種の「XSD ファイル 1 に対して XSD ファイル 2 を検証する」コマンドがあると便利です。各サブコンポーネントのサブセット XSD スキーマが、ブループリント XSD スキーマに違反するような XML 入力/出力の組み合わせを許可しないことを確認したいと思います。このスキーマ間機能により、
役立つ情報: このアプリケーションは、OSGi バンドルとして実装され、Maven 2.2.1 を使用してコンパイル/実行される Java 6 アプリケーションのコレクションです。特定の開発 IDE を使用するための要件はありません。システムは Microsoft Windows XP 環境でテストされていますが、このシステムを他の環境でも実行する計画があります (したがって、クロスプラットフォーム ソリューションが推奨されます)。