«Схема-шема… а кто ж его разберет?», или зачем коммерческому сайту микроразметка Schema.org
SEO
12 июня 2023
Одним из обязательных пунктов нашего чек-листа по SEO является проверка наличия или отсутствия микроразметки Schema.org. В большинстве случаев она действительно есть (исключение составляют новые либо очень старые сайты), и тогда условие формально можно считать выполненным. Но способствует ли этот необходимый минимум поисковому продвижению или существует чисто для галочки – вопрос, который должен себе задать любой владелец сайта.
Что такое микроразметка Schema.org и для чего она нужна
Schema.org – это стандарт семантической разметки данных для более понятного и структурированного их представления. Внедрение разметки позволяет поисковым системам вычленить из всего массива информацию, чтобы наиболее удобно и даже симпатично представить ее в органической выдаче. Сайт, данные которого структурированы, выгодно отличается от конкурентов в результатах поиска и может претендовать на высокий CTR.
Сам по себе показатель кликабельности (CTR) ничего не значит, но в контексте борьбы за внимание потенциальной аудитории оказывается важным. Чем выше его значение, тем больше вероятность, что пользователь перейдет на ваш ресурс. В перспективе посетитель станет покупателем, и если его все устроит в продукте или услуге, то он еще не раз вернется для заказа.
Таким образом, микроразметка увеличивает привлекательность сниппета (блок информации о сайте в результатах поиска), что влияет на бизнес-показатели. Но не стоит думать, что покупки на вашем сайте зависят только от наличия Schema. Это лишь один из факторов, помогающих пользователям выбрать ваш ресурс в первую очередь. Каким бы привлекательным не был сниппет, конечное решение будет принято на основании ценностного предложения и информации на сайте. Если ваш продукт решает проблему, то вас выберут.
Что размечают в первую очередь
Как я уже сказала, есть джентельменский набор данных – необходимый минимум, который размечают все.
Хлебные крошки
Навигационная цепочка, или хлебные крошки, Breadcrumbs, – это последовательность ссылок на категории сайта, к которым относится найденная страница. Такая цепочка помогает не только оценить предлагаемую информацию, но и понять, соотносится ли она с искомым.
Если на сайте хлебные крошки представлены в удобном виде, то в поисковой выдаче они обычно выглядят как обрезанный URL. Чтобы им придать читаемый вид, применяется микроразметка.
Информация о компании
Разметка данных типа Organization позволяет вывести в сниппет информацию, по которой можно идентифицировать компанию и связаться с ней. При наличии профиля в Яндекс Бизнесе и Google Мой Бизнес необходимость структурирования таких сведений отпадает, поскольку данные подтягиваются из карточки организации.
Товары
Разметка типа Product часто применяется к товарам интернет-магазина, но в большинстве своем размечают техническую информацию, которая и так бы выводилась в сниппете. Куда как интереснее, когда размечают цену, изображения и другие характеристики, о которых я скажу ниже.
Что забывают разметить или не знают, что можно
Изображения
Разметка Image поможет вывести в сниппет изображение товара или услуги, что выделит ваш сайт среди конкурентов.
Видео
Разметка видео и выполнение требований к плееру позволит добиться в выдаче сниппета с видео, т.е. пользователь сможет ознакомиться с содержанием ролика, не заходя на сайт.
Не стоит бояться, что такое решение уменьшит количество трафика на ресурс. Если пользователя заинтересовал контент, то после просмотра видео он перейдет на ваш сайт, чтобы посмотреть, а что еще интересного и полезного для него есть.
Вопрос-ответ
Позволяет структурировано отобразить ответ в поисковой выдаче по вопросу пользователя. Не путать с блоком «Быстрые ответы» или «Похожие ответы». Может применяться, когда по определенному запросу поисковые системы подставляют автоматически выбранные куски текстов со страницы.
Услуги
Разметить услуги как Product, почему бы и нет? К тому же в официальной справке указано, что такой тип данных подойдет и для продуктов, и для услуг. Это значит, что вы можете выделиться в поисковой выдаче, ведь в сниппете будет цена, изображение и структурированные данные об услуге.
Таблицы
Эта разметка больше нацелена на Google, поскольку именно там я встречала вариант сниппета в виде таблицы. Такой тип данных позволяет ознакомиться с составом товаров и услуг прежде, чем перейти на сайт. Если пользователя заинтересует ваше предложение, то он кликнет, поскольку ему нужно будет узнать ваши контактные данные для связи и сделать заказ.
Рейтинг и отзывы
Благодаря AggregateRating в сниппете будет отображаться рейтинг и количество отзывов на товар, что несомненно добавит привлекательности вашему ответу на запрос пользователя.
Примеры микроразметки
Итоги по микроразметке Schema.org
Количество типов и свойств, доступных для разметки, постоянно растет. Микроразметку Schema.org для формирования выдачи используют популярные поисковые системы (Яндекс, Google, Bing, Yahoo), поэтому не применять ее для увеличения привлекательности своего сниппета – проиграть в битве за внимание пользователя.
Автор: Комолых Марина, руководитель отдела маркетингаУстановка и проверка микроразметки schema.org для картинок на DLE
Если кто помнит, остановился я на вебматере гугла и яндекса. Продолжая изучать вебмастер гугла, я наткнулся на ещё пару проблем с моим сайтом. Это семантическая микро разметка schema.org.
Эта разметка нужна для лучшего восприятия статьи поискавиками. То есть к определенным элементам статьи приписываются теги — маркеры. Этими элементами могут быть название статьи, описание, картинка в статье, телефон, имя и фамилия автора и тд. И когда вы начинаете искать с помощью яндекса и гугла, после того как нажимаете «искать» или «Enter», вам показывают результат поиска. И мы видим следующее:
Как вы видите в выдаче в некоторых пунктах есть картинки, звезды рейтинга, и ещё может быть другая структурированная информация. Так вот, чтобы страницы вашего сайта тоже так отображались в поисковой выдаче, нужна микроразметка schema.org.
Есть специальный сайт где подробно описаны все виды этой разметки, и для авторских сайтов, кинопорталов, игровых порталов, кулинарных сайтов, бизнес порталов, и тд.
Что такое микроразметка schema.org я думаю вы немного поняли из выше сказаного. И я в вебмастере в разделе «Вид в поиске» -> «Полезные советы» наткнулся на такие ошибки:
Вебмастер показывает мне что у меня на сайте есть 60 статей, у которых к картинкам в них не прописана разметка image, и это гугл считает критической ошибкой. Почему?
Я думаю так, в поисковой выдаче мой сайт будет отображаться без картинки. А это очень сильно повлияет на посещаемость моего сайта. Вот смотрите: на какую ссылку вы нажмете в этой поисковой выдаче? Я бы кликнул на третью!
Разметка к картинкам в DLE устанавливается следующим образом. Нужно открыть файл движка /engine/classes/parse.class.php и заменить следующие строки:
Находим:
if( $align == '' ) return "<!--TBegin:{$info}--><a href=\"$gurl\" onclick=\"return hs.expand(this)\" ><img src=\"$url\" {$alt} /></a>{$caption}<!--TEnd-->"; else return "<!--TBegin:{$info}--><a href=\"$gurl\" onclick=\"return hs.expand(this)\" ><img src=\"$url\" style=\"float:{$align};\" {$alt} /></a>{$caption}<!--TEnd-->";
И заменяем на:
if( $align == '' ) return "<!--TBegin:{$info}--><a itemscope itemtype=\"http://schema.org/ImageObject\" href=\"$gurl\" onclick=\"return hs.expand(this)\" ><img itemprop=\"contentUrl\" src=\"$url\" {$alt} /></a>{$caption}<!--TEnd-->"; else return "<!--TBegin:{$info}--><a itemscope itemtype=\"http://schema.org/ImageObject\" href=\"$gurl\" onclick=\"return hs.expand(this)\" ><img itemprop=\"contentUrl\" src=\"$url\" style=\"float:{$align};\" {$alt} /></a>{$caption}<!--TEnd-->";
В этом же файле находим ещё вот такие строки:
if( $align == '' ) return "<!--dle_image_begin:{$info}--><img src=\"{$url}\" {$alt} /><!--dle_image_end-->";else return "<!--dle_image_begin:{$info}--><img src=\"{$url}\" style=\"float:{$align};\" {$alt} /><!--dle_image_end-->";
И заменяем их на такие:
if( $align == '' ) return "<!--dle_image_begin:{$info}--><a itemscope itemtype=\"http://schema.org/ImageObject\"><img itemprop=\"contentUrl\" src=\"{$url}\" {$alt} /></a><!--dle_image_end-->";else return "<!--dle_image_begin:{$info}--><a itemscope itemtype=\"http://schema.org/ImageObject\"><img itemprop=\"contentUrl\" src=\"{$url}\" style=\"float:{$align};\" {$alt} /></a><!--dle_image_end-->";
Всё! Сохраняем и закидываем на сервер.
Ну а теперь чтобы изменения увидеть изменения, и к картинкам приписывалась разметка «image», нужно зайти в админку сайта, найти раздел «Перестроение публикаций» и жмем на Перестроение публикаций, если у вас их мало, процесс пройдет быстро.
PS: На более поздние версии тоже подходит такой метод добавления разметки. Проверено на версии ДЛЕ 11.1.
Как установилась разметка можно проверить в вебмастере гугла или яндекса, сейчас рассмотрим оба способа:
В вебмастере яндекса выбираем «Инструменты», далее «Микроразметка», видим следующее:
Это такой раздел где можно проверить правильно ли у на вашем сайте установлена микроразметка, или проверить установлена она вообще.
Тут всё просто и понятно, можно и так догадаться что куда вставлять. Копируете адрес какой0нибудь статьи своего сайта и вставляете в соответствующее поле, и жмёте «Проверить».
Теперь Гугл. Выбираете раздел «Другие ресурсы» и жмёте «Инструмент проверки структурированных данных».
Загрузится вот такая страница для проверки, здесь я думаю тоже всё понятно что куда копировать и что нажимать.
Вот таким образом я установил и проверил микроразметку на DLE 10.6 — 11.1 версиях.
реализаций | Схема JSON
ПРИМЕЧАНИЕ. На этой странице перечислены реализации с поддержкой (или активные разработки) для draft-06 или более поздней версии.
Информацию о реализациях, поддерживающих только версию draft-04 или более раннюю, или которые больше не находятся в разработке, см. на странице «Устаревшие реализации».
- Валидаторы
- Бенчмарки
- Документация API
- Ссылка Описание Утилиты объекта
- Генераторы схем
- Из кода
- Из данных
- Начиная с модели
- Генераторы из схем
- Генерация кода
- Поколение веб-интерфейса
- Данные из схем
- Коммунальные услуги
- Общая обработка Схема
на схему- Перенос проекта схемы
- Преобразователи форматов
- Тестирование
- Редакторы
- Генераторы документации
- Хранилища схем
- Схема Линтер
- Гиперсхема
Приведенные ниже реализации написаны на разных языках и частично или полностью поддерживают по крайней мере одну последнюю версию спецификации.
Реализации классифицируются на основе их функциональных возможностей. Когда известно, также упоминается лицензия проекта.
Если у вас есть обновления для этого списка, сделайте запрос на вытягивание в репозитории GitHub.
Листинг не означает рекомендацию или одобрение любого рода.
Валидаторы #
Контрольные показатели #
Здесь могут быть перечислены эталонные тесты, которые сравнивают как минимум две реализации, поддерживающие draft-06+.
- Перейти
- validator-benchmarks — тест валидаторов Go JSON Schema на основе официального набора тестов
- JavaScript
- json-schema-benchmark — независимый тест для валидаторов JSON-схемы Node.js на основе JSON-Schema Test Suite (MIT)
- PHP
- php-json-schema-bench — сравнительный тест для валидаторов PHP с JSON-схемой с использованием JSON-Schema Test Suite и z-schema/JSCK (MIT)
Документация по API #
- JavaScript
- @cloudflare/doca (инструменты схемы JSON), draft-04, -06, -07 и расширения Doca (ожидается пользовательский интерфейс)
- @adobe/jsonschema2md упрощает задачу, предоставляя ряд сценариев, которые могут превращать файлы схемы JSON в удобочитаемую документацию Markdown, готовую для использования на GitHub или обработанную с помощью Jekyll или других генераторов статических сайтов.
- Питон
- FastAPI (MIT) — это платформа API, основанная на типах Python 3.6+, которая генерирует OpenAPI 3 схем, включая схем JSON для всех заявленных моделей.
Ссылка Описание Утилиты объекта #
- JavaScript
- @cloudflare/json-hyper-schema draft-07, -06, -04 (BSD-3-пункт)
Генераторы схем #
Генераторы схем не должны поддерживать создание каждого ключевого слова схемы. Для генераторов схем совместимость с черновиком означает, что:
- Созданные схемы явно задают черновик с помощью
$schema
- В созданных схемах отсутствует
$schema
, но они действительны по отношению к соответствующей метасхеме
Например, единственные несовместимости между draft-04 и draft-06 включают эксклюзивный минимум
, эксклюзивный максимум
и id
против $id
. Если генератор не устанавливает
$schema
и никогда не выдает эти ключевые слова, то он совместим с draft-06, даже если он был написан с учетом draft-04.
Из кода #
- .NET
- Json.NET (AGPL-3.0) — генерирует схемы из типов .NET
- NJsonSchema — (Ms-PL) — генерирует схемы из типов .NET, см. проблему 574, чтобы узнать о прогрессе поддержки draft-06+
- JsonSchema.Net.Generation (MIT) — генерирует схемы из типов .NET
- Перейти
- jsonschema — (MIT) — генерировать схемы из структур Go. Поддерживает проект 2020-12.
- PHP
- Liform (MIT) — генерирует схемы из форм Symfony
- машинописный текст
- машинопись-json-схема
- Питон
- Pydantic (MIT) — генерирует схемы из моделей Python на основе подсказок типов Python 3.
6+.
- msgpec (BSD-3-Clause) — генерирует схемы из аннотаций типов Python.
- mashumaro (Apache 2.0) — генерирует схемы из аннотаций типа Python
- Pydantic (MIT) — генерирует схемы из моделей Python на основе подсказок типов Python 3.
- Ява
- jsonschema-generator (Apache 2.0) — генерирует схемы из типов Java поддерживает Draft 7 и Draft 2019-09
- Скала
- scala-jsonschema (Apache 2.0) — генерирует схему из классов случаев Scala
- Рубин
- Shale (MIT) — генерирует схему из моделей Ruby поддерживает Draft 2020-12
- Ржавчина
- Schemars (MIT) — генерирует схему из кода Rust поддерживает Draft 7
Из данных #
- Ява
- saasquatch/json-schema-inferrer 2020-12, 2019-09, draft-07, draft-06, draft-04 (Apache 2.0) — библиотека Java для вывода схем JSON из одного или нескольких образцов JSON.
- saasquatch/json-schema-inferrer 2020-12, 2019-09, draft-07, draft-06, draft-04 (Apache 2.0) — библиотека Java для вывода схем JSON из одного или нескольких образцов JSON.
- Скала
- Schema Guru (Apache 2.0) — утилита CLI, Spark Job и веб-интерфейс для получения схем JSON из корпуса экземпляров JSON; см. выпуск 178, чтобы узнать о ходе работы над поддержкой Draft-06+
- JSONoid (MIT) — инструмент командной строки и приложение Spark для вывода схем из документов JSON, поддерживает проект 2019-09
- Кложур
- luposlip/json-schema (Apache 2.0) — вывести схему JSON из данных Clojure
- Онлайн (веб-инструмент)
- jsonschema.net — генерирует схемы из примеров данных
- Онлайн-инструменты Liquid — вывод схемы JSON из образца данных JSON
- quicktype.io — вывод схемы JSON из образцов и создание типов TypeScript, C++, go, Java, C#, Swift и т. д. из схемы JSON
От модели №
- Dataspecer — генерирует схему JSON (и контекст JSON-LD) из концептуальной модели поддерживает Draft 2020-12
Генераторы из схем #
Инструменты, генерирующие артефакты из схем, не обязательно должны поддерживать каждое ключевое слово,
поскольку не все ключевые слова хорошо подходят для генеративных вариантов использования.
Генераторы считаются совместимыми с тягой, если они поддерживают (или мягко
игнорировать) соответствующий $schema
значение и интерпретировать ключевые слова, которые они
сделать поддержку в соответствии с этим проектом.
Например, если генератор, изначально написанный для draft-04, не
поддержка id
, эксклюзивный минимум
или эксклюзивный максимум
, тогда до тех пор, пока он это делает
не требует draft-04 $schema
, она совместима с draft-06, так как те
единственные ключевые слова, которые изменились.
Генерация кода #
- Дотнет
- Corvus.JsonSchema — создает идиоматическую модель типа dotnet из файлов схемы JSON, поддерживая все функции схемы JSON, включая методы доступа к свойствам, перечисление, общий формат строки
System.Text.
. поддерживает проекты 6, 7, 2019-09 и 2020-12 .Json
- Corvus.JsonSchema — создает идиоматическую модель типа dotnet из файлов схемы JSON, поддерживая все функции схемы JSON, включая методы доступа к свойствам, перечисление, общий формат строки
- Вяз
- json-schema-to-elm — генерирует типы Elm, декодеры и кодировщики JSON и нечеткие тесты из одного или нескольких файлов схемы JSON с использованием dragonwasrobot/json_schema поддерживает проект 7
- Перейти
- go-jsonschema — генерирует типы Go и помощники из файлов схемы JSON поддерживает Draft 2020-12
- Ява
- jsonCodeGen (MIT) — задачи генерации на основе Groovy из схемы JSON. Уже включает шаблоны/генераторы для Java Beans, файлы спецификаций Swagger и диаграммы PlantUML.
- jsonschema2pojo (Apache 2.0) — генерирует типы Java из схемы JSON (или примера JSON) и может аннотировать эти типы для привязки данных с помощью Jackson 2.x или Gson. черновик-07
- jsonschematypes (Apache 2.0) — библиотека Java для создания классов Java или TypeScript из стандартных схем JSON.
Схема JSON 2019-09, черновик-07, -06, -04, -03
- jsongenerator Схема JSON 2019-09, draft-07, -06, -04, -03 (Apache-2.0)
- Котлин
- json-kotlin-schema-codegen (MIT) — генерирует классы данных Kotlin, классы Java или интерфейсы TypeScript из схемы JSON.
- Онлайн (веб-инструмент)
- quicktype.io — вывод схемы JSON из образцов и создание типов TypeScript, C++, go, Java, C#, Swift и т. д. из схемы JSON
- PHP
- php-code-builder (MIT) — генерирует структуры сопоставления PHP, определенные схемой JSON, с использованием swaggest/json-schema поддерживает Draft 7
- Питон
- yacg (MIT) — анализировать файлы JSON Schema и OpenApi для построения из них метамодели. Эту метамодель можно использовать в шаблонах Mako для генерации исходного кода, других схем или plantUml.
- statham (MIT) — создание моделей с аннотациями типов из документов JSON Schema.
- Ржавчина
- схема — генерирует типы Rust и код сериализации из схемы JSON. поддерживает проект 4
- Скала
- json-schema-to-case-class (MIT) — пакет NPM, веб-интерфейс и интерфейс командной строки для создания классов случаев Scala из схемы JSON. Поддерживает схему JSON 2019-09, draft-07, -06, -04, -03
- машинописный текст
- jsongenerator Схема JSON 2019-09, draft-07, -06, -04, -03 (Apache-2.0)
- Рубин
- Shale (MIT) — генерирует модели Ruby из схемы JSON. поддерживает Draft 2020-12 .
Генерация веб-интерфейса #
TODO: Сортировка по поддержке проекта.
Различные уровни поддержки создания пользовательского интерфейса, в основном из словаря проверки или в сочетании с конкретным определением пользовательского интерфейса.
- JavaScript
- Формы из альпаки (ASL 2.0)
- Форма угловой схемы (MIT)
- Форма схемы Angular2 , не связанная с формой схемы Angular (MIT)
- Angular6-json-схема-форма (MIT)
- Форма схемы Dashjoin JSON (Apache 2) draft-06 (минус oneOf, anyOf, allOf, not)
- Редактор JSON (MIT)
- Форма JSON (joshfire) (joshfire) (MIT)
- Json Forms (брутузин) (брутузин) (MIT)
- JSONForms (jsonforms.io) (EclipseSource) (MIT)
- Лиформ-реакт (MIT)
- Форма схемы React JSON (mozilla) (Apache 2)
- Форма схемы React Json (Mui) (MIT)
- Форма схемы React (networknt) (MIT)
- Форма схемы пространства отдыха (MIT)
- униформа (Вазко) (MIT)
- Схема пользовательского интерфейса для React (MIT) 2019-09 / draft-08, -07, -06, -04 (несовместимый тип
= целое число
)
Данные со схем #
- .
Нет
- JsonSchema.Net.DataGeneration (MIT) Генерация данных из схем JSON с помощью библиотеки генерации тестовых данных Bogus.
- Питон
- гипотеза-jsonschema (MPL) draft-07, -06, -04 ; принимает любую схему, даже со сложными и взаимодействующими ограничениями, и возвращает стратегию Hypothesis, которая может генерировать действительные документы для тестирования.
- Ява
- jsongenerator Схема JSON 2019-09, draft-07, -06, -04, -03 (Apache-2.0)
Утилиты #
Совместимость с проектами коммунальных услуг обычно зависит от цели полезность, и решается в каждом конкретном случае.
Общая обработка #
- JavaScript
- json-schema-ref-parser (MIT) Инструменты для разыменования нециклических схем, объединения связанных схем в один файл и другой обработки
$ref
. - json-schema-library (MIT) — Предоставляет инструменты для работы с json-схемой, в том числе: создание данных из json-схемы, обработка
$ref
, просмотр схем и т. д. - @cloudflare/json-schema-walker (инструменты JSON Schema Tools), draft-07, -06, -04 и расширения Doca от Cloudflare Обходит схемы и выполняет предварительные и постобходные обратные вызовы. Может изменять схемы на месте. (Статья BSD-3)
- @hyperjump/json-схема-ядро (MIT) Инструменты для работы со схемами, обрабатывающими идентификаторы и Рекомендации. Создавайте словари и другие инструменты на основе схемы JSON.
- json-schema-ref-parser (MIT) Инструменты для разыменования нециклических схем, объединения связанных схем в один файл и другой обработки
Схема к схеме #
- JavaScript
- @cloudflare/json-schema-transform (JSON Schema Tools), (BSD-3-Clause) Утилиты, использующие @cloudflare/json-schema-walker для преобразований, включая
allOf
слияние и пример объединения. - mokkabanna/json-schema-merge-allof (MIT)
- mokkabanna/json-схема-сравнить (MIT)
- loganvolkers/json-schema-resolve-allof ( лицензия не указана )
- JSON-Схема-Инстантиатор (MIT)
- @cloudflare/json-schema-transform (JSON Schema Tools), (BSD-3-Clause) Утилиты, использующие @cloudflare/json-schema-walker для преобразований, включая
Миграция проекта схемы #
- JavaScript
- AlterSchema Схема JSON 2020-12, 2019-09, осадка-07, -06, -04
Преобразователи форматов #
- OpenAPI
- Схема JSON для схемы OpenAPI draft-04 Draft-06 и -07 запланированы согласно README (MIT)
- Спецификация OpenAPI для JSON Schema Draft-07 (MIT)
- Санитар
- Дежурный (BSD-3-Статья)
- РАМЛ
- ramldt2jsonсхема черновик-06, 04 (Apache-2.0)
- Веб-пакет
- @cloudflare/json-schema-ref-loader (инструменты схемы JSON), (BSD-3-Clause) загрузчик Webpack для разыменовываемых схем в JSON, JSON5, YAML или JavaScript
- @cloudflare/json-schema-apidoc-loader (инструменты схемы JSON), серверная часть для @cloudflare/doca, draft-04, -06, -07 и расширения Doca
- XSD
- Oxygen XSD to JSON Schema — создание из файла XSD аналогичной структуры схемы JSON.
- Плагин XSD to JSON Schema IntellJ — плагин для преобразования файла схемы XML (XSD) в файл схемы JSON.
- Oxygen XSD to JSON Schema — создание из файла XSD аналогичной структуры схемы JSON.
Тестирование #
- Питон
- гипотеза-jsonschema (MPL) draft-07, -06, -04 ; принимает любую схему, даже со сложными и взаимодействующими ограничениями, и возвращает стратегию Hypothesis, которая может генерировать действительные документы для тестирования.
Редакторы #
- Altova XMLSpy 2019r3 — Графический редактор схемы JSON для draft-06 и draft-7, а также проверка файлов JSON на основе схемы JSON
- Редактор схемы JSON Dashjoin — Графический онлайн-редактор схемы JSON для проекта-06 (минус oneOf, anyOf, allOf, not). Сгенерированную схему можно сразу протестировать через управляемую ею форму.
- Студия Хаколейд — Редактор Visual JSON Schema для draft-04, draft-06, draft-07, 2019-09, 2020-12, а также инструмент моделирования данных для баз данных NoSQL, форматов хранения, REST API и JSON в РСУБД.
Также конвертирует в и из: различных предварительных спецификаций, DDL, XSD, Swagger, OpenAPI, YAML, Avro, Parquet, Protobuf и большинства синтаксисов сценариев NoSQL. Включает графический интерфейс для диаграмм отношений объектов и интерфейс командной строки.
- JSONBuddy — Редактор и средство проверки JSON для текста и сетки. Полная среда разработки JSON Schema с анализатором JSON Schema, контекстно-зависимыми помощниками ввода, созданием образцов данных на основе JSON Schema и отладчиком проверки JSON Schema: пройдите процесс проверки и установите контрольные точки. Инструмент тестирования схемы JSON, включая покрытие схемы. Поддержка драфт-4, драфт-6, драфт-7, 2019-09 и 2020-12.
- JSONEditor Online — Просмотр, редактирование, форматирование и проверка JSON в Интернете Поддержка черновика 4, черновика 6 и черновика 7.
- Liquid JSON Schema Editor — Графический редактор схемы JSON для draft-04, draft-06, draft-07 и 2019-09, с разделенным исходным кодом и графическим редактированием.
Включает проверку файлов JSON на основе схемы JSON, генератора образцов JSON и генератора документации схемы JSON.
- Редактор схемы Oxygen JSON — Редактор схемы JSON с различными функциями редактирования и вспомогательными представлениями (Дизайн/Текст/Автор). Поддержка проверки и редактирования черновиков схемы JSON-4, черновик-6 и черновик-7, 2019-09 (частично), 2020-12 (частично). Проверка и редактирование файлов JSON на основе схемы JSON.
- Perseid Modeler — инструмент моделирования для схемы JSON и OpenAPI. Основные функции включают в себя: визуальное создание схемы JSON с использованием древовидных и ERD-подобных диаграмм, поддержку структур схемы JSON, включая операторы и условия, импорт существующих схем из файлов, создание подробных отчетов в формате HTML, экспорт в PDF, создание сценариев и многое другое. Поддерживаемые версии: черновик 4, 6, 7, 2019 г.-09 и 2020-12
- Stoplight Studio — JSON Schema IDE (текстовый и графический интерфейс) с поддержкой линтинга JSON/YAML, который также может быть основан на правилах схемы JSON через Spectral.
Поддержка черновика-4, черновика-6 и черновика-7.
- Visual Studio Code — Завершение кода на основе схемы, наведение и проверка для редактирования файлов JSON (включая схемы)
- WebStorm, IntelliJ IDEA и другие IDE JetBrains — Завершение кода, документация и проверка файлов JSON и YAML с использованием схемы JSON. Поддержка черновика-4, черновика-6 и черновика-7.
- Eclipse IDE — версия Rich JSON, поддерживающая схему для мгновенной проверки и отчетов об ошибках, завершение, документирование.
Генераторы документации #
- docusaurus-json-schema-plugin — средство просмотра схемы. Работает в веб-приложении Docusaurus. Поддерживает черновик 7, 2019-09, черновик 2020-12
- json-schema-static-docs — создает удобную для человека документацию по уценке из схемы JSON. Включает ссылки между страницами на основе значений $ref. Поддерживает проект-7.
- jsonschematic — средство просмотра схемы на основе Svelte. Работает как локальное веб-приложение. Поддерживает проект-7.
- docson — средство просмотра схемы на основе Javascript. Работает как локальное веб-приложение. Поддерживает черновик-4.
- json-schema-for-humans — создание HTML-представления схемы. На основе Python. Поддерживает проект-7.
- oXygen JSON Schema Documentation — создание документации по схеме JSON в формате HTML, включая диаграммы.
- wetzel — генерирует Markdown и AsciiDoc. С некоторыми ограничениями поддерживает черновики-3, черновики-4, черновики-7 и 2020-12.
Репозитории схем #
- SchemaStore.org — проверка на соответствие общим схемам JSON
Схема линтера #
- json-schema-linter — Линтинг/проверка/анализ самой json-схемы и поиск опечаток, отсутствующих свойств, отсутствующих необходимых ключей и т.
д. Поддерживает проекты 4, 6 и 7.
- Stoplight Spectral — гибкий линтер JSON/YAML для создания автоматизированных руководств по стилю с встроенной поддержкой OpenAPI v2/v3 и JSON Schema. Поддерживает проекты 4, 6 и 7.
Гиперсхема #
- JavaScript
- mokkabonna/json-гипер-схема черновик-07 (МТИ)
Последнее обновление информации: 2022-08-31
- mokkabonna/json-гипер-схема черновик-07 (МТИ)
1Проверка схемы EdTech JSON 2019
Кандидат Финал Публика
Спецификация, версия 1.0
ПИС и уведомление о распространении
Получателям настоящего документа предлагается представить вместе с
комментарии, уведомление о любых соответствующих патентных притязаниях или другие
права интеллектуальной собственности, о которых им может быть известно, которые могут быть
нарушены любой реализацией спецификации, изложенной в этом
документа, а также предоставить подтверждающую документацию.
1EdTech не занимает никакой позиции в отношении действительности или объема каких-либо интеллектуальная собственность или другие права, которые, как может быть заявлено, принадлежат внедрение или использование технологии, описанной в этом документе, или степень, в которой любая лицензия в соответствии с такими правами может или не может быть доступный; это также не означает, что оно предприняло какие-либо усилия для определить любые такие права. Информация о процедурах 1EdTech в отношении на права в спецификациях 1EdTech можно найти на сайте 1EdTech Intellectual Веб-страница прав собственности: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
Использование данной спецификации для разработки продуктов или услуг регулируется лицензия с 1EdTech, найденная на веб-сайте 1EdTech: http://www.imsglobal.org/speclicense.html.
Всем сторонам разрешено использовать выдержки из этого документа. по мере необходимости при составлении запросов предложений.
Ограниченные разрешения, предоставленные выше, являются бессрочными и не будут отозвано 1EdTech или его преемниками или правопреемниками.
ЭТА СПЕЦИФИКАЦИЯ ПРЕДЛАГАЕТСЯ БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, И В ЧАСТНОСТИ, ОТ ЛЮБОЙ ГАРАНТИИ НЕНАРУШЕНИЯ ПРАВ ЯВНО ОТКАЗЫВАЕТСЯ. ЛЮБОЕ ИСПОЛЬЗОВАНИЕ НАСТОЯЩЕЙ СПЕЦИФИКАЦИИ ДОЛЖНО ОСУЩЕСТВЛЯТЬСЯ ПОЛНОСТЬЮ В СОБСТВЕННЫЙ РИСК ИСПОЛНИТЕЛЯ, И НИ КОНСОРЦИУМ, НИ КТО-ТО ЕГО ЧЛЕНЫ ИЛИ ПРЕДСТАВИТЕЛИ, , НЕСУТ ЛЮБОЙ ОТВЕТСТВЕННОСТИ ПЕРЕД ЛЮБЫМИ ИСПОЛНИТЕЛЬ ИЛИ ТРЕТЬЯ СТОРОНА ДЛЯ ЛЮБОГО УЩЕРБА ЛЮБОЙ ПРИРОДЫ, НАПРЯМУЮ ИЛИ КОСВЕННО В РЕЗУЛЬТАТЕ ИСПОЛЬЗОВАНИЯ НАСТОЯЩЕЙ СПЕЦИФИКАЦИИ.
Публичные комментарии, комментарии и вопросы можно размещать здесь: http://www.imsglobal.org/forums/ims-glc-public-forums-and-resources .
Аннотация
Метод проверки схемы учетных данных для проверяемых учетных данных с использованием [ JSON-SCHEMA-2019-09 ].
Метод проверки схемы учетных данных для проверяемых учетных данных с использованием [ JSON-SCHEMA-2019-09 ].
Это расширение проверки схемы данных для модели данных проверяемых учетных данных версии 1.1 . Используя это расширение, верификаторы могут проверять что структура и содержание проверяемых учетных данных соответствуют опубликованной схеме.
1.1 Заявления о соответствииА также разделы, помеченные как ненормативные, все авторские рекомендации, диаграммы, примеры и примечания в этой спецификации не являются нормативными. Все остальное в этой спецификации является нормативным.
Ключевые слова МОЖЕТ , ДОЛЖЕН , НЕ ДОЛЖЕН , ДОПОЛНИТЕЛЬНО , РЕКОМЕНДУЕТСЯ , ТРЕБУЕТСЯ , ДОЛЖЕН , НЕ ДОЛЖЕН , СЛЕДУЕТ , и НЕ ДОЛЖЕН в этом документе
следует интерпретировать, как описано в
[ RFC2119 ].
Реализация этой спецификации, которая не может реализовать ДОЛЖЕН/ТРЕБУЕТСЯ/ДОЛЖЕН соблюдать требование или не соблюдает НЕ ДОЛЖЕН/НЕ ДОЛЖЕН соблюдаться запрет считается несоответствующим. СЛЕДУЕТ/НЕ СЛЕДУЕТ/РЕКОМЕНДУЕТСЯ утверждения представляют собой наилучшую практику. Игнорирование передовой практики не нарушать соответствие, но решение игнорировать такое руководство должно тщательно обдумано. Операторы MAY/OPTIONAL указывают, что разработчики полностью свободны в выборе, реализовывать ли вариант или нет.
2. Терминология- Эмитент
- Организация или объект, сделавшие заявления о субъекте.
- Подтверждаемые учетные данные
- Учетные данные с защитой от несанкционированного доступа, чей эмитент может быть проверен криптографически.
- Верификатор
- Объект, который получает поддающиеся проверке учетные данные и проверяет учетные данные или представление, не был подделаны.
Если эмитент поддерживает проверку схемы учетных данных, ему СЛЕДУЕТ добавить свойство credentialSchema
к выданным им полномочиям. Значением свойства credentialSchema
является список из одного или нескольких объектов CredentialSchema.
Если эмитент поддерживает этот метод проверки схемы 1EdTech JSON 2019, свойство id
одного
Объект CredentialSchema ДОЛЖЕН быть URL-адресом файла схемы JSON для проверяемых учетных данных, а тип
свойство ДОЛЖЕН быть «1EdTechJsonSchemaValidator2019».
Чтобы проверить проверяемую схему данных учетных данных, верификатор отправляет запрос GET
на URL-адрес. файла схемы JSON, затем проверьте проверяемые учетные данные, как описано в
[ JSON-SCHEMA-VALIDATION-2019-09 ].
Все запросы ДОЛЖЕН выполняться по безопасному протоколу TLS 1.2 или 1.3.
Примечание
Если проверяемые учетные данные находятся в JSON Web Token Proof (VC-JWT), данные учетных данных, подлежащие проверке, находятся в vc
утверждение полезной нагрузки VC-JWT.Пример 1 : Пример использования средства проверки схемы 1EdTech JSON 2019
{ "id": "http://example.edu/credentials/3732", "тип": ["Учетные данные", "Удостоверение степени"], "эмитент": "https://example.edu/issues/14", "дата выпуска": "2010-01-01T19:73:24Z", "expirationDate": "2020-01-01T19:73:24Z" "credentialSubject": { ... } "Схема учетных данных": [{ "id": "https://example.edu/schema/credential.json, "тип": "1EdTechJsonSchemaValidator2019" }], "доказательство": { ... } }
Формат запроса
ПОЛУЧИТЬ {id}
Параметр URL | Тип параметра | Описание | Обязательно |
---|---|---|---|
идентификатор | URI | Это значение свойства id CredentialSchema.
объект. Схема HTTP ДОЛЖНА быть «https», а запрос ДОЛЖЕН выполняться по безопасному протоколу TLS 1.2 или 1.3. | Требуется |
Заголовок запроса | Описание | Требуется |
---|---|---|
Принять: application/json | Запрос ДОЛЖЕН принимать application/json . | Требуется |
Полезная нагрузка запроса
Отсутствует полезная нагрузка запроса.
Образец запроса
Пример 2 : Пример запроса
GET schema/credential.json HTTP/1.1 Хост: example.edu Принять: приложение/json
ответов
Код состояния HTTP | Тип полезной нагрузки | Описание | Требуется полезная нагрузка |
---|---|---|---|
200 | Строка | «ОК» — полезная нагрузка ДОЛЖНА быть совместима со схемой JSON с [ JSON-SCHEMA-2019-09 ]. | Требуется |
по умолчанию | Imsx_StatusInfo | Запрос недействителен или не может быть обслужен. Точная ошибка СЛЕДУЕТ быть объяснена в полезной нагрузке ответа. | Дополнительно |
Заголовок ответа | Описание | Обязательно |
---|---|---|
Тип содержимого: application/json | Content-Type СЛЕДУЕТ быть application/json .![]() | Требуется |
Пример ответа
Пример 3 : Пример ответа
HTTP/1.1 200 OK Тип содержимого: приложение/json; кодировка = utf-8 { "$ схема": "https://json-schema.org/draft/2019-09/schema#", "title" : "Схема JSON для класса DegreeCredential.", "тип": "объект", "характеристики" : { "идентификатор" : { "description" : "Уникальный URI для DegreeCredential.", "тип": "строка" } } }4. Модель данных 4.1 CredentialSchema
Укажите тип и расположение схемы данных.
Собственность | Тип | Описание | Множественность |
---|---|---|---|
идентификатор | УИН | Значение ДОЛЖНО быть URI, идентифицирующим схему, которая ДОЛЖНА соответствовать [ JSON-SCHEMA-2019-09 ].![]() | [1] |
тип | ИРИ | Имя метода службы проверки схемы. | [1] |
Этот класс может быть расширен дополнительными свойствами. |
Подтверждаемые учетные данные, как определено в [ VC-DATA-MODEL ].
Собственность | Тип | Описание | Множественность |
---|---|---|---|
@контекст | УИН | Значение свойства @context ДОЛЖНО быть упорядоченным набором, где первым элементом является URI со значением «https://www.w3.org/2018/credentials/v1». | [1..*] |
идентификатор | УИН | Однозначная ссылка на учетные данные.![]() | [0..1] |
тип | ИРИ | Значение свойства типа ДОЛЖНО быть неупорядоченным набором. Одним из элементов ДОЛЖЕН быть идентификатор URI VerifyingCredential. | [1..*] |
эмитент | Эмитент | Описание лица, юридического лица или организации, выдавших учетные данные. | [1] |
Дата выпуска | ДатаВремя | Отметка времени, когда были выданы учетные данные. | [1] |
CredentialSubject | CredentialSubject | Предмет удостоверения. | [1] |
схема учетных данных | Схема учетных данных | Одна или несколько CredentialSchemas, которые предоставляют достаточно информации, чтобы определить, соответствуют ли предоставленные данные предоставленной схеме.![]() | [0..*] |
Этот класс может быть расширен дополнительными свойствами. |
Информация о субъекте проверяемых учетных данных.
Собственность | Тип | Описание | Множественность |
---|---|---|---|
идентификатор | УИН | id субъекта. | [1] |
Этот класс может быть расширен дополнительными свойствами. |
Информация о проверяемом издателе учетных данных.
Собственность | Тип | Описание | Множественность |
---|---|---|---|
идентификатор | УИН | id эмитента.![]() | [1] |
Этот класс может быть расширен дополнительными свойствами. |
Это контейнер для кода состояния и соответствующей информации, возвращаемой в сообщениях HTTP, полученных от поставщика услуг.
Собственность | Тип | Описание | Множественность |
---|---|---|---|
imsx_codeMajor | Перечисление Imsx_CodeMajor | Основное значение кода (из соответствующего перечисляемого словаря). | [1] |
imsx_severity | Перечисление Imsx_Severity | Значение серьезности (из соответствующего перечисляемого словаря). | [1] |
imsx_description | Струна | Удобочитаемое описание, предоставляемое объектом, создающим информацию о коде состояния.![]() | [0..1] |
imsx_codeMinor | Imsx_CodeMinor | Набор сообщаемых второстепенных кодов состояния кода. | [0..1] |
Это набор основных значений отчета о состоянии, т. е. основной код, присвоенный блоку состояния. Это используется в сочетании со структурой «Серьезность» в объекте состояния.
Срок | Описание |
---|---|
отказ | Указывает, что запрос транзакции не выполнен. Подробная причина будет указана в сопутствующих полях «codeMinor». |
обработка | Указывает, что запрос обрабатывается в пункте назначения или произошел локальный сбой передачи. Это значение используется в асинхронных службах. |
успех | Указывает, что запрос был успешно выполнен.![]() |
без поддержки | Указывает, что поставщик услуг не поддерживает запрошенную операцию. Это требуемый ответ по умолчанию для неподдерживаемой реализацией операции. |
Это контекст для значений отчета о состоянии. Это используется в сочетании со структурой CodeMajor в объекте состояния.
Срок | Описание |
---|---|
ошибка | При обработке запроса произошла катастрофическая ошибка, поэтому запрос не был выполнен (возможно, Поставщик услуг даже не получил запрос). |
статус | Запрос выполнен, ответ от поставщика услуг получен.![]() |
предупреждение | Запрос выполнен только частично. Для асинхронной службы следует ожидать дальнейшего ответа. |
Это контейнер для набора дополнительных кодов состояния кода, сообщаемых в ответах поставщика услуг.
Собственность | Тип | Описание | Множественность |
---|---|---|---|
imsx_codeMinorField | Imsx_CodeMinorField | Каждый сообщаемый код второстепенный код состояния. | [1..*] |
Это контейнер для второстепенного кода состояния с одним кодом.
Собственность | Тип | Описание | Множественность |
---|---|---|---|
imsx_codeMinorFieldName | Нормализованная строка | Он должен содержать идентификатор системы, выдавшей отчет о второстепенном коде состояния.![]() | [1] |
imsx_codeMinorFieldValue | Перечисление Imsx_CodeMinorFieldValue | Второстепенный код состояния кода (это значение из соответствующего перечисляемого словаря). | [1] |
Это набор кодов состояния codeMinor, которые используются для получения дополнительной информации о статусе завершения сквозной транзакции, т. е. его следует использовать для предоставления большего количества информации, чем было бы предоставляется HTTP-кодом.
Срок | Описание |
---|---|
запрещено | Это используется для указания того, что сервер доступен и может обработать запрос, но отказывается предпринимать какие-либо дальнейшие действия. Это будет сопровождаться значениями «codeMajor/severity» «failure/error» и для привязки REST HTTP-кодом «403».![]() |
полный успех | Запрос был полностью и успешно реализован поставщиком услуг. Для привязки REST это будет иметь HTTP-код ‘200’ для успешного запроса поиска. |
внутренняя_ошибка_сервера | Это следует использовать только в случае катастрофической ошибки и отсутствия более подходящего кода. Это будет сопровождаться значениями «codeMajor/severity» «сбой/ошибка» и для привязки REST HTTP-кодом «500». |
неверные_данные | Это условие ошибки может возникнуть, если тело запроса/ответа JSON содержит корректные (то есть синтаксически правильные), но семантически ошибочные инструкции JSON. Это будет сопровождаться значениями «codeMajor/severity» «failure/error» и кодом HTTP «422». |
недопустимый_параметр_запроса | Указано недопустимое поле параметра запроса данных, и запрос не может быть обработан.![]() |
неправильный_запрос | Это используется для указания того, что запрос был сделан с использованием протокола, который не поддерживается сервером. Это будет сопровождаться значениями «codeMajor/severity» «failure/error» и для привязки REST HTTP-кодом «421». |
неприемлемо | Это используется для указания того, что сервер не может предоставить ответ с Content-Type, который соответствует любому из типов контента в заголовке Accept запроса. Это будет сопровождаться значениями «codeMajor/severity» «failure/error» и для привязки REST HTTP-кодом «406». |
не разрешено | Это используется для указания того, что сервер не разрешает метод HTTP. Это будет сопровождаться значениями «codeMajor/severity» «failure/error» и для привязки REST HTTP-кодом «405».![]() |
немодифицированный | Это используется для указания того, что сервер не модифицировал ресурс. Это будет сопровождаться значениями «codeMajor/severity» для «success/status» и для привязки REST HTTP-кодом «304». |
сервер_занят | Сервер получает слишком много запросов. Повторите попытку позже. Это будет сопровождаться значениями «codeMajor/severity» «failure/error» и для привязки REST HTTP-кодом «429».’. |
несанкционированный запрос | Запрос не был правильно авторизован. Это будет сопровождаться значениями «codeMajor/severity» «failure/error» и для привязки REST HTTP-кодом «401». |
неизвестно | Возникла любая другая ошибка. Это будет сопровождаться значениями «codeMajor/severity» «failure/error» и для привязки REST HTTP-кодом, соответствующим ошибке.![]() |
Тип | Описание |
---|---|
ИРИ | NormalizedString , представляющий интернационализированный идентификатор ресурса (IRI), который расширяет подмножество символов ASCII универсального идентификатора ресурса (URI). |
Срок | Термин в перечислении. Лексические ограничения такие же, как и для Токен . |
URI | NormalizedString , представляющий унифицированный идентификатор ресурса (URI). |
Тип | Описание |
---|---|
ДатаВремя | Время [ ISO8601 ] с использованием синтаксиса ГГГГ-ММ-ДДTчч:мм:сс.![]() |
Пространство имен | Тип данных пространства имен для определения данных из контекста, отличного от того, который используется по умолчанию для модели данных. Это используется для импорта других моделей данных. |
Нормализованная строка | Строка , соответствующая определению normalizedString в [ XMLSCHEMA-2 ]. |
Строка | Строки символов. |
Статус | Версия документа | Дата выпуска | Комментарии |
---|---|---|---|
Окончательный кандидат | 1,0 | 8 июня 2022 г. |

- [ISO8601]
- Представление даты и времени. ИСО 8601:2004. . Международная организация по стандартизации (ИСО). 2004. ИСО 8601:2004. URL: http://www.iso.org/iso/catalogue_detail?csnumber=40874
- [JSON-SCHEMA-2019-09]
- Схема JSON: тип носителя для описания документов JSON . Инженерная рабочая группа Интернета. Интернет-Черновик. URL-адрес: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-02
- [JSON-SCHEMA-VALIDATION-2019-09]
- Проверка схемы JSON: словарь для структурной проверки JSON . Инженерная рабочая группа Интернета. Интернет-Черновик. URL: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02
- [RFC2119]
- Ключевые слова для использования в RFC для указания уровней требований . С. Браднер. IETF. Март 1997 г. Передовая современная практика.