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);
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步