zoukankan      html  css  js  c++  java
  • XML验证框架在项目中的应用

    接口中使用了XML参数, 如果用程序来验证XML会非常的复杂。如果用xml框架来验证,那就很简单了

    1.可以通过.net2005程序来创建xml的框架,先中一个xml文件,在菜单栏里可以看到XML->生成框架。

    2.验证

    /// <summary>
            /// 验证外部系统发送来的数据格式是否符合要求
            /// </summary>
            /// <param name="OperationsXml">被验证的xml串</param>
            /// <param name="schemaXml">框架文件路径</param>
            /// <param name="returnMsg">错误信息</param>
            /// <returns>bool</returns>
            public bool ValidateFile(string OperationsXml, string schemaXml, ref string returnMsg)
            {

                StringReader opStrReader = new StringReader(OperationsXml);
                //StringReader schStrReader = new StringReader(schemaXml);

                XmlReader opXmlReader = XmlReader.Create(opStrReader);
                //XmlReader schXmlReader = XmlReader.Create(schStrReader);
                XmlReader schXmlReader = XmlReader.Create(schemaXml);

                XmlReaderSettings settings = new XmlReaderSettings();
                settings.Schemas.Add(null, schXmlReader);
                settings.ValidationType = ValidationType.Schema;

                settings.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(ValidationEventHandler);

                sb = new StringBuilder();
                XmlReader reader = XmlReader.Create(opXmlReader, settings);
                try
                {
                    while (reader.Read())
                    {
                       
                    }
                }
                catch (XmlException ex)
                {
                    sb.AppendFormat("{0}<br />", ex.Message);
                }
                finally
                {
                    reader.Close();
                }
                returnMsg = sb.ToString();
                return returnMsg.Length == 0;
            }

    /// <summary>
            /// 格式验证回调了函数
            /// </summary>
            /// <param name="ValidationEventArgs"></param>
            /// <returns>void</returns>
            private void ValidationEventHandler(object sender, System.Xml.Schema.ValidationEventArgs e)
            {
                sb.AppendFormat("{0}<br />", e.Message);
            }
  • 相关阅读:
    EMES信息化制造系统的概念
    正则表达式校验日期、时间
    c#怎么string转化成ascii码
    C#实现将一个字符串进行翻转显示的6种方法,数组的 Reverse()反转方法
    把一个十六进制的字符串(包含0x或0X)转化成对应的数值 ASCII码
    为什么0-9转化成字符是+0x30,11转化成A是+0x37?
    oracle修改数据库字段长度
    表添加字段的SQL语句写法
    在数据表中添加一个字段的SQL语句怎么写-百度
    oracle创建表增加字段sql脚本,字段说明注释
  • 原文地址:https://www.cnblogs.com/sgciviolence/p/1763840.html
Copyright © 2011-2022 走看看