Как работать с @Ref из XSD в схеме JSON

Ниже приведен базовый пример текстового элемента, который ссылается на элемент para, а сам элемент para ссылается на элемент para.

Мне интересно, правильно ли я представляю это в схеме JSON?

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="text">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="para"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="para">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="para"/>
      </xs:choice>
      <xs:attribute name="id" type="xs:ID"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

Я думаю, что это должно быть сделано с этим стилем {"$ ref": "# / definitions / diskDevice"}, http://json-schema.org/example2.html.

Это правильно?

{
 "id": "http://some.site.somewhere/entry-schema#",
 "$schema": "http://json-schema.org/draft-04/schema#",
 "title": "text",
 "type": "object",
 "properties": {
   "$ref": "#/definitions/para"
 },
 "definitions": {"para": {
  "required": true,
  "type": "object",
  "properties": {
   "id": {
    "type": "string",
    "required": true
   },
   "$ref": "#/definitions/para"
   }
  }
 }
}

Спасибо

1 ответ

Эта форма ссылки является правильной. Это не единственный способ организовать вещи, но я рекомендую это.

Однако у вас есть ошибка в вашей схеме - у вас есть "$ref" непосредственно внутри "свойств". Предположительно, вы не определяете свойство под названием "$ref" в своих данных, так что это должно быть внутри другого объявления свойства?

Другие вопросы по тегам