schema验证

来源:互联网 发布:一知f君2月13号百度云 编辑:程序博客网 时间:2024/05/22 04:41

C#中:用schema验证xml Products.xml代码:

Talking Online Fittings Communicate Debugging Online Professional Machine Products.xsd代码

Program.cs: using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.Xml.Schema; namespace ConsoleApplication1 { class Program { static bool sign = true; [STAThread] static void Main(string[] args) { YZVS2005(); // DTDDemo D = new DTDDemo(); // D.YZDTD(); } //VS2003 static void YZVS2003() { XmlTextReader xtr = null; XmlValidatingReader xvr = null; string xmlFile = "Products.xml";//xml源文档 string xsdFile = "Products.xsd";//xsd架构文档 xtr = new XmlTextReader(xmlFile);//构造非验证读取器 XmlSchemaCollection xsc = new XmlSchemaCollection ();//构造Schema架构缓存 xsc.Add("http://www.tuha.net", xsdFile);//在缓存中添加架构文件及对应名字空间 xvr = new XmlValidatingReader(xtr);//构造验证读取器 xvr.Schemas.Add(xsc);//关联验证读取器与架构集合 xvr.ValidationType = ValidationType.Schema;//设置验证类型为Schema架构 xvr.ValidationEventHandler += new ValidationEventHandler(vCallback);//发生错误时的事件处理程序 while (xvr.Read())//执行读操作 { } Console.Write("验证完毕" + sign.ToString()); } private static void vCallback(object sender, ValidationEventArgs args) //错误回调程序 { sign = false;//改变标记 Console.WriteLine("VS2003 验证出错" + args.Message); } static void YZVS2005() { // Create the XmlSchemaSet class. XmlSchemaSet sc = new XmlSchemaSet(); // Add the schema to the collection. sc.Add("http://www.tuha.net", "Products.xsd"); // Set the validation settings. XmlReaderSettings settings = new XmlReaderSettings(); settings.ValidationType = ValidationType.Schema; settings.Schemas = sc; settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); // Create the XmlReader object. XmlReader reader = XmlReader.Create("Products.xml", settings); // Parse the file. while (reader.Read()) { }; } private static void ValidationCallBack(object sender, ValidationEventArgs e) { Console.WriteLine("VS2005 Validation Error: {0}", e.Message); } } }

原创粉丝点击