Проблема со схемой JSON

Я пытаюсь задать правильную JSON-схему для валидации JSON-структуры ниже:

[
    {
        "20220217.txt": {
            "file_initial_mdtm": 20220220012521,
            "file_initial_size": 1986,
            "file_modified_mdtm": 20220220012823,
            "file_modified_size": 1987,
            "file_downloaded": true,
            "file_modified": true,
            "file_uploaded": true,
            "file_initial_hash": "123456efghih",
            "file_modified_hash": "456786efghih"
        }
    },
    {
        "20220218.txt": {
            "file_initial_mdtm": 20220220012521,
            "file_initial_size": 1983,
            "file_modified_mdtm": 20220220012823,
            "file_modified_size": 1987,
            "file_downloaded": true,
            "file_modified": true,
            "file_uploaded": true,
            "file_initial_hash": "123456efghih",
            "file_modified_hash": "456786efghih"
        }
    }
]

Каким-то образом валидация всегда успешна (jsonschema.validate()) даже если я меняю типы атрибутов группы properties, чего по дизайну быть не должно.

 __json_schema = {
        'type': 'array',
        'items': {
            "type": "object",
            "patternProperties": {
                "^[0-9]+.txt$": {
                    "type": "object",
                    'properties': {
                        'file_initial_mdtm': {'type': 'number'},
                        'file_initial_size': {'type': 'number'},
                        'file_modified_mdtm': {'type': 'number'},
                        'file_modified_size': {'type': 'number'},
                        'file_downloaded': {'type': 'boolean'},
                        'file_modified': {'type': 'boolean'},
                        'file_uploaded': {'type': 'boolean'},
                        'file_initial_hash': {'type': 'string'},
                        'file_modified_hash': {'type': 'string'}
                    }
                }
            }
        }
    }

Очевидно, в схеме какие-то проблемы, но я не могу до конца понять, какие именно. Прошу помощи :-)


Ответы (0 шт):