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的合法性的更多相关文章

  1. dskinlite(uieasy mfc界面库)使用记录1: schema验证xml

    市场上的MFC第三方库很多,最终选定dskinlite企业版,成熟度比较高,当然价格也略贵. 在2017年仍然使用MFC是有些另类,但特定场景很适用,也适合不愿转型的老程序员. 目前处于学习阶段,欢迎 ...

  2. DELPHI中调用XSD去验证XML的合法性

    procedure TFrmPrintReport.Button3Click(Sender: TObject);var  SchemaDoc, XmlDoc: IXMLDOMDocument2;  S ...

  3. Delphi 7验证XML合法性(利用DTD、XSD)

    拥有正确语法的XML被称为“形式良好”的XML.通过DTD验证的XML是“合法”的XML.DTD(文档类型定义)的作用是定义XML 文档的合法构建模块.它使用一系列的合法元素来定义文档结构.XML S ...

  4. XML Schema验证

    XML Schema验证 一.什么事Schema(XSD) XML Schema是微软定义的一套用来验证XML技术.是一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模 ...

  5. XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式

    XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD),作用是定义 XML 文档的合法构建模块,类似 DTD,但更加强大. 作用有: ①定义 ...

  6. [讨论] Window XP 安装msxml6后,load xml时提示schema验证失败

    现象:在windows XP x64下,使用用户安装的msxml6库加载xml文件时失败. 进一步说明: 该xml文档使用了W3C的名称空间 xmlns:xsi= "http://www.w ...

  7. 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 ...

  8. 使用架构(XSD)验证XML文件

    假使说XML是一个数据库,那么XSD就是这个数据库的结构.由此可见,XSD是如此重要,如果没有它,我们如何声明以及验证我们需要的XML数据文件的格式和合法性呢?那是不可能完成的任务,如果你将XML数据 ...

  9. cvc-elt.1: Cannot find the declaration of element---与spring 无关的schema 验证失败

    晚上查了好久,都是spring 出这种问题的解决方式,终于查到为什么了. http://wakan.blog.51cto.com/59583/7218/ 转自这个人.. 多谢啦! 为了验证 XML 文 ...

随机推荐

  1. [问题2014A13] 复旦高等代数 I(14级)每周一题(第十五教学周)

    [问题2014A13]  设 \(V\) 是数域 \(K\) 上的 \(n\) 维线性空间, \(\varphi\) 是 \(V\) 上的幂零线性变换且满足 \(\mathrm{r}(\varphi) ...

  2. 矩阵的QR分解

    #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> # ...

  3. 使用IE11抓包,防止在网页跳转时抓包数据被清除的方法

    引:最近在研究使用python实现模拟登陆各大网站,在使用IE11进行抓包分析网站登陆的逻辑结构的时候,发现每次在抓包的时候,当网页跳转的时候,抓包数据会被清除,让我很是郁闷,最终在查阅相关资料以及自 ...

  4. HTML基础(2)

    常见标签 1.img标签 <img src="图片地址" alt="图片名"/>  图片(单标签) alt属性 是图片名字,是给百度搜索引擎抓取使用 ...

  5. 原!!jar包 --可执行exe文件--安装包

    这几天由于部门统计名单,都是一边报,一边统计,感觉麻烦,写了个小工具,做成安装包.其他不多说,网上都有,我就自己按照网上操作,碰到了一些问题,对这些问题说下. ----------废话少说------ ...

  6. 改善过多的if else

    刚看到一个提问帖: <如果程序中出现多层嵌套的 if...else...语句,如何重构可使程序逻辑变得更为清晰易读?>,因回答篇幅比较大,单独开个帖子答一下. 个人喜好代码风格不一样,下面 ...

  7. features block

    很轻松就能把一个新建的block导出到一个module包里.

  8. Caché数据库学习笔记(2)

    目录: 创建新类(表)(class文件)与创建routine(.mac  .inc) 在类里面添加函数(classmethod) Terminal的使用 ======================= ...

  9. jquery获取(设置)节点的属性与属性值

    1. attr(属性名)        //获取属性的值(取得第一个匹配元素的属性值.通过这个方法可以方便地从第一个匹配元素中获取一个属性的值.如果元素没有相应属性,则返回 undefined ) 2 ...

  10. FIS--关于下载php后的配置(启动fis的调试服务器(注意添加 --no-rewrite 参数),如果报错 没有php-cgi环境,请 安装 它,并把php-cgi命令加到系统的环境变量)

    “启动fis的调试服务器(注意添加 --no-rewrite 参数),如果报错 没有php-cgi环境,请 安装 它,并把php-cgi命令加到系统的环境变量” 对官网这句话的解释: 下载php-5. ...