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 > 0)
                {
                    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文档格式错误";
            }

整个过程中实际的代码量很少,基本上都不用写,最最关键的就是校验的文件。适用于同样格式的文档,但对文档格式有一定要求的地方使用。

时间: 2024-10-06 13:57:37

winform总结4> 工欲善其事,必先利其器之xml校验的相关文章

转:【工欲善其事必先利其器】—Entity Framework实例详解

开始本篇文章之前,先说一下Entity Framework 6 Alpha1在NuGet中已可用,原文链接http://blogs.msdn.com/b/adonet/archive/2012/10/30/ef6-alpha-1-available-on-nuget.aspx 俗话说:“工欲善其事必先利其器”,在深入讲解Entity Framework之前,先准备一下开发工具以及前期的配置. 一.开发工具 开发工具基本略过,这里说一下,我使用的是Visual Studio 2012,Entity

eclipse 解决 xml 校验慢的问题

用于加快 Eclipse xml validator 校验xml的速度. 用Eclipse加载本项目,然后将user_catalog.xml放置在 {workspace}.metadata.plugins\org.eclipse.wst.xml.core下面即可.记得重启Eclipse使变更生效 http://git.oschina.net/oleaster/XMLENTITY 内置了一些xml校验文件,可自己添加.

工欲善其事必先利其器--------搭建Android平台

工欲善其事必先利其器--------搭建Android平台 1.1            安装JDK 在Eclipse的开发过程中需要JDK或JRE的支持,否则会报错. (1)     下载JDK(建议去JDK官网下载)[Java SE Downloads 中的Java platform(JDK)](最好不要安装在带空格的目录下) 图1-1 JDK下载 (2)     配置环境变量(此步骤很重要,过程可参照网上步骤) JAVA_HOME:  C:\Program Files\Java\jdk1.

工欲善其事必先利其器—成绩登统系统

    工欲善其事必先利其器.谓工匠想要使他的工作做好,一定要先让工具锋利.比喻要做好一件事,准备工作非常重要.语出孔子·<论语·卫灵公>:子贡问为仁.子曰:"工欲善其事,必先利其器.居是邦也,事其大夫之贤者,友其士之仁者." 也就是我们通常所说的磨刀不误砍柴工.那么体现在系统或者软件开发上磨刀就是前期的准备工作,也就是各个文档编写以及原型的画出与完善. 1.      第一阶段:需求调研     毛主席说过,"没有调查就没有发言权":一切的需求来自于实

C# net winform wpf 发送post数据和xml到网页

由于项目需要发送数据到网页 这里用aspx做测试 采用post以及get发送数据,页面进行数据  首先这个东西很简单很简单,基本上学过的都会,但是原谅一直搞cs几乎不搞bs的猿类吧.三四年没接触bs. 除了记录自己用意外.也希望能帮助别人 写程序与bs交互的处理webservice也没别的了.冷不丁的遇到了还抓瞎,只能网上搜罗然后测试在整理,在学习....... 希望帮助没接触过的,以及也是一直搞cs的猿类,请bs大神,高手,给出更多的解决方案 首先采用最简单的微软子提供的方式 aspx可以用r

单片机开发——01工欲善其事必先利其器(Keil软件安装破解)

本文是博主<单片机开发>博客第一篇文章,主要讲述51单片机编程软件Keil uVision4的安装及破解过程. 1. Keil uVision4安装包文件 PATH:链接:https://pan.baidu.com/s/1IEUUhND_0F_6pXVbhlJamQ 密码:dqrd 安装包内容:安装文件.破解机.汉化包(不建议汉化). 2. Keil uVision4软件安装 双击安装包,一直"NEXT"到最后,选择Finish,到这里软件的安装过程完成. 3. Keil

XML校验之sun.tools.internal.xjc.Driver

最近在用XML做数据对接,用到了XSD文件来对XML进行校验.XSD就是一个规范,对应于这个规范还需要有java代码来对XML处理.可以用sun.tools.internal.xjc.Driver这个类来生成java代码.可以用批处理文件来实现.但是用jdk1.6.0_04会报错,然后换了个版本的jdk就可以了.至今也不知道为什么.(两者的sun.tools.internal.xjc下面都有Drever这个类,有可能是classpath环境变量没有配置好的缘故) 报错信息D:\implement

xml 校验

package sax.parsing; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuil

二十一 Struts的数据校验两种方式:手动编码和xml校验

数据的校验: 一.前台校验:JS校验 JS的校验不是必须的,JS可以被绕行,可以提升用户体验 二.后台校验:编码校验 必须的校验 三.校验的方式: 手动编码(不建议使用) 配置文件(支持) 手动编码的校验方式: 继承ActionSupport,在这个类中写校验方式. 重写validate方法,validate方法在其他业务方法之前执行 针对某个方法校验,需要在方法名应为:validate+方法名,如validateAdd()   validateModify()  validateExecute