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 }