C#使用XSD文件验证XML文件

C#使用XSD文件验证XML文件,c#,xml,validation,xsd,C#,Xml,Validation,Xsd,-它由解析器和生成。关键是使用XSD文件(来自特定路径)验证XML文件(来自特定路径),并返回是否验证的标志。我看到的大多数代码都没有使用XSD文件进行验证。是否有可能使用XSD文件验证XML文件?一些代码: XmlDocument doc = new XmlDocument() ; doc.load(xmlFileName) ; doc.Schemas.Add("",xsdFileName); doc.Schemas.Compile(); TheSchemaErrors = new Lis

-它由解析器和生成。关键是使用XSD文件(来自特定路径)验证XML文件(来自特定路径),并返回是否验证的标志。我看到的大多数代码都没有使用XSD文件进行验证。是否有可能使用XSD文件验证XML文件?

一些代码:

XmlDocument doc = new XmlDocument() ;
doc.load(xmlFileName) ;
doc.Schemas.Add("",xsdFileName);
doc.Schemas.Compile();
TheSchemaErrors   = new List<string>() ;
TheSchemaWarnings = new List<string>() ;
doc.Validate(Xml_ValidationEventHandler);
if (TheSchemaErrors  .Count>0) { // display errors  }
if (TheSchemaWarnings.Count>0) { // display warnings  }
...
private List<string> TheSchemaErrors ;
private List<string> TheSchemaWarnings ;

private void Xml_ValidationEventHandler(object sender,ValidationEventArgs e)
{
  switch (e.Severity)
  {
    case XmlSeverityType.Error   : TheSchemaErrors  .Add(e.Message) ; break;
    case XmlSeverityType.Warning : TheSchemaWarnings.Add(e.Message) ; break;
  }
}
XmlDocument doc=新的XmlDocument();
doc.load(xmlFileName);
添加(“,xsdFileName);
Compile();
TheSchemaErrors=新列表();
TheSchemaWarnings=新列表();
doc.Validate(Xml_ValidationEventHandler);
如果(TheSchemaErrors.Count>0){//显示错误}
如果(TheSchemaWarnings.Count>0){//显示警告}
...
私人名单的模式;
私有列表模式;
私有void Xml_ValidationEventHandler(对象发送方,validationEventTargs e)
{
开关(如严重性)
{
案例XmlSeverityType.Error:TheSchemaErrors.Add(e.Message);break;
案例XmlSeverityType.Warning:TheSchemaWarnings.Add(e.Message);break;
}
}

好的,没有targetNamespace怎么办?这不是一个好答案,因为您只是在没有任何解释的情况下进行了代码转储。您至少可以对代码进行注释并提及相关类。谢谢!这就是我想要的hours@Reticulated你的话大体上是对的。但在本例中,代码是不言自明的:我提取了我的一个应用程序的一些代码,并将其重构为可读的。如果需要对本规范的任何部分进行澄清,论坛中的许多人都可以作出回应。