January 2004
Beginner to intermediate
864 pages
22h 18m
English
You are accepting an XML document created by another source and you want to verify that it conforms to a specific schema. This schema may be in the form of an XSD or XDR schema; alternatively, you want the flexibility to use a DTD to validate the XML.
Use the
XmlValidatingReader to validate XML documents
against any descriptor document, such as an XSD (XML Schema), a DTD
(Document Type Definition), or an XDR (Xml-Data Reduced):
public static void ValidateXML( ) { // create XSD schema collection with book.xsd XmlSchemaCollection schemaCollection = new XmlSchemaCollection( ); // wire up handler to get any validation errors schemaCollection.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); // add book.xsd schemaCollection.Add(null, @"..\..\Book.xsd"); // make sure we added if(schemaCollection.Count > 0) { // open the book.xml file XmlTextReader reader = new XmlTextReader(@"..\..\Book.xml"); // set up the validating reader XmlValidatingReader validReader = new XmlValidatingReader(reader); // set the validation type and add the schema collection validReader.ValidationType = ValidationType.Schema; validReader.Schemas.Add(schemaCollection); // wire up for any validation errors from the validating // reader validReader.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); // read all nodes and print out while (validReader.Read( )) { if(validReader.NodeType == XmlNodeType.Element) { Console.Write("<{0}", ...