Extensions
Contains the JSON schema extension methods.
JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Utilities;
using System;
using System.Collections.Generic;
namespace Newtonsoft.Json.Schema
{
    [Obsolete("JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.")]
    public static class Extensions
    {
        [Obsolete("JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.")]
        public static bool IsValid(this JToken source, JsonSchema schema)
        {
            bool valid = true;
            source.Validate(schema, delegate {
                valid = false;
            });
            return valid;
        }
        [Obsolete("JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.")]
        public static bool IsValid(this JToken source, JsonSchema schema, out IList<string> errorMessages)
        {
            IList<string> errors = new List<string>();
            source.Validate(schema, delegate(object sender, ValidationEventArgs args) {
                errors.Add(args.Message);
            });
            errorMessages = errors;
            return errorMessages.Count == 0;
        }
        [Obsolete("JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.")]
        public static void Validate(this JToken source, JsonSchema schema)
        {
            source.Validate(schema, null);
        }
        [Obsolete("JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.")]
        public static void Validate(this JToken source, JsonSchema schema, ValidationEventHandler validationEventHandler)
        {
            ValidationUtils.ArgumentNotNull(source, "source");
            ValidationUtils.ArgumentNotNull(schema, "schema");
            using (JsonValidatingReader jsonValidatingReader = new JsonValidatingReader(source.CreateReader())) {
                jsonValidatingReader.Schema = schema;
                if (validationEventHandler != null)
                    jsonValidatingReader.ValidationEventHandler += validationEventHandler;
                while (jsonValidatingReader.Read()) {
                }
            }
        }
    }
}