2
xsd.exe(VS 2010コマンドプロンプト)、 を使用してC#クラスフォームschamを生成しましたが、XMLファイルのクラスをシリアライズするときに、outファイルにスキーマのエントリがありません。xmlスキーマから生成されたCSクラス
シリアル化されたXML:
<?xml version="1.0" encoding="utf-16"?>
<Dokumenty xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" idSystemuLokalnego="ASD" dataUtworzenia="0001-01-01T00:00:00">
<Wniosek>
<Beneficjent />
</Wniosek>
私は、コードを使用してスキーマを検証しよう:
//Serilalize xml to string
StringWriter sw = new StringWriter();
XmlTextWriter xw = new XmlTextWriter(sw);
x.Serialize(xw, doc);
String xml = sw.ToString();
StringReader sr = new StringReader(xml);
XmlTextReader xtr = new XmlTextReader(sr);
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("", "schemas\\SimWniosekApl_v2.0.xsd");
settings.ValidationType = ValidationType.Schema;
//XmlReader reader = XmlReader.Create(xtr);
XmlDocument document = new XmlDocument();
document.Load(xtr);
ValidationEventHandler eventHandler = new ValidationEventHandler(ValidationHandler);
// the following call to Validate succeeds.
document.Validate(eventHandler);
それは例外で失敗: 追加情報:文書のXmlSchemaSetをnullまたはスキーマがありません。 Validateを呼び出す前にスキーマ情報を提供します。
どうすればいいですか?