private static ValidateResult ValidateXmlDocument(XmlDocument xmlDocument, IEnumerable <string> inputXsdSchemas, ValidationOptions options) { var validateResult = new ValidateResult() { IsValid = true }; var schemas = new XmlSchemaSet(); var settings = new XmlReaderSettings { ValidationType = ValidationType.Schema }; settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings; foreach (var schema in inputXsdSchemas) { schemas.Add(null, XmlReader.Create(new StringReader(schema), settings)); } XDocument.Load(new XmlNodeReader(xmlDocument)).Validate(schemas, (o, e) => { if (options.ThrowOnValidationErrors) { throw new XmlSchemaValidationException(e.Message, e.Exception); } validateResult.IsValid = false; validateResult.Error = e.Message; }); return(validateResult); }