阅读目录
一:前言
二:实现步骤
三:运行效果
前言 XML文档验证是指表示这个XML文档是否符合规则,是否是个正确的XML文档,我们这里讲使用XmlValidatingReader类对XML文档验证,该类通过实现W3C建议所定义的有效性约束DTD,数据简化XDR,XML架构定义语言XSD验证服务。如果验证通过了证明这个XML文档是有效的,否则是无效的。
XmlValidatingReader类实现XmlReader类,并以只进的方式对XML流进行验证。
先看下面这张XML架构图,图里面描述了<BookShop>元素下的子元素必须为<Book>,本来闭合标签应该是<Book>,而我们却写成了<Boo>,我们来看这个错误的XML文档能否通过验证呢。
二:实现步骤
1:XML文件编写
1.1 BookShop.xml
<?xml version="1.0" encoding="utf-8"?> <BookShop xmlns="http://tempuri.org/BookShop.xsd"> <Book>西游记</Book> <Boo>水浒传</Boo> </BookShop>
2:代码文件编写
2.1 Form1.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Xml.Schema; using System.Xml;
namespace XmlReaderSettingsClass { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void Form1_Load(object sender, EventArgs e) { string strXmlPath = "http://www.cnblogs.com/BookShop.xml"; string strXmlXSDPath = "http://www.cnblogs.com/BookShop.xsd"; //把这个BookShop.xml文件打开成流 FileStream stream = new FileStream(strXmlPath, FileMode.Open); //创建XmlValidatingReader类的对象 XmlValidatingReader xvr = new XmlValidatingReader(stream, XmlNodeType.Element, null); //加载XML架构文档 xvr.Schemas.Add(null, strXmlXSDPath); //说明验证的方式是根据XML架构来验证 xvr.ValidationType = ValidationType.Schema; //预先定义一个事件 xvr.ValidationEventHandler += new ValidationEventHandler(ValidationHandler); //对文档进行验证 while (xvr.Read()) ; //显示验证过程完成 MessageBox.Show("验证完成"); //关闭打开的文件 stream.Close(); }
private void ValidationHandler(object sender, ValidationEventArgs args) { //显示验证失败的消息 MessageBox.Show("验证失败:" + args.Message); } } }
三:运行效果
|
请发表评论