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后就不会出现这样的错误了

    记录一下
  • 相关阅读:
    CSS 自适应技巧
    实现在线阅读WORD,PDF等文件,JAVA,PHP都可以
    最简单的无线分类,无限树形菜单解决方案
    python生成组织架构图(网络拓扑图、graph.editor拓扑图编辑器)
    python将字符串类型改成日期类型
    python发送邮件
    下载Crypto,CyCrypto,PyCryptodome 报错问题
    UnicodeEncodeError: 'latin-1' codec can't encode characters in position 41-50: ordinal not in range(256)
    pymysql.err.InterfaceError: (0, '')解决办法
    经典三级联动
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/376482.html
Copyright © 2011-2022 走看看