Exemple #1
0
        private void Run(string[] args)
        {
            ParseArguments(args);

            if (isProcessingVerbose)
            {
                System.Console.WriteLine("Loading schema: " + schemaFileName);
            }
            XDocument schema = LoadXDocument(schemaFileName);

            Validator validator = CreateValidator(phase, schema);

            foreach (var documentFileName in documentFileNames)
            {
                if (areViolationsVerbose)
                {
                    System.Console.WriteLine();
                }
                if (isProcessingVerbose)
                {
                    System.Console.WriteLine("Loading document: " + documentFileName);
                }
                XDocument document = LoadXDocument(documentFileName);
                System.Console.WriteLine(string.Format(
                                             "Performing {0} validation of document '{1}'.",
                                             (fullValidationEnabled ? "full" : "partial"),
                                             documentFileName));
                ValidatorResults results = validator.Validate(document, fullValidationEnabled);

                PrintResults(results);
            }
        }
Exemple #2
0
        public void SimpleValidation()
        {
            XDocument xSch = Resources.Provider.LoadXmlDocument("basics_sch.xml");
            XDocument xIn  = Resources.Provider.LoadXmlDocument("basics_xml.xml");

            Validator        validator = Validator.Create(xSch);
            ValidatorResults results   = validator.Validate(xIn, true);

            Assert.True(results.IsValid);
        }
        public void SimpleValidation_InvalidInstance()
        {
            XDocument xSch = Resources.Provider.LoadXmlDocument("absrules_sch.xml");
            XDocument xIn  = Resources.Provider.LoadXmlDocument("absrules_xml_invalid.xml");

            Validator        validator = Validator.Create(xSch);
            ValidatorResults results   = validator.Validate(xIn, true);

            Assert.False(results.IsValid);
        }
Exemple #4
0
        /// <summary>
        /// Validates the input XML service configuration file providing
        /// detailed validation results.
        /// </summary>
        /// <param name="xConfig">XML service configuration file</param>
        /// <param name="results">Results of validation</param>
        public static bool IsValid(XDocument xConfig, out ValidatorResults results)
        {
            XDocument xSchema = Resources.Provider.LoadConfigSchema();

            // validation
            Validator validator = Validator.Create(xSchema);
            results = validator.Validate(xConfig, true);

            return results.IsValid;
        }
        public void ValidateGoodDocument()
        {
            XDocument xSchema   = Resources.Provider.LoadXmlDocument(BASIC_SCHEMA);
            XDocument xDocument = Resources.Provider.LoadXmlDocument(BASIC_DOCUMENT);

            Validator validator = Validator.Create(xSchema);

            Assert.NotNull(validator);

            ValidatorResults results = validator.Validate(xDocument, true);

            Assert.True(results.IsValid);
        }
        public void SimpleValidation()
        {
            XDocument xSch = Resources.Provider.LoadXmlDocument("inclusions_sch.xml");
            XDocument xIn  = Resources.Provider.LoadXmlDocument("inclusions_xml.xml");

            ValidatorSettings settings = new ValidatorSettings();

            settings.InclusionsResolver = new InclusionsEmbededResourceResolver();
            Validator        validator = Validator.Create(xSch, settings);
            ValidatorResults results   = validator.Validate(xIn, true);

            Assert.True(results.IsValid);
        }
Exemple #7
0
        public void AddValidationError(string Message, string FieldName, ValidatorResultLevel Level, int errorCode)
        {
            if (Mode == ErrorMode.OneErrorPerField)
            {
                foreach (var Error in ValidatorResults)
                {
                    if (Error.FieldName == FieldName)
                    {
                        return;
                    }
                }
            }


            ValidatorResults.Add(new ValidatorResult(Message, FieldName, Level, errorCode));
        }
Exemple #8
0
        /// ***********************************************************
        /// <summary>
        /// Add a new validation error to the list of validation errors
        /// </summary>
        /// <param name="Message"></param>
        /// <param name="FieldName"></param>
        /// <param name="Level"></param>
        /// <param name="errorCode"></param>
        public void AddValidationError(string Message, string FieldName, ValidatorResultLevel Level, int errorCode)
        {
            // Should we only allow one error per fieldname?
            if (Mode == ErrorMode.OneErrorPerField)
            {
                // Check if an error for this fieldname already exists
                foreach (var Error in ValidatorResults)
                {
                    if (Error.FieldName == FieldName)
                    {
                        return;
                    }
                }
            }

            // If we get here, add the new item.
            ValidatorResults.Add(new ValidatorResult(Message, FieldName, Level, errorCode));
        }
        public void SimpleValidation_InvalidInstance()
        {
            XDocument xSch = Resources.Provider.LoadXmlDocument("inclusions_sch.xml");
            XDocument xIn  = Resources.Provider.LoadXmlDocument("inclusions_xml_invalid.xml");

            ValidatorSettings settings = new ValidatorSettings();

            settings.InclusionsResolver = new InclusionsEmbededResourceResolver();
            Validator validator = Validator.Create(xSch, settings);

            // full validation
            ValidatorResults results1 = validator.Validate(xIn, true);

            // partial validation
            ValidatorResults results2 = validator.Validate(xIn, false);

            Assert.False(results1.IsValid);

            Assert.False(results2.IsValid);
        }
Exemple #10
0
        private void PrintResults(ValidatorResults results)
        {
            System.Console.WriteLine("Validation result: the document " + (results.IsValid ? "IS" : "is NOT") + " valid.");
            if (!results.IsValid)
            {
                System.Console.WriteLine(string.Format("Violated assertions ({0}):",
                                                       results.ViolatedAssertions.Count()));
                int index = 0;
                foreach (var assertion in results.ViolatedAssertions
                         .OrderBy((info) => info.LinePosition)
                         .OrderBy((info) => info.LineNumber))
                {
                    index++;
                    if (areViolationsVerbose)
                    {
                        System.Console.WriteLine(string.Format(
                                                     @"
User message: {0}
Line number: {2}, Line position: {3}
Assertion type: {1}
XPath location: {4}
Pattern id: '{5}'
Rule id: '{7}'
Rule context: {6}",
                                                     assertion.UserMessage,
                                                     assertion.IsReport ? "report" : "assert",
                                                     assertion.LineNumber,
                                                     assertion.LinePosition,
                                                     assertion.Location,
                                                     assertion.PatternId,
                                                     assertion.RuleContext,
                                                     assertion.RuleId));
                    }
                    else
                    {
                        System.Console.WriteLine(string.Format("[{0}]: {1}", index, assertion.UserMessage));
                    }
                }
            }
        }
Exemple #11
0
        public void SimpleValidation()
        {
            XDocument xSch = Resources.Provider.LoadXmlDocument("phases_sch.xml");
            XDocument xIn  = Resources.Provider.LoadXmlDocument("phases_xml.xml");

            // #ALL
            ValidatorSettings settings = new ValidatorSettings();

            settings.Phase = "#ALL";
            Validator        validator = Validator.Create(xSch, settings);
            ValidatorResults results   = validator.Validate(xIn, true);

            Assert.True(results.IsValid);

            // #DEFAULT
            settings       = new ValidatorSettings();
            settings.Phase = "#DEFAULT";
            validator      = Validator.Create(xSch, settings);
            results        = validator.Validate(xIn, true);

            Assert.True(results.IsValid);

            // A
            settings       = new ValidatorSettings();
            settings.Phase = "A";
            validator      = Validator.Create(xSch, settings);
            results        = validator.Validate(xIn, true);

            Assert.True(results.IsValid);

            // B
            settings       = new ValidatorSettings();
            settings.Phase = "B";
            validator      = Validator.Create(xSch, settings);
            results        = validator.Validate(xIn, true);

            Assert.True(results.IsValid);
        }
Exemple #12
0
 private void PrintResults(ValidatorResults results)
 {
     System.Console.WriteLine("Validation result: the document " + (results.IsValid ? "IS" : "is NOT") + " valid.");
     if (!results.IsValid)
     {
         System.Console.WriteLine(string.Format("Violated assertions ({0}):",
             results.ViolatedAssertions.Count()));
         int index = 0;
         foreach (var assertion in results.ViolatedAssertions
             .OrderBy((info) => info.LinePosition)
             .OrderBy((info) => info.LineNumber))
         {
             index++;
             if (areViolationsVerbose)
             {
                 System.Console.WriteLine(string.Format(
     @"
     User message: {0}
     Line number: {2}, Line position: {3}
     Assertion type: {1}
     XPath location: {4}
     Pattern id: '{5}'
     Rule id: '{7}'
     Rule context: {6}",
                 assertion.UserMessage,
                 assertion.IsReport ? "report" : "assert",
                 assertion.LineNumber,
                 assertion.LinePosition,
                 assertion.Location,
                 assertion.PatternId,
                 assertion.RuleContext,
                 assertion.RuleId));
             }
             else
             {
                 System.Console.WriteLine(string.Format("[{0}]: {1}", index, assertion.UserMessage));
             }
         }
     }
 }
Exemple #13
0
 public int WarningCount()
 {
     return(ValidatorResults.Where(x => x.Level == ValidatorResultLevel.Warning).Count());
 }
Exemple #14
0
 public int ErrorCount()
 {
     return(ValidatorResults.Where(x => x.Level == ValidatorResultLevel.Error).Count());
 }
Exemple #15
0
 public void Clear()
 {
     ValidatorResults.Clear();
 }