给出以下引用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"
}
}
}
}
由于
答案 0 :(得分:1)
这种形式的引用是正确的。这不是唯一组织事物的方式,但这是我推荐的方式。
您的架构中确实存在错误 - 您在“属性”中直接使用“$ ref”。您可能没有在数据中定义名为“$ ref”的属性,所以这是否意味着在另一个属性声明中?