验证xml是否符合指定xsd-创新互联

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

创新互联公司是一家专业提供凯里企业网站建设,专注与网站制作、做网站html5、小程序制作等业务。10年已为凯里众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

本文给出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;
        }
    }

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


分享题目:验证xml是否符合指定xsd-创新互联
链接地址:http://cdiso.cn/article/ccghid.html

其他资讯