栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 其他 > xml语言

具体介绍使用xsd验证xml的代码分享

xml语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

具体介绍使用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的其他的一些类或者实例
StreamWriter ,StreamReader,XmlSchema,XmlSchemaSet

Stream stream = new MemoryStream(); //当一个类的对象无法初始化时,可以考虑用它的继承类。

FileStream fs = File.Open("117.xml",FileMode.OpenOrCreate,FileAccess.ReadWrite);

TextReader tr1=new StreamReader("123.xml");

TextReader tr2= new StringReader("asdfsadfsdf");

以上就是具体介绍使用xsd验证xml的代码分享的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/794560.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号