zoukankan      html  css  js  c++  java
  • 使用XmlSchemaSet验证

    XmlSchemaSet包含 XML 架构定义语言 (XSD) 架构的缓存

    不使用XmlSchemaSet和使用XmlSchemaSet的比较

    1.没使用XmlSchemaSet
     1<%@ Page Language="C#"%>
     2<%@ Import Namespace="System.Xml" %>
     3<%@ Import Namespace="System.Xml.Schema" %>
     4
     5<script runat="server">    
     6    private StringBuilder _builder = new StringBuilder();
     7    void Page_Load(object sender, EventArgs e)
     8    {
     9        string xmlPath = Request.PhysicalApplicationPath + @"\App_Data\Authors.xml";    
    10        string xsdPath = Request.PhysicalApplicationPath + @"\App_Data\Authors.xsd";
    11        XmlReader reader = null;        
    12        XmlReaderSettings settings = new XmlReaderSettings();
    13        settings.ValidationEventHandler += new ValidationEventHandler(this.ValidationEventHandler);
    14        settings.ValidationType = ValidationType.Schema;        
    15        settings.Schemas.Add(null, XmlReader.Create(xsdPath));
    16        reader = XmlReader.Create(xmlPath, settings);
    17        while (reader.Read()) 
    18        {            
    19        }

    20        if (_builder.ToString() == String.Empty)
    21            Response.Write("Validation completed successfully.");
    22        else
    23            Response.Write("Validation Failed. <br>" + _builder.ToString());
    24    }

    25
    26    //报错
    27    void ValidationEventHandler(object sender, ValidationEventArgs args)
    28    {        
    29        _builder.Append("Validation error: " + args.Message + "<br>");                
    30    }
        
    31  
    32</script>
    33<html xmlns="http://www.w3.org/1999/xhtml" >
    34<head runat="server">
    35    <title>XSD Validation</title>
    36</head>
    37<body>
    38    <form id="form1" runat="server">
    39    <div>                
    40    </div>
    41    </form>
    42</body>
    43</html>
    44


    执行页面以后,无法修改XSD文件,会出现提示,文件正在使用




     1void Page_Load(object sender, EventArgs e)
     2    {        
     3        string xmlPath = Request.PhysicalApplicationPath + @"\App_Data\Authors.xml";    
     4        string xsdPath = Request.PhysicalApplicationPath + @"\App_Data\Authors.xsd";
     5        XmlSchemaSet schemaSet = new XmlSchemaSet();
     6        schemaSet.Add(null, xsdPath);
     7        XmlReader reader = null;        
     8        XmlReaderSettings settings = new XmlReaderSettings();
     9        settings.ValidationEventHandler += new ValidationEventHandler(this.ValidationEventHandler);
    10        settings.ValidationType = ValidationType.Schema;        
    11        settings.Schemas = schemaSet;        
    12        reader = XmlReader.Create(xmlPath, settings);


    使用XmlSchemaSet后就不会出现这样的错误了

    记录一下
  • 相关阅读:
    寒假学习记录19
    寒假学习记录18
    寒假学习记录17
    寒假学习记录16
    寒假学习记录15
    寒假学习记录14
    寒假学习记录13
    寒假学习记录12
    寒假学习记录11
    学习进度(10)
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/376482.html
Copyright © 2011-2022 走看看