Posted on January 30th, 2006 by gernot.
Categories: CSharp.
Tags: .NET, C#, code, schema, validation, xml
This is a short tutorial how one can validate a XML Document against a XML schema by using C# and the .NET framework.
using System.Xml;
using System.Xml.Schema;namespace XMLValidation
{
class XMLValidatorTest
{private bool XMLisValid = true;
public void ReadValidateXMLFile()
{
XmlTextReader reader = new XmlTextReader(“C:\\test.xml”);
XmlValidatingReader validator = new XmlValidatingReader(reader);
validator.ValidationType = ValidationType.Schema;
validator.ValidationEventHandler +=
new ValidationEventHandler(this.XMLValidationEventHandler);while (validator.Read())
{
//Add code here to process XML content
}
validator.Close();//Check if XML document is valid or not
if (this.XMLisValid)
Console.WriteLine(“XML Document is valid”);
else
Console.WriteLine(“XML Document is invalid”);
}
}public static void XMLValidationEventHandler(
object sender,ValidationEventArgs args)
{
this.XMLisValid = false;
Console.WriteLine(“XML Validation event” + args.Message);
}}
}
In the XML File:
‹?xml version=”1.0″ encoding=”utf-8″ ?›
‹testNS:testRoot
xmlns:testNS=”http://www.gego.info/testxmlns”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://www.gego.info/testxmlns test.xsd”›
In the XSD File:
‹?xml version=”1.0″ encoding=”utf-8″ ?›
‹xs:schema
id=”test”
targetNamespace=”http://www.gego.info/testxmlns”
elementFormDefault=”qualified”
attributeFormDefault=”unqualified”
xmlns=”http://www.gego.info/testxmlns”
xmlns:xs=”http://www.w3.org/2001/XMLSchema”›