文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>使用XSD验证XML

使用XSD验证XML

时间:2010-10-15  来源:口渴的火麒麟

        /// <summary>
        /// 根据xsd架构文件验证xml的正确性
        /// </summary>
        /// <param name="xml"></param>
        public void CheckXmlValidate(string xml)
        {
            ErrString = string.Empty;
            StringReader sRead = null;
            XmlReader xmlRead = null;
            XmlSchemaSet schemaSet;

            try
            {
                schemaSet = new XmlSchemaSet();

                sRead = new StringReader(xml);

                string codeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase.Substring(8);
                string path = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(codeBase).Replace("\\bin", ""), "xsd\\PaymentDetails.xsd");
                schemaSet.Add(null, path);

                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)
                {

                    //Log.WriteLog("验证成功!");
                }
                else
                {
                    //Log.WriteLog("验证失败!原因可能是:" + ErrString);

                }
            }
            catch (XmlException exec)
            {
                //Log.WriteLog(exec.Message);
            }
            finally
            {

                if (xmlRead != null)
                {

                    xmlRead.Close();
                }
            }
        }

        #region private methods
        private void ValidationEventCallBack(Object sender, ValidationEventArgs e)
        {
            if (e.Severity == XmlSeverityType.Warning)//区分是警告还是错误
            {
                //Log.WriteLog("验证成功!警告:" + e.Message);
            }
            else
            {
               
                ErrString = "Err:" + e.Message;
                throw new Exception(ErrString);
            }
        }
        #endregion
    }

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载