自分で作成した Xml スキーマがあり、Xsd.exe ツールを使用して対応する C# クラスを生成しました。私のアプリケーションは、Xml ドキュメントを生成された型に読み込みます (逆シリアル化します)。
デシリアライズに使用するコードは次のとおりです。
XmlSerializer serializer = new XmlSerializer(typeof(MyConfig));
TextReader textReader = new StreamReader(fileName);
MyConfig config = (MyConfig)serializer.Deserialize(textReader);
textReader.Close();
XmlSerializer は、Xml の解析に関して非常に寛容です。Xml はスキーマに関して無効である可能性がありますが、逆シリアル化することはできます。
私がやりたいことは、ファイルを逆シリアル化する前に Xml を検証することです。私はこれを行う方法をGoogleに伝えましたが、それは簡単なようです。
私が抱えている問題/懸念は、単一の .EXE ファイルを配信したいということですが、プログラムが Xml スキーマ ドキュメントに対してランタイム Xml 検証を行う場合、配信の一部として .xsd を含めて、これを確認する必要があります。 .xsd ファイルは常に実行可能ファイルと同じ (相対) ディレクトリにありますか?
おそらく、Xml スキーマ ドキュメントをコンパイル済みアプリケーションに埋め込んで、ディスクから検索/読み取る必要がないようにする方法はありますか?
ありがとう!