如何使用xsd验证xml

这篇文章主要介绍如何使用xsd验证xml,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联建站专业为企业提供遂昌网站建设、遂昌做网站、遂昌网站设计、遂昌网站制作等企业网站建设、网页设计与制作、遂昌企业网站模板建站服务,十余年遂昌做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

Xsd

   XML结构定义 ( XML Schemas Definition )
   XML Schema 是DTD的替代品。XML Schema语言也就是XSD。
   XML Schema描述了XML文档的结构。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。
 文档设计者可以通过XML Schema指定一个XML文档所允许的 结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML文档,它符合XML语法结构。
 可以用通用的XML解析器解析它。
   一个XML Schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。

   XSD文件的后缀名为.xsd。
 
  在下面的代码示例中,上面的架构添加到 XmlReaderSettings 对象的 XmlSchemaSetSchemas 属性中。 XmlReaderSettings 对象作为参数传递给验证上述 XML 文档的 XmlReader 对象的 Create 方法。

  XmlReaderSettings 对象的 ValidationType 属性设置为 Schema,强制通过 XmlReader 对象的 Create 方法验证 XML 文档。将 ValidationEventHandler 添加到 XmlReaderSettings 对象以处理 XML 文档和架构验证过程中发现的错误所引发的任何 Warning 或 Error 事件。
 
下面是一个例子:

using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;
using System.Xml.Serialization;
using System.Text;

public class XmlSchemaSetExample
{
    static void Main()
    {

        XmlReaderSettings booksSettings = new XmlReaderSettings();
        booksSettings.Schemas.Add("http://www.contoso.com/books", "contosoBooks.xsd");
        booksSettings.ValidationType = ValidationType.Schema;
        booksSettings.ValidationEventHandler += new ValidationEventHandler(booksSettingsValidationEventHandler);

        MemoryStream ms = new MemoryStream();//定义一个数据流对象

        XmlDocument doc = new XmlDocument();

        doc.Load("contosoBooks.xml");

        doc.Save(ms);

        ms.Position = 0; //修改指针的位置

        XmlReader books = XmlReader.Create(ms,booksSettings);


        while (books.Read())
        {  }
     }

    static void booksSettingsValidationEventHandler(object sender, ValidationEventArgs e)
    {
        if (e.Severity == XmlSeverityType.Warning)
        {
            Console.Write("WARNING: ");
            Console.WriteLine(e.Message);
            Console.Read();
            
        }
        else if (e.Severity == XmlSeverityType.Error)
        {
            Console.Write("ERROR: ");
            Console.WriteLine(e.Message);
            Console.Read();
        }
    }
}

contosoBooks.xsd



  
    
      
        
          
            
              
              
                
                  
                    
                    
                    
                  
                
              
              
            
            
            
            
          
        
      
    
  

contosoBooks.xml



  
    The Autobiography of Benjamin Franklin
    
      Benjamin
      Franklin
    
    8.99
  
  
    The Confidence Man
    
      Herman
      Melville
    
    11.99
  
  
    The Gorgias
    
      Plato
    
    9.99
  

以上是“如何使用xsd验证xml”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


名称栏目:如何使用xsd验证xml
文章来源:http://azwzsj.com/article/gsiohe.html