schema验证

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); } } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值