惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
Vercel News
Vercel News
T
Tailwind CSS Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
B
Blog RSS Feed
U
Unit 42
Y
Y Combinator Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
The Register - Security
The Register - Security
量子位
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy & Cybersecurity Law Blog
Scott Helme
Scott Helme
GbyAI
GbyAI
Know Your Adversary
Know Your Adversary
月光博客
月光博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Stack Overflow Blog
Stack Overflow Blog
S
Secure Thoughts
L
Lohrmann on Cybersecurity
腾讯CDC
P
Palo Alto Networks Blog
MongoDB | Blog
MongoDB | Blog
T
Tor Project blog
博客园_首页
W
WeLiveSecurity
G
Google Developers Blog
K
Kaspersky official blog
爱范儿
爱范儿
V
Visual Studio Blog
T
Threat Research - Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
F
Fortinet All Blogs
T
The Exploit Database - CXSecurity.com
N
News and Events Feed by Topic
Last Week in AI
Last Week in AI
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans

博客园 - Danny Chen

python asyncio 获取协程返回值和使用callback c#等待所有子线程执行完毕方法 Python virtualenv 查看当前正在运行的python进程 Mac 删除/卸载 自己安装的python python读取txt文件最后一行(文件大+文件小) pycharm 注册码/License server 2017年最新 Linux cat命令详解 在Mac平台上安装配置ELK时的一些总结 Mac上搭建ELK C#中XML与对象之间的序列化、反序列化 C#位运算 SQL Server 权限管理 如何用C#动态编译、执行代码 [C#]手把手教你打造Socket的TCP通讯连接(一) C#动态调用WCF接口,两种方式任你选。 动态调用WCF服务 矩阵的坐标变换(转) 【.NET线程--进阶(一)】--线程方法详解
C#中用schema验证xml的合法性
Danny Chen · 2017-09-19 · via 博客园 - Danny Chen
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);
        }

Reference from : https://msdn.microsoft.com/en-us/library/as3tta56(v=vs.80).aspx

Reference from : http://www.cnblogs.com/joean/p/4982875.html