Advertisement
Guest User

Untitled

a guest
May 27th, 2015
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.79 KB | None | 0 0
  1. using System;
  2. using System.Xml;
  3. using System.Xml.Schema;
  4. using System.Xml.XPath;
  5.  
  6. class XPathValidation
  7. {
  8.     static void Main()
  9.     {
  10.         try
  11.         {
  12.             XmlReaderSettings settings = new XmlReaderSettings();
  13.             settings.Schemas.Add("http://www.contoso.com/books", "contosoBooks.xsd");
  14.             settings.ValidationType = ValidationType.Schema;
  15.  
  16.             XmlReader reader = XmlReader.Create("contosoBooks.xml", settings);
  17.             XmlDocument document = new XmlDocument();
  18.             document.Load(reader);
  19.  
  20.             ValidationEventHandler eventHandler = new ValidationEventHandler(ValidationEventHandler);
  21.  
  22.             // the following call to Validate succeeds.
  23.             document.Validate(eventHandler);
  24.  
  25.             // add a node so that the document is no longer valid
  26.             XPathNavigator navigator = document.CreateNavigator();
  27.             navigator.MoveToFollowing("price", "http://www.contoso.com/books");
  28.             XmlWriter writer = navigator.InsertAfter();
  29.             writer.WriteStartElement("anotherNode", "http://www.contoso.com/books");
  30.             writer.WriteEndElement();
  31.             writer.Close();
  32.  
  33.             // the document will now fail to successfully validate
  34.             document.Validate(eventHandler);
  35.         }
  36.         catch (Exception ex)
  37.         {
  38.             Console.WriteLine(ex.Message);
  39.         }
  40.     }
  41.  
  42.     static void ValidationEventHandler(object sender, ValidationEventArgs e)
  43.     {
  44.         switch (e.Severity)
  45.         {
  46.             case XmlSeverityType.Error:
  47.                 Console.WriteLine("Error: {0}", e.Message);
  48.                 break;
  49.             case XmlSeverityType.Warning:
  50.                 Console.WriteLine("Warning {0}", e.Message);
  51.                 break;
  52.         }
  53.  
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement