static void Main(string[] args) { // Create a cache of schemas, and add two schemas XmlSchemaCollection list = new XmlSchemaCollection(); list.Add("", "../../Schemas/iPhone.xsd"); // Create a validating reader object XmlTextReader textReader = new XmlTextReader("../../Schemas/iPhone.xml"); XmlValidatingReader validReader = new XmlValidatingReader(textReader); validReader.ValidationType = ValidationType.Schema; validReader.Schemas.Add(list); // Register a validation event handler method validReader.ValidationEventHandler += new ValidationEventHandler(myEventHandler); try { int count = 0; while (validReader.Read()) { //if (validReader.NodeType == XmlNodeType.Attribute && validReader.Name == "TradeName") //{ // string name = validReader.ReadContentAsString(); // Console.WriteLine(name); //} if (validReader.NodeType == XmlNodeType.Element && validReader.LocalName == "Release-Date") { String value = validReader.ReadElementString(); Console.WriteLine("Release-Date: {0}", value); if (value != null) { count++; } } } Console.WriteLine("\nNumber of models is counted: {0}\n", count); } catch (XmlException e) { Console.WriteLine("XmlException occured: " + e.Message); } finally { Console.ReadKey(); validReader.Close(); } }
static void Main(string[] args) { // Create a cache of schemas, and add two schemas XmlSchemaCollection sc = new XmlSchemaCollection(); sc.Add("urn:MyUri", "../../CompanySummaryNS.xsd"); sc.Add("", "../../CompanySummary.xsd"); // Create a validating reader object XmlTextReader tr = new XmlTextReader("../../CompanySummaryWithXSDAndNS.xml"); XmlValidatingReader vr = new XmlValidatingReader(tr); // Specify the type of validation required vr.ValidationType = ValidationType.Schema; // Tell the validating reader to use the schema collection vr.Schemas.Add(sc); // Register a validation event handler method vr.ValidationEventHandler += new ValidationEventHandler(MyHandler); // Read and validate the XML document try { while (vr.Read()) { if (vr.NodeType == XmlNodeType.Element && vr.LocalName == "NumEmps") { int num; num = XmlConvert.ToInt32(vr.ReadElementString()); Console.WriteLine("Number of employees: " + num); } } } catch (XmlException ex) { Console.WriteLine("XMLException occurred: " + ex.Message); } finally { vr.Close(); } }