public string[] Validate(string xml, XmlSchemaSet schemas) { _validationErrors.Clear();XmlReaderSettings xsettings = new XmlReaderSettings(); xsettings.Schemas.Add(schemas);xsettings.ValidationType = ValidationType.Schema; xsettings.ValidationFlags = XmlSchemaValidationFlags.ProcessIdentityConstraints;xsettings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;xsettings.ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings; xsettings.ValidationEventHandler += XmlValidationEventHandler;using (StringReader sreader = new StringReader(xml)) {using (XmlReader xreader = XmlReader.Create(sreader, xsettings)) {while (xreader.Read()) ; } }return _validationErrors.ToArray(); } void XmlValidationEventHandler(object sender, ValidationEventArgs e) {if (e.Severity == XmlSeverityType.Error) { _validationErrors.Add(e.Message); } }
|