Validating an XML Document : Schema Validating « XML LINQ « C# / C Sharp






Validating an XML Document

  

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Linq;
public class MainClass {
    public static void Main() {
        XDocument xDocument = new XDocument(
          new XElement("Books",
            new XElement("Book",
              new XAttribute("type", "Author"),
              new XElement("FirstName", "A"),
              new XElement("MiddleName", "Carson"),
              new XElement("LastName", "B")),
            new XElement("Book",
              new XAttribute("type", "Author"),
              new XElement("FirstName", "C"),
              new XElement("LastName", "D"))));

        Console.WriteLine(xDocument);

        XmlSchemaSet schemaSet = new XmlSchemaSet();
        schemaSet.Add(null, "bookparticipants.xsd");

        xDocument.Validate(schemaSet, (o, vea) => {
               Console.WriteLine(o.GetType().Name);
               Console.WriteLine(vea.Message);
           },true);

        foreach (XElement element in xDocument.Descendants()) {
            Console.WriteLine("Element {0} is {1}", element.Name,
              element.GetSchemaInfo().Validity);

            XmlSchemaElement se = element.GetSchemaInfo().SchemaElement;
            if (se != null) {
                Console.WriteLine(
                  "Schema element {0} must have MinOccurs = {1} and MaxOccurs = {2}{3}",
                  se.Name, se.MinOccurs, se.MaxOccurs, System.Environment.NewLine);
            } else {
                Console.WriteLine();
            }
        }
    }
}

   
  








Related examples in the same category

1.Successfully Validating an XML Element
2.Creating an XSD Schema by Inferring Itfrom an XML Document
3.Validating an XML Document with Default Validation Event Handling
4.Validating an XML Document with a Lambda Expression
5.XmlSchemaObject represents the root class for the Xml schema