T086ѧϰ�� | վ��ѧԺ | �����ĵ� | ���� | Ъ���� | IP��ַ��ѯ | �������� | ���ջ��� | �����ֵ� | ���ù��� | ������Ϣ��ѯ

��.NET Framework�����ɴ���XML����(��)

�� ��Դ��aspcool���ߣ�chyich�� ����ʱ�䣺2005-03-19 | ���壺�� �� С��
[����]����֤���Ķ��� XmlValidatingReader��ʵ����XmlReader�࣬���ṩ��֧�ֶ������͵�XML��֤��DTD��XML-Data Reduced(XDR)�ܹ����Լ�XSD��DTD��XSD����W3C�ٷ��Ƽ��ġ���XDR��Microsoft�������ڴ���XML���ܵ�һ�ָ�ʽ��...
   ����֤���Ķ���
  
   XmlValidatingReader��ʵ����XmlReader�࣬���ṩ��֧�ֶ������͵�XML��֤��DTD��XML-Data Reduced(XDR)�ܹ����Լ�XSD��DTD��XSD����W3C�ٷ��Ƽ��ġ���XDR��Microsoft�������ڴ���XML���ܵ�һ�ָ�ʽ��
  
   ��������XmlVlidatingReader��ȥ��֤XML�ĵ���XMLƬ�ϡ�XmlValidatingReader�๤����XML�Ķ�������---��һ�����͵�XMLTextReader��ʵ����XMLTextReade���ڶ�ȡ�ĵ��Ľڵ㣬����XmlVlidatingReader������Ҫ����֤����ȥ��֤ÿһ��XML�顣
  
   XmlVlidatingReader��ֻʵ���˷dz�С��XML�Ķ����ر���һ�������Ӽ����������ǹ�����һ���Ѵ��ڵ�XML�Ķ������棬�����ӷ��������ԡ����������������Ĺ��캯�������ᷢ���������Ե�����һ���Ѵ��ڵ��ı��Ķ���������֤��XML�Ķ�������ֱ�ӵĴ�һ���ļ���һ��URL���л��������Ĺ��캯���б����£�
  
  public XmlValidatingReader(XmlReader);
  
  public XmlValidatingReader(Stream, XmlNodeType, XmlParserContext);
  
  public XmlValidatingReader(string, XmlNodeType, XmlParserContext);
  
   ����֤��XML�Ķ����ܷ����κε�XMLƬ�ϣ�XMLƬ��ͨ��һ��string����һ��stream�ṩ,Ҳ���Է����κ��Ķ����ṩ��XML�ĵ���
  
   XmlVlidatingReader�������ش��ı��ķ����dz���(��������reader����˵)�������� Read������Skip��ReadTypedValue������Skip����������ǰ�ڵ����е��ӽڵ㣨�㲻������������ʽ��XML�ı��������൱���õ��㷨����Skip����Ҳ��֤�����������ݡ�ReadTypedValue��������ָ�� XML �ܹ� (XSD) ���Ͷ�Ӧ��CLR���͡������÷����ҵ���XSD���Ͷ�Ӧ��CLR���ͣ��򷵻�CLR���������������Ҳ��������Ѹýڵ���ֵ��Ϊһ���ַ���ֵ���ء�
  
   ����֤��XML�Ķ�����������������һ�����ڽڵ����Ķ���������֤��ǰ�ڵ��Ľṹ�Ƿ����ϵ�ǰ��schema����֤������ʽ�ģ���û�з������ر�ʾ�ĵ��Ƿ���Ч�IJ���ֵ��ͨ���㶼����Read����ȥ��������XML�ĵ���ʵ���ϣ���Ҳ�����ô���֤���Ķ���ȥ��XML�ĵ�����ÿһ���У���ǰ�����ʵĽڵ��Ľṹ�Ƿ���ָ����schema���ϣ����������ϣ��׳�һ���쳣��ͼ����һ������̨Ӧ�ó���������һ��Ҫ�����ļ����������У�����������֤������
  
   Figure 4 Console App
  
  using System;
  
  using System.Xml;
  
  using System.Xml.Schema;
  
  
  
  class MyXmlValidApp
  
  {
  
   public MyXmlValidApp(String fileName)
  
   {
  
   try {
  
   Validate(fileName);
  
   }
  
   catch (Exception e) {
  
   Console.WriteLine("Error: {0}", e.Message);
  
   Console.WriteLine("Exception raised: {0}",
  
   e.GetType().ToString());
  
   }
  
   }
  
  
  
   private void Validate(String fileName)
  
   {
  
   XmlTextReader xtr = new XmlTextReader(fileName);
  
   XmlValidatingReader vreader = new XmlValidatingReader(xtr);
  
   vreader.ValidationType = ValidationType.Auto;
  
   vreader.ValidationEventHandler += new
  
   ValidationEventHandler(this.ValidationEventHandle);
  
  
  
   vreader.Read();
  
   vreader.MoveToContent();
  
  
  
   while (vreader.Read()) {}
  
  
  
   xtr.Close();
  
   vreader.Close();
  
   }
  
  
  
   public void ValidationEventHandle(Object sender,
  
   ValidationEventArgs args)
  
   {
  
   Console.Write("Validation error: " + args.Message + " ");
  
   }
  
  
  
   public static void Main(String[] args)
  
   {
  
   MyXmlValidApp o = new MyXmlValidApp(args[0]);
  
   return;
  
   }
  
  }
  
  
  
  ValidationType����������֤�����ͣ���������:DTD, XSD, XDR����none������û��ָ����֤�����ͣ���ValidationType.Autoѡ����Ķ������Զ��ĸ����ĵ������ʺϵ���֤���͡�����֤�����г����κδ��󣬶��ᴥ��ValidationEventHandler�¼�������δ�ṩ�¼�ValidationEventHandler�¼��������������׳�һ��XML�쳣������ValidationEventHandler�¼��������������ڲ�׽�κ���XMLԴ�ļ��д��ڴ���������XML�쳣��һ�ַ�����Ҫע�������Ķ�����ԭ���Ǽ���һ���ĵ��Ƿ��Ǹ�ʽ���õģ��Լ������ĵ��Ƿ����ܹ��Ǻϡ���������֤���Ķ�������һ�������صĸ�ʽ������XML�ĵ���ֻ�ᴥ��XmlException�쳣,�����ᴥ���������¼���
  
   ��֤�������û���Read������ǰ�ƶ�ָ��ʱ��һ���ڵ㱻�����Ͷ�ȡ�������ô��͹����Ĵ�����֤���ڲ��Ķ�������֤�����ǻ��ڽڵ����ͼ���Ҫ������֤���͡���ȷ�Ͻڵ����е����Ժͽڵ��������ӽڵ��Ƿ�������֤������
  
   ��֤�������ڲ�����������ͬ�����Ķ�����DTD�������ͼܹ�������(schema builder)��DTD������������ǰ�ڵ������ݺͲ�����DTD���������ܹ�����������XDR����XSD�ܹ��Ե�ǰ�Ľڵ㹹��һ��SOM��schema object model�����ܹ���������ʵ����������ָ��ΪXDR��XSD�ܹ��������Ļ��ࡣΪʲô�أ���ȻXDR��XSD�ܹ���������ͬ�ķ������ӹ�������������������ִ��ʱ������û��������
  
   �����ڵ����ӽڵ㣬����һ����ʱ���Ķ����ռ��ӽڵ���Ϣ�����˽ڵ��ļܹ���Ϣ�ܱ���ȫ����֤�������Կ�ͼ�壺
  
  
  
  ע�⣬����XmlValidatingReader���Ĺ��캯�����Խ���һ��XmlReader����Ϊ���Ķ��������Ǹ��Ķ���ֻ����XmlTextReader����һ��ʵ������������һ����������ʵ��������ζ���㲻����������XmlReader�������ࣨ����һ���Զ�����XML�Ķ���������XmlValidatingReader�����ڲ����������Ķ�����һ����XmlTextReader���󼰰Ѵ������Ķ�����ʽ��ת����XmlTextReader�ࡣ��������XmlNodeReader�����Զ������Ķ������������ڱ���ʱ������������ʱ�׳�һ���쳣��
  
  �ڵ��Ķ���
  
  XML�Ķ����ṩһ������ʽ�ķ�����һ��һ���ڵ��Ķ����������ĵ������ݡ���ĿǰΪֹ�����Ǽ���Դ�ļ���һ������Ӳ�̵���������һ���ַ�������Ȼ�������Dz��ܱ�֤��ʵ���л��ṩһ��Դ�ļ���XMLDOM���������ǡ������������£�������Ҫһ�������ر��Ķ��������ر����ࡣ������������.NET Framework�ṩ��XmlNodeReader�ࡣ
  
  ����XmlTextReader����ָ��XML�������нڵ�һ����XmlNodeReader������XMLDOM���������нڵ㡣XMLDOM�ࣨ��.NET Framework�е�XmlDocument�ࣩ֧�ֻ���Xpath�ķ���������SelectNodes������SelectSingleNode��������Щ�����������ǰ�ƥ���Ľڵ������ڴ��С���������Ҫ���������е����нڵ㣬�ڵ��Ķ�����������ʽ���������ڵ����Ķ������и��ߵ�Ч�ʣ�
  
  // xmldomNode is the XML DOM node
  
  XmlNodeReader nodeReader = new XmlNodeReader(xmldomNode);
  
  while (nodeReader.Read())
  
  {
  
   // Do something here
  
  }
  
   ����Ҫ�������ļ�������web.cofig�ļ����������Զ���������ʱ���Ȱ���Щ�������䵽XMLDOM���У�Ȼ����XmlNodeReader����XMLDOM�����ϴ�����Щ���ݡ���Ҳ�Ǹ�Ч�ġ�
  • ת����ע����Դ��ITѧϰ�� ��ַ��http://www.t086.com/ �����������Ƽ�������
  • �ر������� ��վ�������ر�������ֹת�ص�ר�������������¿�������ת�أ���������ע��������ԭʼ���ߡ����°�Ȩ������ԭʼ�������С����ڱ���վת�����µĸ��˺���վ�����DZ�ʾ������л�⡣������վת�ص������а�Ȩ��������ϵ���ǣ����ǻᾡ�����Ը�����
������ѯ Health Check Gulangyu
© 2017 T086ѧϰ�� - T086.com(ԭitlearner.com)
RunTime:9.72ms QueryTime:7