in src/Json.Schema.Validation/Validator.cs [88:143]
private void ValidateToken(JToken jToken, JsonSchema schema)
{
if (!TokenTypeIsCompatibleWithSchema(jToken.Type, schema.Type))
{
AddResult(jToken, ErrorNumber.WrongType, FormatSchemaTypes(schema.Type), jToken.Type);
return;
}
switch (jToken.Type)
{
case JTokenType.String:
ValidateString((JValue)jToken, schema);
break;
case JTokenType.Integer:
case JTokenType.Float:
ValidateNumber((JValue)jToken, schema);
break;
case JTokenType.Object:
ValidateObject((JObject)jToken, schema);
break;
case JTokenType.Array:
ValidateArray((JArray)jToken, schema);
break;
default:
break;
}
if (schema.Enum != null)
{
ValidateEnum(jToken, schema.Enum);
}
if (schema.AllOf != null)
{
ValidateAllOf(jToken, schema.AllOf);
}
if (schema.AnyOf != null)
{
ValidateAnyOf(jToken, schema.AnyOf);
}
if (schema.OneOf != null)
{
ValidateOneOf(jToken, schema.OneOf);
}
if (schema.Not != null)
{
ValidateNot(jToken, schema.Not);
}
}