C# xsd验证XML格式是否正确

 1             /// <summary>  
 2             /// 通过xsd验证xml格式是否正确,正确返回空字符串,错误返回提示  
 3             /// </summary>  
 4             /// <param name="xmlFile">xml文件</param>  
 5             /// <param name="xsdFile">xsd文件</param>  
 6             /// <param name="namespaceUrl">命名空间,无则默认为null</param>  
 7             /// <returns></returns>  
 8             public string XmlValidationByXsd(string xmlFile, string xsdFile, string namespaceUrl = null)
 9             {
10                 StringBuilder sb = new StringBuilder();
11                 XmlReaderSettings settings = new XmlReaderSettings();
12                 settings.ValidationType = ValidationType.Schema;
13                 settings.Schemas.Add(namespaceUrl, xsdFile);
14                 settings.ValidationEventHandler += (x, y) =>
15                 {
16                     sb.AppendFormat("{0}", y.Message);
17                 };
18                 using (XmlReader reader = XmlReader.Create(xmlFile, settings))
19                 {
20                     try
21                     {
22                         while (reader.Read()) ;
23                     }
24                     catch (XmlException ex)
25                     {
26                         sb.AppendFormat("{0}", ex.Message);
27                     }
28                 }
29                 return sb.ToString();
30             } 

 

posted @ 2018-08-21 11:06  麦浪下静坐  阅读(408)  评论(0)    收藏  举报