C# 使用xsd文件验证XML 格式是否正确

 

 

核心示例代码:

C#代码  收藏代码
  1.  //创建xmlDocument  
  2.             XmlDocument doc = new XmlDocument();  
  3.   
  4. //创建声明段 如<?xml version="1.0" encoding="utf-8" ?>   
  5.                 doc.AppendChild(doc.CreateXmlDeclaration("1.0", "utf-8", null));  
  6.                 //创建一个根节点 KYTResults  
  7.                 XmlElement results = doc.CreateElement("KYTResults");  
  8.   
  9.                 //创建 ResultsStatus  
  10.                 XmlNode resultsStatus = doc.CreateElement("ResultsStatus");  
  11.                 //创建Level  
  12.                 XmlElement element = doc.CreateElement("Level");  
  13.                 element.InnerText = status ? "0" : "1";  
  14.                 resultsStatus.AppendChild(element);  
  15.                 //创建Description  
  16.                 element = doc.CreateElement("Description");  
  17.                 element.InnerText = msg;  
  18.                 resultsStatus.AppendChild(element);  
  19.                 //创建PassKey 如果用户登录失败 将加载空字符  
  20.                 element = doc.CreateElement("PassKey");  
  21.                 element.InnerText = key;  
  22.                 resultsStatus.AppendChild(element);  
  23.                 results.AppendChild(resultsStatus);  
  24.                 //END 创建 ResultsStatus   
  25.   
  26.                 //创建 DataList  数据集合  
  27.                 if (status)  
  28.                 {  
  29.                     results.AppendChild(dataList);  
  30.                 }  
  31.                 //END 创建一个根节点 KYTResults  
  32.                 doc.AppendChild(results);  
  33.   
  34.   
  35.                 string path = Server.MapPath("/ws/xsd/ReceiveReturn.xsd");  
  36.   
  37. //验证xml格式是否正确 通过xsd验证  
  38.                     string error = "";  
  39.                     //声明XmlSchema  
  40.                     XmlSchemaSet schemas = new XmlSchemaSet();  
  41.                     schemas.Add("", XmlReader.Create(path));  
  42.                     //声明事件处理方法  
  43.                     ValidationEventHandler eventHandler = new ValidationEventHandler(delegate(object sender, ValidationEventArgs e) {  
  44.                         switch (e.Severity)  
  45.                         {  
  46.                             case XmlSeverityType.Error:  
  47.                                 error += e.Message;  
  48.                                 break;  
  49.                             case XmlSeverityType.Warning:  
  50.                                 break;  
  51.                         }  
  52.                     });  
  53.                     doc.Schemas = schemas;  
  54.                     //验证xml  
  55.                     doc.Validate(eventHandler);  
  56.                     //检查是否有异常 如果格式不正确就抛出来  
  57.                     if (!"".Equals(error))  
  58.                     {  
  59.                         throw new Exception(error);  
  60.                     }  
posted on 2014-07-20 22:57  GC2013  阅读(1440)  评论(1编辑  收藏  举报