C# 使用xsd文件验证XML 格式是否正确_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C# 使用xsd文件验证XML 格式是否正确

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

 2014/7/16 17:56:59  GC2013  程序员俱乐部  我要评论(0)
  • 摘要:C#使用xsd文件验证XML格式是否正确核心示例代码:C#代码//创建xmlDocumentXmlDocumentdoc=newXmlDocument();//创建声明段如<?xmlversion="1.0"encoding="utf-8"?>doc.AppendChild(doc.CreateXmlDeclaration("1.0","utf-8",null));//创建一个根节点KYTResultsXmlElementresults=doc.CreateElement
  • 标签:C# 使用 文件 正确 XML

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

 

 

核心示例代码:

C#代码class="Apple-converted-space"> javascripts/syntaxhighlighter/clipboard_new.swf" type="application/x-shockwave-flash">Schema%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20XmlSchemaSet%20schemas%20%3D%20new%20XmlSchemaSet()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schemas.Add(%22%22%2C%20XmlReader.Create(path))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%A3%B0%E6%98%8E%E4%BA%8B%E4%BB%B6%E5%A4%84%E7%90%86%E6%96%B9%E6%B3%95%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ValidationEventHandler%20eventHandler%20%3D%20new%20ValidationEventHandler(delegate(object%20sender%2C%20ValidationEventArgs%20e)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20switch%20(e.Severity)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20XmlSeverityType.Error%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20error%20%2B%3D%20e.Message%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20XmlSeverityType.Warning%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20doc.Schemas%20%3D%20schemas%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E9%AA%8C%E8%AF%81xml%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20doc.Validate(eventHandler)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E6%A3%80%E6%9F%A5%E6%98%AF%E5%90%A6%E6%9C%89%E5%BC%82%E5%B8%B8%20%E5%A6%82%E6%9E%9C%E6%A0%BC%E5%BC%8F%E4%B8%8D%E6%AD%A3%E7%A1%AE%E5%B0%B1%E6%8A%9B%E5%87%BA%E6%9D%A5%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(!%22%22.Equals(error))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20Exception(error)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A" />ways" /> 收藏代码
  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.                     }  
发表评论
用户名: 匿名