Когда я определил XML-схему, я могу затем ссылаться на нее из XML, говоря, что этот XML должен соответствовать ссылочной схеме.Таким образом, я могу принудительно проверить такой XML и также могу дать ценный совет человеку, который собирается редактировать этот файл, потому что редакторы XML, поддерживающие XML-схему, будут использовать такую ссылку для генерации автозаполнения, что значительно облегчит редактирование.
Однако я не вижу таких ссылок в документации схемы JSON.Например: https://json -schema.org / Learn / Getting-Start-Step-by-Step.html
Похоже, это не является частью стандарта, или я простоне могу найти его.
Вот пример схемы XSD с использованием ссылки:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.org/definitions/product">
<xsd:element name="product">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:long" maxOccurs="1" minOccurs="1"/>
<xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="1"/>
<xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
А вот XML, который использует эту схему, ссылаясь на ее логическое имя: http://example.org/definitions/product
<product:product xmlns:product="http://example.org/definitions/product">
<id>1</id>
<name>One</name>
<description>The One</description>
</product:product>
Так что теперь любой может начать редактировать его и, если поддерживается, получить автозаполнение своим редактором на основе ссылочной схемы XSD.
Но как насчет JSON?Схема?
Если у меня есть схема JSON, подобная этой:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://example.org/definitions/product",
"title": "product",
"type": "object",
"properties": {
"id": {
"type": "long"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [ "id", "name" ]
}
И фактическая схема JSON такая:
{
"id": 1,
"name": "One",
"description": "The one"
}
Тогда как я могу на самом деле связатьJSON для схемы я ожидаю, что это будет соответствовать?