public static function getAllSchemas()
    {
        // registry schema
        $registrySchemaFilename = dirname(__FILE__).'/Validators/schemas/registry.json';
        $registry = [
            (object) [
                'id' => 'registry',
                'schema' => 'https://specs.frictionlessdata.io/schemas/registry.json',
                'schema_path' => 'registry.json',
            ],
        ];
        // schemas from the registry (currently contains only the datapackage scheams)
        $schemaIds = [];
        if (file_exists($registrySchemaFilename)) {
            foreach (json_decode(file_get_contents($registrySchemaFilename)) as $schema) {
                $schemaIds[] = $schema->id;
                $registry[] = $schema;
            }
            // resource schemas - currently not in the registry
            foreach (['data-resource', 'tabular-data-resource'] as $id) {
                if (!in_array($id, $schemaIds)) {
                    $registry[] = (object) [
                        'id' => $id,
                        'schema' => "https://specs.frictionlessdata.io/schemas/{$id}.json",
                        'schema_path' => "{$id}.json",
                    ];
                }
            }
        }
        // custom registered schemas
        foreach (static::$registeredSchemas as $profile => $schema) {
            $registry[] = (object) [
                'id' => $profile,
                'schema_filename' => $schema['filename'],
            ];
        }

        return $registry;
    }