zoukankan      html  css  js  c++  java
  • C#温故而知新学习系列之XML编程—XmlValidatingReader类对XML文档验证(七)

      阅读目录

      一:前言

      二:实现步骤

      三:运行效果

      前言
      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);
              }
          }
      }

      三:运行效果

      

     

      

  • 相关阅读:
    linux笔记:用户管理命令和用户组管理命令
    linux笔记:用户配置文件
    linux笔记:关机重启命令shutdown,系统运行级别init,退出登录logout
    linux笔记:网络命令ping,traceroute,ifconfig,netstat;挂载和卸载命令mount,umount
    归纳和数学归纳法
    linux笔记:压缩解压命令gzip,gunzip,tar,zip,unzip,bzip2,bunzip2
    linux笔记:linux帮助命令,man,help,whatis,apropos
    linux笔记:搜索命令find,locate,which,whereis,grep
    linux笔记:权限管理命令chmod,chown,chgrp,umask
    linux笔记:链接命令,软链接和硬链接
  • 原文地址:https://www.cnblogs.com/menglin2010/p/2307602.html
Copyright © 2011-2022 走看看