private List <ValidationResult> ValidateSchematron(IValidator validator, ValidationContent content) { List <ValidationResult> results = new List <ValidationResult>(); try { string contentText = ASCIIEncoding.UTF8.GetString(content.Data); ValidationResults validationResults = validator.Validate(contentText); results = (from schvr in validationResults.Messages select new ValidationResult() { ErrorMessage = schvr.Message, FileName = content.FileName, LineNumber = schvr.LineNumber, Test = schvr.Test, TestContext = schvr.Context, Severity = schvr.Severity.ToString(), XmlChunk = schvr.ContextContent }).ToList(); } catch { } return(results); }
private List <ValidationResult> ValidateInputXml(ValidationContent content, ValidationProfile profile) { string dataContent = System.Text.ASCIIEncoding.UTF8.GetString(content.Data); List <ValidationResult> results = new List <ValidationResult>(); using (StringReader ms = new StringReader(dataContent)) { XmlReader sourceReader = XmlReader.Create(ms); XmlDocument sourceDoc = new XmlDocument(); try { sourceDoc.LoadXml(dataContent); } catch (XmlException ex) { results.Add(new ValidationResult() { FileName = content.FileName, ErrorMessage = "Could not load XML document: " + ex.Message }); return(results); } XmlNamespaceManager nsManager = new XmlNamespaceManager(sourceDoc.NameTable); results.AddRange( ValidateSchema(content.FileName, profile, content.Data, nsManager)); results.AddRange( ValidateSchematron(profile.SchematronValidator, content)); } return(results); }