Why don't you use context.Schema
directly ?
It skips re-parsing but still validates against the original schema.
And you won't even need to convert into the string
public override void Validate(JToken value, JsonValidatorContext context)
{
if (value.IsValid(context.Schema))
{
ValidateInternal(value, context);
}
}