Beispiel #1
0
 protected void SendValidationEventNoThrow(XmlSchemaException e, XmlSeverityType severity)
 {
     if (severity == XmlSeverityType.Error)
     {
         _errorCount++;
     }
     _eventHandler?.Invoke(null, new ValidationEventArgs(e, severity));
 }
Beispiel #2
0
        /// <summary>
        /// default validation handler
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void ValidationEventHandler(object sender, ValidationEventArgs e)
        {
            validationEventHandler?.Invoke(sender, e);
            switch (e.Severity)
            {
            case XmlSeverityType.Error:
                Console.WriteLine("Error: {0}", e.Message);
                break;

            case XmlSeverityType.Warning:
                Console.WriteLine("Warning {0}", e.Message);
                break;
            }
        }
Beispiel #3
0
        public bool LoadWithValidation(string folder, ValidationEventHandler eventHandler)
        {
            if (SchemaPath == null)
            {
                return(false);
            }

            bool passSchemaValidation = true;

            XmlReaderSettings settings = new XmlReaderSettings()
            {
                IgnoreComments = true,
                ValidationType = ValidationType.Schema,
            };

            settings.Schemas.Add(SchemaNameSpace, SchemaPath);
            settings.ValidationFlags        |= XmlSchemaValidationFlags.ReportValidationWarnings;
            settings.ValidationEventHandler += (sender, e) =>
            {
                passSchemaValidation = false;
                eventHandler?.Invoke(sender, e);
            };

            var documents = new List <GrammarDocument>();

            foreach (string path in Directory.EnumerateFiles(folder).Where(x => x.EndsWith(".xml")))
            {
                var document = new XmlDocument();
                using (XmlReader reader = XmlReader.Create(path, settings))
                {
                    document.Load(reader);
                }
                documents.Add(new GrammarDocument(path, document));
            }

            if (passSchemaValidation)
            {
                _items = documents;
            }

            return(passSchemaValidation);
        }
Beispiel #4
0
        public static bool Validate(Stream stream, ValidationEventHandler handler)
        {
            var schema = new XmlSchemaSet();

            foreach (string path in Directory.EnumerateFiles(Path.Combine(Path.GetDirectoryName(typeof(Project).Assembly.Location)), $"{nameof(Traneleon)}.xsd", SearchOption.TopDirectoryOnly))
            {
                schema.Add(XMLNS, path);
            }

            //if (handler == null) handler = delegate (object sender, ValidationEventArgs e) { };

            bool isValid = true;
            var  doc     = XDocument.Load(stream, LoadOptions.SetLineInfo);

            doc.Validate(schema, (sender, e) =>
            {
                handler?.Invoke(sender, e);
                isValid = false;
            });
            stream.Position = 0;

            return(isValid);
        }