using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;
public class Sample {
public static void Main() {
// Create the XmlSchemaSet class.
XmlSchemaSet sc = new XmlSchemaSet();
// Add the schema to the collection. import and inlcude part for the xml
sc.Add("namespace", "uri");
sc.Add("namespace1", "uri1");
// Set the validation settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas = sc;
settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
// Create the XmlReader object.
XmlReader reader = XmlReader.Create(new stringReader("test string"), settings);
// Parse the file.
while (reader.Read());
}
// Display any validation errors.
private static void ValidationCallBack(object sender, ValidationEventArgs e) {
Console.WriteLine("Validation Error: {0}", e.Message);
}
}
如果xml 有多个shema:
//Create the XmlSchemaSet class.
XmlSchemaSet schemaSet = new XmlSchemaSet();
//Add the schema to the collection. import and inlcude part for the xml
schemaSet.Add("http://tempuri.org/", XmlTextReader.Create(new StringReader(SchemaResource.schema1)));
schemaSet.Add("http://schemas.microsoft.com/2003/10/Serialization/Arrays", XmlTextReader.Create(new StringReader(SchemaResource.schema2)));
schemaSet.Add("http://schemas.datacontract.org/2004/07/Microsoft.Office.Server.Search.Internal.Administration", XmlTextReader.Create(new StringReader(SchemaResource.schema3)));
schemaSet.Add("http://schemas.microsoft.com/2003/10/Serialization/", XmlTextReader.Create(new StringReader(SchemaResource.schema4)));
schemaSet.Add("http://schemas.datacontract.org/2004/07/Microsoft.Office.Server.Search.Administration", XmlTextReader.Create(new StringReader(SchemaResource.schema5)));
//Set the validation settings.
XmlReaderSettings validationSettings = new XmlReaderSettings();
validationSettings.Schemas = schemaSet;
validationSettings.ValidationType = ValidationType.Schema;
XmlReader validationReader = XmlReader.Create(new StringReader(xmlString), validationSettings);
try
{
while (validationReader.Read())
return ;
}
catch (System.Xml.Schema.XmlSchemaValidationException xmlSchemaValidationException)
{
throw new XmlSchemaValidationException(xmlSchemaValidationException.ToString());
}