C#使用xsd文件验证XML格式是否正确的实现方法

 更新时间:2017年01月17日 11:26:46   作者:PointNet  
这篇文章主要介绍了C#使用xsd文件验证XML格式是否正确的实现方法,结合实例形式分析了C#针对xml文件的创建、验证相关操作技巧,需要的朋友可以参考下

本文实例讲述了C#使用xsd文件验证XML格式是否正确的实现方法。分享给大家供大家参考,具体如下:

//创建xmlDocument
XmlDocument doc = new XmlDocument();
//创建声明段 如<?xml version="1.0" encoding="utf-8" ?>
doc.AppendChild(doc.CreateXmlDeclaration("1.0", "utf-8", null));
//创建一个根节点 KYTResults
XmlElement results = doc.CreateElement("KYTResults");
//创建 ResultsStatus
XmlNode resultsStatus = doc.CreateElement("ResultsStatus");
//创建Level
XmlElement element = doc.CreateElement("Level");
element.InnerText = status ? "0" : "1";
resultsStatus.AppendChild(element);
//创建Description
element = doc.CreateElement("Description");
element.InnerText = msg;
resultsStatus.AppendChild(element);
//创建PassKey 如果用户登录失败 将加载空字符
element = doc.CreateElement("PassKey");
element.InnerText = key;
resultsStatus.AppendChild(element);
results.AppendChild(resultsStatus);
//END 创建 ResultsStatus
//创建 DataList 数据集合
if (status)
{
  results.AppendChild(dataList);
}
//END 创建一个根节点 KYTResults
doc.AppendChild(results);
string path = Server.MapPath("/ws/xsd/ReceiveReturn.xsd");
//验证xml格式是否正确 通过xsd验证
string error = "";
//声明XmlSchema
XmlSchemaSet schemas = new XmlSchemaSet();
schemas.Add("", XmlReader.Create(path));
//声明事件处理方法
ValidationEventHandler eventHandler = new ValidationEventHandler(delegate(object sender, ValidationEventArgs e) {
  switch (e.Severity)
  {
   case XmlSeverityType.Error:
    error += e.Message;
    break;
   case XmlSeverityType.Warning:
    break;
  }
});
doc.Schemas = schemas;
//验证xml
doc.Validate(eventHandler);
//检查是否有异常 如果格式不正确就抛出来
if (!"".Equals(error))
{
  throw new Exception(error);
}

PS:这里再为大家提供几款比较实用的xml相关在线工具供大家使用:

在线XML格式化/压缩工具:
http://tools.jb51.net/code/xmlformat

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

XML在线压缩/格式化工具:
http://tools.jb51.net/code/xml_format_compress

XML代码在线格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《C#程序设计之线程使用技巧总结》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程

希望本文所述对大家C#程序设计有所帮助。

相关文章

  • 解析C#中#region与#if的作用

    解析C#中#region与#if的作用

    以下是对C#中#region与#if的作用进行了详细的介绍,需要的朋友可以过来参考下
    2013-09-09
  • 浅谈C#设计模式之开放封闭原则

    浅谈C#设计模式之开放封闭原则

    这篇文章主要介绍了浅谈C#设计模式之开放封闭原则,需要的朋友可以参考下
    2014-12-12
  • Unity实现手机摇一摇震动

    Unity实现手机摇一摇震动

    这篇文章主要为大家详细介绍了untiy实现手机摇一摇震动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • c# 以二进制读取文本文件

    c# 以二进制读取文本文件

    在当前目录创建一个文件myfile.txt,对该文件具有读写权限
    2009-07-07
  • 获取字符串中的汉字拼音首字母

    获取字符串中的汉字拼音首字母

    获取字符串中的汉字拼音首字母...
    2007-03-03
  • 浅析C# 状态机Stateless

    浅析C# 状态机Stateless

    这篇文章主要介绍了C# 状态机Stateless的的相关资料,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • Unity实现物体运动轨迹的绘制

    Unity实现物体运动轨迹的绘制

    这篇文章主要为大家详细介绍了Unity实现物体运动轨迹的绘制,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • c#获取字符串宽度的示例代码(字节数方法)

    c#获取字符串宽度的示例代码(字节数方法)

    本篇文章主要介绍了c#获取字符串宽度的示例代码(字节数方法)。需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • c# Bitmap转bitmapImage高效方法

    c# Bitmap转bitmapImage高效方法

    本文主要介绍了c# Bitmap转bitmapImage高效方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • c#正反序列化XML文件示例(xml序列化)

    c#正反序列化XML文件示例(xml序列化)

    这篇文章主要介绍了c#正反序列化XML文件示例,可以将对象序列化为XML文本或者文件,或者将XML文件或文本反序列化为对象,要求进行序列化的对象不能出现序列化异常,支持类的嵌套,要求类的属性为public
    2014-03-03

最新评论