2

给定以下引用 para 元素的文本元素的基本示例,并且 para 元素本身引用 para 元素。

我想知道我是否在 JSON Schema 中正确地表示了这一点?

<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"
   }
  }
 }
}

谢谢

4

1 回答 1

1

这种引用形式是正确的。这不是组织事物的唯一方式,但这是我推荐的方式。

但是,您的架构中确实存在错误-您在“属性”中直接有“$ ref”。您可能没有在数据中定义名为“$ref”的属性,那么这是否意味着在另一个属性声明中?

于 2013-09-10T15:39:19.913 回答