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 文 ...
随机推荐
- NSISの堆栈操作
一 .堆栈 堆栈是 NSIS 维护的一堆数据,你可以根据需要往堆栈中存入任意大小的数据(as big as you like),所以你可以向堆栈中推入或读取数据,堆栈只有一个,堆栈遵守 LIFO (后 ...
- winform的常用公共控件和常用属性
我们在学位winform的控件和属性的时候要学会赋值取值还有改值 公共控件: 1,Button(按钮): Enabled :是否可用 Visible:是否可见 2,CheckBox(多选项) Chec ...
- [问题2014A07] 复旦高等代数 I(14级)每周一题(第九教学周)
[问题2014A07] 设 \(A\) 是有理数域 \(\mathbb{Q}\) 上的 4 阶方阵, \(\alpha_1,\alpha_2,\alpha_3,\alpha_4\) 是 \(\mat ...
- Flyweight
1 意图:运用共享技术有效地大量支持细粒度的对象 2 动机:flyweight是一个共享对象,可以在多个场景使用. 分为内部状态和外部状态,内部状态存储于flyweight中,包含了独立于flywei ...
- ORACLE分页查询SQL语法——最高效的分页
--1:无ORDER BY排序的写法.(效率最高)--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT ...
- 新建web工程Jdk怎么不是自己安装的, 是自带的
需要在eclipse中配置默认的jdk环境的,不要用它默认的那个,这个不能用的http://blog.csdn.net/clj198606061111/article/details/11881575 ...
- MyBatis中#,$的用法区别
#可以防止SQL注入 $用在一些特殊的SQL语句例如 order by ${...} , desc/asc PS:大部分用#,一些特殊情况用$
- c-free
- python中main()函数写法
顶顶大名的Guido van Rossum(Python之父)推荐的main写法: #!/usr/bin/python import sys import getopt class Usage(Exc ...
- oracle procedure
http://www.cnblogs.com/wuhenke/archive/2010/03/20/1690535.html