<?xml version=”1.0” encoding=”utf-8”?>
<xs:schema elementFormDefault=”qualified”xmlns:xs=”http://www.w3.org/2001/XMLSchema”>
<xs:element name=”Book” >
<xs:complexType >
<xs:sequence>
<xs:element name=”Title” type=”xs:string”/>
<xs:element name=”Author” type=”xs:string”/>
</xs:sequence>
<xs:attribute name=”PublishYear” type=”xs:gYear” />
</xs:complexType>
</xs:element>
</xs:schema>
假设Schema的文件名是XmlBookSchema.xsd
const string sourceXml = “<?xml version=’1.0’?>” + “<Book PublishYear=\”2009\”>” + “<Author>Billy Bob</Author>” +
“<Title>Programming, art or engineering?</Title>” + “</Book>”;
static void Main(string[] args)
{
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add(null, “XmlBookSchema.xsd”);
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas = schemaSet;
settings.ValidationEventHandler += new ValidationEventHandler(Settings_ValidationEventHandler);
using (StringReader reader = new StringReader(sourceXml))
using (XmlReader xmlReader = XmlTextReader.Create(reader, settings))
{
while (xmlReader.Read()) ;
}
Console.WriteLine(“Validation complete”);
Console.ReadKey();
}
static void Settings_ValidationEventHandler(object sender, ValidationEventArgs e)
{
Console.WriteLine(“Validation failed: “+e.Message);
}