我有一个 xml 架构。我想填充一个 DataSet 并使用此模式对其进行验证。
DataSet package = new DataSet();
StringReader schemaResourceReader = new StringReader(PackageValidationLibrary.Properties.Resources.myPackage);
package.ReadXmlSchema(schemaResourceReader);
package.Tables["Table1"].Rows.Add(packageDetail.date,packageDetail.code,packageDetail.amount,packageDetail.place,"0");
package.Tables["Table2"].Rows.Add("0","0");
foreach (Cek data in recordList){
package.Tables["Table3"].Rows.Add(data.Serial, data.Code, data.Branch, data.ValidityDate, "0");
}
使用上面的代码,我可以加载数据,但我无法验证它,尽管数据集导入了模式。
我尝试使用 package.GetXml() 方法获取 xml 字符串并再次重新加载 xml。然后我得到了例外。
如何验证此表?谢谢。
编辑 正如我从答案和评论中了解到的,在填充数据集时无法进行验证。然后我从数据集中读取 xml 并使用下面给出的配置加载它。
_schema = XmlSchema.Read(new StringReader(PackageValidationLibrary.Properties.Resources.TakasPaketi), new ValidationEventHandler(ValidationEventHandler));
XmlReaderSettings _settings = new XmlReaderSettings();
_settings.Schemas.Add(_schema);
_settings.ValidationType = ValidationType.Schema;
XmlReader vreader = XmlReader.Create(stream, _settings);