C#中用schema验证xml的合法性
class ValidateXML
{
public string ErrString = string.Empty;
public void ValidationEventCallBack(Object sender, ValidationEventArgs e)
{
if (e.Severity == XmlSeverityType.Warning)//区分是警告还是错误
{
//Console.WriteLine("验证成功!警告:" + e.Message);
ErrString += "验证成功!警告:" + e.Message;
}
else
{
// Console.WriteLine("验证失败");
ErrString += "Err:" + e.Message;
}
} public void CheckXmlValidate(string strRequestXML)
{
//string ErrString = string.Empty;
StringReader sRead = null;
XmlReader xmlRead = null;
XmlSchemaSet schemaSet; try
{
schemaSet = new XmlSchemaSet(); sRead = new StringReader(strRequestXML); schemaSet.Add(null, @"MySchema.xsd"); XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationEventHandler += new ValidationEventHandler(this.ValidationEventCallBack);
settings.ValidationType = ValidationType.Schema;
settings.Schemas = schemaSet; xmlRead = XmlReader.Create(sRead, settings);
while (xmlRead.Read())
{ } if (ErrString.ToString() == String.Empty)
{ Console.WriteLine("验证成功!");
}
else
{
Console.WriteLine("验证失败!原因可能是:" + ErrString);
}
}
catch (XmlException exec)
{
Console.WriteLine(exec.Message);
}
finally
{ if (xmlRead != null)
{ xmlRead.Close();
}
}
}
} public static void Main(string[] args)
{
ValidateXML vx = new ValidateXML();
//StreamReader sr = new StreamReader(new FileStream(@"test.xml", FileMode.Open));
vx.CheckXmlValidate(File.ReadAllText(@"test.xml")); PressQtoQuit();
} public static void PressQtoQuit()
{
Console.WriteLine("Hit Q to exit");
ConsoleKey key;
do
{
key = Console.ReadKey().Key;
} while (key != ConsoleKey.Q);
}
C#中用schema验证xml的合法性的更多相关文章
- dskinlite(uieasy mfc界面库)使用记录1: schema验证xml
		市场上的MFC第三方库很多,最终选定dskinlite企业版,成熟度比较高,当然价格也略贵. 在2017年仍然使用MFC是有些另类,但特定场景很适用,也适合不愿转型的老程序员. 目前处于学习阶段,欢迎 ... 
- DELPHI中调用XSD去验证XML的合法性
		procedure TFrmPrintReport.Button3Click(Sender: TObject);var SchemaDoc, XmlDoc: IXMLDOMDocument2; S ... 
- Delphi 7验证XML合法性(利用DTD、XSD)
		拥有正确语法的XML被称为“形式良好”的XML.通过DTD验证的XML是“合法”的XML.DTD(文档类型定义)的作用是定义XML 文档的合法构建模块.它使用一系列的合法元素来定义文档结构.XML S ... 
- XML Schema验证
		XML Schema验证 一.什么事Schema(XSD) XML Schema是微软定义的一套用来验证XML技术.是一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模 ... 
- XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
		XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD),作用是定义 XML 文档的合法构建模块,类似 DTD,但更加强大. 作用有: ①定义 ... 
- [讨论] Window XP 安装msxml6后,load xml时提示schema验证失败
		现象:在windows XP x64下,使用用户安装的msxml6库加载xml文件时失败. 进一步说明: 该xml文档使用了W3C的名称空间 xmlns:xsi= "http://www.w ... 
- 28.XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
		转自https://www.cnblogs.com/gdjlc/archive/2013/09/08/3308229.html XML Schema 语言也称作 XML Schema 定义(XML S ... 
- 使用架构(XSD)验证XML文件
		假使说XML是一个数据库,那么XSD就是这个数据库的结构.由此可见,XSD是如此重要,如果没有它,我们如何声明以及验证我们需要的XML数据文件的格式和合法性呢?那是不可能完成的任务,如果你将XML数据 ... 
- cvc-elt.1: Cannot find the declaration of element---与spring 无关的schema 验证失败
		晚上查了好久,都是spring 出这种问题的解决方式,终于查到为什么了. http://wakan.blog.51cto.com/59583/7218/ 转自这个人.. 多谢啦! 为了验证 XML 文 ... 
随机推荐
- [问题2014A13] 复旦高等代数 I(14级)每周一题(第十五教学周)
			[问题2014A13] 设 \(V\) 是数域 \(K\) 上的 \(n\) 维线性空间, \(\varphi\) 是 \(V\) 上的幂零线性变换且满足 \(\mathrm{r}(\varphi) ... 
- 矩阵的QR分解
			#include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> # ... 
- 使用IE11抓包,防止在网页跳转时抓包数据被清除的方法
			引:最近在研究使用python实现模拟登陆各大网站,在使用IE11进行抓包分析网站登陆的逻辑结构的时候,发现每次在抓包的时候,当网页跳转的时候,抓包数据会被清除,让我很是郁闷,最终在查阅相关资料以及自 ... 
- HTML基础(2)
			常见标签 1.img标签 <img src="图片地址" alt="图片名"/> 图片(单标签) alt属性 是图片名字,是给百度搜索引擎抓取使用 ... 
- 原!!jar包 --可执行exe文件--安装包
			这几天由于部门统计名单,都是一边报,一边统计,感觉麻烦,写了个小工具,做成安装包.其他不多说,网上都有,我就自己按照网上操作,碰到了一些问题,对这些问题说下. ----------废话少说------ ... 
- 改善过多的if else
			刚看到一个提问帖: <如果程序中出现多层嵌套的 if...else...语句,如何重构可使程序逻辑变得更为清晰易读?>,因回答篇幅比较大,单独开个帖子答一下. 个人喜好代码风格不一样,下面 ... 
- features block
			很轻松就能把一个新建的block导出到一个module包里. 
- Caché数据库学习笔记(2)
			目录: 创建新类(表)(class文件)与创建routine(.mac .inc) 在类里面添加函数(classmethod) Terminal的使用 ======================= ... 
- jquery获取(设置)节点的属性与属性值
			1. attr(属性名) //获取属性的值(取得第一个匹配元素的属性值.通过这个方法可以方便地从第一个匹配元素中获取一个属性的值.如果元素没有相应属性,则返回 undefined ) 2 ... 
- FIS--关于下载php后的配置(启动fis的调试服务器(注意添加 --no-rewrite 参数),如果报错 没有php-cgi环境,请 安装 它,并把php-cgi命令加到系统的环境变量)
			“启动fis的调试服务器(注意添加 --no-rewrite 参数),如果报错 没有php-cgi环境,请 安装 它,并把php-cgi命令加到系统的环境变量” 对官网这句话的解释: 下载php-5. ... 
