public class Validator { public void Validate(string xmlString) { Boolean bRet = true; string xmlPath = @"C:\x.xml"; string xsdPath = @"C:\general.xsd"; XmlReaderSettings Settings = new XmlReaderSettings(); Settings.Schemas.Add("", xsdPath); Settings.ValidationType = ValidationType.Schema; Settings.ValidationEventHandler += new ValidationEventHandler(SettingsValidationEventHandler); XmlReader list = XmlReader.Create(xmlPath, Settings); //StringBuilder output = new StringBuilder(); while (list.Read()) { } //File.WriteAllText(@"D:\Output.xml", output.ToString()); } static void SettingsValidationEventHandler(object sender, ValidationEventArgs e) { if (e.Severity == XmlSeverityType.Warning) { MessageBox.Show( "WARNING: "); MessageBox.Show(e.Message); } else if (e.Severity == XmlSeverityType.Error) { MessageBox.Show("ERROR: "); MessageBox.Show(e.Message); } } }
<?xml version="1.0" encoding="utf-16"?> <FlashList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" vin="xxxxxxxxxxxxx"> <flash ECUtype="xxx" /> </FlashList>
<?xml version="1.0" encoding="utf-16"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="FlashList"> <xs:complexType> <xs:sequence> <xs:element name="flash" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:string" name="ECUtype" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="Error" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:byte" name="code" use="optional" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="xs:string" name="vin"/> </xs:complexType> </xs:element> </xs:schema>
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)