私は簡単なペイントプログラムを作っています。そのプログラムでは、ユーザーは自分の仕事をXMLファイルに保存できます。これらのXMLファイルには2つの異なるスキーマがあります。異なるXMLファイルを読む
ロードするとき、私のプログラムは両方のスキーマを理解してほしいです。つまり、プログラムが最初にファイルが使用するスキーマを知らなくてもファイルを読み取るためです。
この問題はどのように処理する必要がありますか?
私は簡単なペイントプログラムを作っています。そのプログラムでは、ユーザーは自分の仕事をXMLファイルに保存できます。これらのXMLファイルには2つの異なるスキーマがあります。異なるXMLファイルを読む
ロードするとき、私のプログラムは両方のスキーマを理解してほしいです。つまり、プログラムが最初にファイルが使用するスキーマを知らなくてもファイルを読み取るためです。
この問題はどのように処理する必要がありますか?
私は単純に1つのスキーマを強制的に読み取ろうとしますが、検証に失敗した場合はもう一方のスキーマにフォールバックします。
私は、XMLファイルを読むために使用しているXMLシステムに依存していると思います。
XMLパーサーに十分な柔軟性がある場合は、どのスキーマが使用されたかを示す助けになる構文解析されたツリーの相違点を調べます。 (たとえば、ルート要素の名前が違っていたら、それを使用することができます)
パーサーが柔軟でない場合、最初のものが失敗した場合はもう一方です。
ファイルの先頭にDOCTYPE
がある場合、これは簡単です。したがって、XMLファイルにはDOCTYPE
が必要です。