private JSchema InternalGenerate(JArray json, JPath path)
        {
            if (json == null)
            {
                return(null);
            }

            return(new JSchema(JsonSchemaType.Array, JsonSchemaExtendedType.Array)
            {
                Id = path.ToString("/"),
                Field = path.ToString("."),
                Items = json.Aggregate(
                    new JSchema(JsonSchemaType.None, JsonSchemaExtendedType.None),
                    (schema, token) => schema.Merge(
                        InternalGenerate(token as JObject, path) ??
                        InternalGenerate(token as JValue, path) ??
                        InternalGenerate(token as JArray, path))
                    )
            });
        }