我在Visual Studio中使用了XSD,但结果与预期不符。xsd如何报告错误
我对一个元素有一个唯一的约束。当我故意通过引入重复来破坏Xml时,intellisense突出显示了错误,但是当它允许我编译和运行代码时,什么都不会发生,并且允许错误级联。
是可能的,我错过了什么或者做错了什么,或者这是否只要在XSD的错误验证认识?
public static T CreateClassFromXml<T>(string path, string root, XmlReaderSettings settings)
where T : class
{
path.ThrowNullOrEmpty("path");
settings.ThrowNull("settings");
File.Exists(path).ThrowFalse(string.Format("'{0}' could not be found", path));
var serializer = new XmlSerializer(typeof(T), new XmlRootAttribute() { ElementName = root });
using (var reader = XmlReader.Create(path, settings))
{
return (T)serializer.Deserialize(reader);
}
}
调用代码:
var xsd = context.Server.MapPath(Paths.Xml + "Wikis.xsd");
File.Exists(xsd).ThrowFalse(string.Format("'{0}' could not be found", xsd));
var settings = new XmlReaderSettings();
settings.Schemas.Add(null, xsd);
settings.ValidationType = ValidationType.Schema;
var xml = context.Server.MapPath(Paths.Xml + "Wikis.xml");
var metaList = XmlHelper.CreateClassFromXml<List<WikiMeta>>(xml, "AllMeta", settings);
我正在使用VS 2010 pro。没有太多的建设事件等经验,所以我不知道从哪里开始。我已经设法使用更新的代码得到一个结果(运行时错误)。 – dotnetnoob
您是否将这些文件作为资源嵌入并在运行时使用它们?还是将它们复制为输出? –