Beispiel #1
0
        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);
        }