/// <summary>
        /// Performs XML and XSD validation. If no files are malformed the performs resource validation.
        /// </summary>
        /// <returns></returns>
        public CoreValidationResult Validate()
        {
            CoreValidationResult result = new CoreValidationResult();

            var xmlFiles = core.EnumerateXmlFiles( DredmorInfo.XmlFilesToValidate, SearchOption.AllDirectories );

            XsdValidator xsd = new XsdValidator();
            result.XmlErrors = xsd.Validate( xmlFiles, true );

            if ( !result.IsValid && result.XmlErrors.Any( p => p.XmlExceptionOccurred ) )
            {
                return result;
            }

            resources.LoadResources( core );

            result.XmlErrors.AddRange(
                XmlResourceValidator.Validate( xmlFiles, resources )
                .Where( p => p.Errors.Count > 0 )
            );

            return result;
        }
        /// <summary>
        /// Performs XML and XSD validation. If no files are malformed the performs resource validation.
        /// </summary>
        /// <returns></returns>
        public CoreValidationResult Validate()
        {
            CoreValidationResult result = new CoreValidationResult();

            var xmlFiles = core.EnumerateXmlFiles(DredmorInfo.XmlFilesToValidate, SearchOption.AllDirectories);

            XsdValidator xsd = new XsdValidator();

            result.XmlErrors = xsd.Validate(xmlFiles, true);

            if (!result.IsValid && result.XmlErrors.Any(p => p.XmlExceptionOccurred))
            {
                return(result);
            }

            resources.LoadResources(core);

            result.XmlErrors.AddRange(
                XmlResourceValidator.Validate(xmlFiles, resources)
                .Where(p => p.Errors.Count > 0)
                );

            return(result);
        }
Example #3
0
        private void WriteErrors( CoreValidationResult result )
        {
            if ( result.XmlErrors.Count == 0 )
            {
                WriteHeading( "No errors! Congratulations!" );
            }
            else
            {
                foreach ( var fileValidationErrors in result.XmlErrors.Where( p => p.Errors.Count > 0 ) )
                {
                    WriteHeading( fileValidationErrors.Path );
                    WriteSubheading( fileValidationErrors.Errors.Count );
                    WriteErrors( fileValidationErrors.Errors );

                    output.AppendText( Environment.NewLine );
                    output.AppendText( Environment.NewLine );
                }
            }
        }