验证xml是否符合指定xsd

xml是常用的一种数据文件格式,它的定义文件为Xml schema definition(XSD),那么怎么验证一个xml是否符合它的schema定义呢?

成都创新互联是专业的富源网站建设公司,富源接单;提供成都网站建设、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行富源网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

本文给出C#的代码实现。

样例XML

存储在xml.xml文件中



  10
  2018-01-01
  111
  ---10--
  english
  ./news.html

样例xsd

存储在xsd.xsd文件中




  
    
      
        
          
            
              
              
              
            
          
        
        
          
            
              
            
          
        
        
          
            
              
            
          
        
        
        
        
      
    
  

完整代码

下面代码在Console Project中实现

class Program
    {
        static void Main(string[] args)
        {
            string xmlFile = "xml.xml";
            string xsdFile = "xsd.xsd";

            var exceptionMessage = string.Empty;
            VerifyXML(xsdFile, xmlFile, ref exceptionMessage);

            Console.WriteLine(exceptionMessage);
            Console.ReadKey();
        }

        private static void VerifyXML(string xsdFile, string xmlFile, ref string exceptionMessage)
        {
            XmlDocument doc = LoadXML(xmlFile);
            doc.Schemas = LoadXMLSchmeaFromXSDFile(xsdFile);

            string errorMessage = string.Empty;
            ValidationEventHandler eventHandler = new ValidationEventHandler(delegate (object sender, ValidationEventArgs e)
            {
                switch (e.Severity)
                {
                    case XmlSeverityType.Error:
                        errorMessage += e.Message;
                        break;
                    case XmlSeverityType.Warning:
                        break;
                }
            });

            doc.Validate(eventHandler);

            exceptionMessage = errorMessage;
        }

        private static XmlDocument LoadXML(string xmlFile)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(xmlFile);
            return doc;
        }

        private static XmlSchemaSet LoadXMLSchmeaFromXSDFile(string path)
        { 
            var schemas = new XmlSchemaSet();
            schemas.Add("", XmlReader.Create(path));
            return schemas;
        }
    }

文章名称:验证xml是否符合指定xsd
本文网址:http://azwzsj.com/article/gdcjop.html