winform总结4> 工欲善其事,必先利其器之xml校验
@echo 根据xml自动生成xml @echo 当前路径包含空格会导致执行失败 ::pause @echo off
set path=%~dp0 for /r %path% %%i in (*.xml) do "xsd.exe" %%i /o:"%path% ::这里的xsd.exe换成你所在电脑上vs中该工具的路径,不想找,可以直接去下边的网盘地址下载. @echo 写入成功
::@echo 工具通过vs自带sdks 通过xml格式生成对应的校验xsd文件
::@echo 手动生成请转到 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
::@echo 将xml文件放到根目录,然后执行 xsd.exe 文件名的方式来生成,生成的文件为同名且后缀为xsd的文件 ::pause
xml校验需要一个模版文件xsd做为格式校验。如上代码就是生成xsd,需要一个xsd文件【只要安装了vs,在vs的工具中可以找到,没有也没有关系可以从这里下载工具】
百度网盘: http://pan.baidu.com/s/1qXN2LhM 密码: x9i9
解压后将需要校验的xml文件放到同一个目录中,然后执行bat就可以得到一个xsd文件用它作为校验模版进行校验就可以了,可以修改这个xsd文件的校验方式以执行更为严格的校验
校验方式:
using System.Xml.Schema;
try
{
FileStream sm = "待校验的文件";
XmlDocument doc = new XmlDocument();
doc.Load(sm);//data.xml
//验证xml格式是否正确 通过xsd验证
string error = "";
//声明XmlSchema
XmlSchemaSet schemas = new XmlSchemaSet();
schemas.Add("", XmlReader.Create(AppDomain.CurrentDomain.BaseDirectory + "Model.xsd"));
//声明事件处理方法
ValidationEventHandler eventHandler = new ValidationEventHandler(delegate(object sender, ValidationEventArgs e)
{
switch (e.Severity)
{
case XmlSeverityType.Error:
error += e.Message;
break;
case XmlSeverityType.Warning:
break;
}
});
doc.Schemas = schemas;
//验证xml
doc.Validate(eventHandler);
//检查是否有异常 如果格式不正确就抛出来
if (error.Length > )
{
result.error = result.fileName + "--> XML不符合标准规范";
}
else
{
doc.Save(AppDomain.CurrentDomain.BaseDirectory+"XMLFile/" + DateTime.Now.ToString("yyyymmddhhMMssss")+Guid.NewGuid().ToString() + ".xml");
}
}
catch
{
result.error = result.fileName+"--> XML文档格式错误";
}
整个过程中实际的代码量很少,基本上都不用写,最最关键的就是校验的文件。适用于同样格式的文档,但对文档格式有一定要求的地方使用。
winform总结4> 工欲善其事,必先利其器之xml校验的更多相关文章
- 转:【工欲善其事必先利其器】—Entity Framework实例详解
开始本篇文章之前,先说一下Entity Framework 6 Alpha1在NuGet中已可用,原文链接http://blogs.msdn.com/b/adonet/archive/2012/10/ ...
- 古语云:工欲善其事必先利其器 --> 最新、最全的 IntelliJ IDEA(2018.3.3) 的介绍、安装、破解、配置与使用
原文:古语云:工欲善其事必先利其器 --> 最新.最全的 IntelliJ IDEA(2018.3.3) 的介绍.安装.破解.配置与使用 一.IntelliJ IDEA 介绍 -> Ecl ...
- Winform: use the WebBrowser to display XML with xslt, xml, xslt 转 html 字符串
原文:Winform: use the WebBrowser to display XML with xslt, xml, xslt 转 html 字符串 声明xml字符串: string xml = ...
- 单片机开发——02工欲善其事必先利其器(Proteus软件安装破解)
在单片机开发工程中,博主经常通过模拟软件Proteus进行模拟仿真,将编译生成的"HEX"文件下载在单片机芯片中,然后进行后期的debug工作,当模拟仿真完成之后,进行硬件测试部分 ...
- 单片机开发——01工欲善其事必先利其器(Keil软件安装破解)
本文是博主<单片机开发>博客第一篇文章,主要讲述51单片机编程软件Keil uVision4的安装及破解过程. 1. Keil uVision4安装包文件 PATH:链接 ...
- 工欲善其事必先利其器--------搭建Android平台
工欲善其事必先利其器--------搭建Android平台 1.1 安装JDK 在Eclipse的开发过程中需要JDK或JRE的支持,否则会报错. (1) 下载JDK(建 ...
- java学习第一步-工欲善其事必先利其器
Java SE 磨刀不误砍柴工,工欲善其事必先利其器,咱们先搞好硬件配置,才能顺利的搞好Java学习 阶段一 1.认识Java 2.java发展史及用户 3.配置Java环境 4.JDK8下载安装 5 ...
- TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器
TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器 任务清单 给自己取一个酷酷的id,并选择1-2个喜欢的方向.(只是初步选择,后期可更改) 改下群名片.例如yo ...
- 二十二 XML校验器
Struts2提供的校验器及其规则:
随机推荐
- SQL点滴11—重置win7登录密码影响SQL登录
原文:SQL点滴11-重置win7登录密码影响SQL登录 2011-04-20 修改机器登录密码后不能登录SQL Server 今天发现一个很有趣的现象.公司的电脑每两个月就会提示重置登录密码,今天 ...
- 进击的Android注入术《二》
继续 在<一>里,我把基本思路描写叙述了一遍,接下为我们先从注入開始入手. 注入 分类 我们平时所说的代码注入,主要静态和动态两种方式 静态注入,针对是可运行文件,比方平时我们改动ELF, ...
- 强大的jquery-制作选项卡
最近在学习jquery,特地把今天写的一个选项卡源码贴出来.只是做只是梳理,大神们请不要吐槽,如果有更好的方法,欢迎指点.谢谢. css <style> #tab div{ width:2 ...
- asp.net访问WebService的各种方式
WebService的访问形式主要有:SOAP调用.XMLHTTP POST.GET调用.MicroSoft.XMLDOMC调用.webbehavior.htc调用 我们知道的在C#后台本地调用Web ...
- nginx配置文件中的location详解
location 语法:location [=|~|~*|^~] /uri/ { … } 默认:否 上下文:server 这个指令随URL不同而接受不同的结构.你可以配置使用常规字符串和正则表达式.如 ...
- 增强型for语句与java,c#的不同之处,with语句的使用
<script type="text/javascript" language="javascript"> //遍历数组 var arr = [&q ...
- MVC框架的插件与拦截器基础
自制MVC框架的插件与拦截器基础 上篇谈到我自己写的MVC框架,接下来讲讲插件及拦截器! 在处理一些通用的逻辑最好把它封装一个插件或者拦截器,以便日后可以直接拿过来直接使用.在我的框架中可以通过继承以 ...
- 大量Javascript/JQuery学习教程电子书合集
[推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人 不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小 15天学会jQuery(完整版).pd ...
- C#函数式程序设计之泛型(下)
C#函数式程序设计之泛型(下) 每当使用泛型类型时,可以通过where字句对泛型添加约束: + 这个例子直观地声明了一个约束:类型T必须与ListItem<string>相匹配.泛型类 ...
- bootstrap + angularjs + seajs构建Web Form前端2
bootstrap + angularjs + seajs构建Web Form前端(二) 回顾 上一篇讲解了引入bootstrap构建一个简单的登录页面,如何让angularjs自动启动并绑定视图,操 ...