JsonSchema: использование типа / формата с двоичными данными - PullRequest
0 голосов
/ 12 января 2019

Мне нужна система для описания типов входных и выходных данных. Тип может быть типом примитива, таким как «целое число» или «строка», или пользовательским типом, таким как «модель TensorFlow» или «таблица CSV». Свойства проверки, которые я добавляю в свойства проверки данных, которые очень похожи на свойства проверки JsonSchema.

Возможно, было бы неплохо описать входные и выходные типы данных с использованием языка JsonSchema. Какой лучший способ сделать это?

Я имел в виду нечто подобное:

{"inputs": {
  "model": {"type": "binary", "format": "TensorFlow model", "required": "true"},
  "rounds": {"type": "integer", "minimum": 1, "default": 100}
}}

P.S. Я считаю, что использование type и format действительно сбивает с толку. Типы являются основными и общими, а форматы - конкретными. Мои ассоциации противоположны. Обычно у вас есть много специализированных типов, которые можно выразить в одном из немногих форматов.

1 Ответ

0 голосов
/ 14 января 2019

Основной целью JSON Schema является предоставление формата данных JSON.

Документы спецификации проверки (черновик-7) format частично представлены следующим образом:

Реализации МОГУТ добавлять пользовательские атрибуты формата. Сохранить для соглашения между сторонами, авторы схемы НЕ ДОЛЖНЫ ожидать равноправия реализация для поддержки этого ключевого слова и / или пользовательского формата
атрибутов.

https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7.1

Это означает, что вы можете добавить любой формат, который хотите, но вы не можете ожидать, что он будет работать в другом месте. Вам следует заключать соглашения (или документировать то, что вы имеете в виду) с кем-либо, кто, как вы ожидаете, сможет использовать ваши схемы для проверки предоставленных вами данных.

...