0

自分で作成した 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 スキーマ ドキュメントをコンパイル済みアプリケーションに埋め込んで、ディスクから検索/読み取る必要がないようにする方法はありますか?

ありがとう!

4

0 に答える 0