Поддерживает ли проверка схемы JSON в утилитах common-js ссылки?

Поддерживает ли проверка схемы JSON в утилитах common-js ссылки? Я не могу сделать это с помощью https://github.com/kriszyp/commonjs-utils/blob/master/json-schema.js

Я попробовал следующий код:

{
  "type" : "object",
  "required" : true,
  "properties" : {
    "id" : {
      "type" : "number",
      "required" : true
    },
    "related" : {
      "type" : "array",
      "required" : true,
      "items" : {"$ref": "$#"}
    }
  }
}

Я могу продолжить и подготовить свою схему без ссылок, но было бы неплохо узнать, возможно ли это.


person Lalith    schedule 21.12.2011    source источник


Ответы (1)


Я не знаю, однако ваша ссылка кажется неправильной, удалите знак "$", т.е.:

"items" : {"$ref": "#"}

Вот скопированный пост, который я разместил на форуме json относительно ссылок:

Согласно проекту 03, вот что я понял об указании идентификатора и ссылке на него из любого места. Пожалуйста, прокомментируйте, если что-то не так. Случаи записываются следующим образом: a. URI, откуда я получаю схему b. схема получила c. как обратиться к этой схеме

1. A schema without any "id" property
I fetch :   http://someSite.com/somePath
I get : { }
I can ref it :  {"$ref":"http://someSite.com/somePath#"}

2. Same absolute id and uri path
I fetch :   http://someSite.com/somePath
I get : {"id":"http://someSite.com/somePath#"}
I can ref it :  {"$ref":"http://someSite.com/somePath#"}

3. Different absolute id and path
I fetch :   http://someSite.com/somePath
I get : {"id":"http://anotherSite.com/anotherPath#"}
I can ref it :  {"$ref":"http://anotherSite.com/anotherPath#"}

4. Relative - a fragment
I fetch :   http://someSite.com/somePath
I get : {"id":"#something"}
I can ref it :  {"$ref":"http://someSite.com/somePath#something"}

5. Relative path and fragment
I fetch :   http://someSite.com/somePath
I get : {"id":"/oneMore/path#something"}
I can ref it :  {"$ref":"http://someSite.com/somePath/oneMore/path#something"}

6. Relative path from file
I fetch :   file:///someFolder/someFile
I get : {"id":"/oneMore/path#something"}
I can ref it :  {"$ref":"file:///someFolder/someFile/oneMore/path#something"}

7. Inner schema (sub schema) with id "#subschema" (no id for the main schema)
I fetch :   http://someSite.com/somePath
I get : {"properties" : { "aKeyName" : { "id":"#subschema" }}}
I can ref it :  {"$ref":"http://someSite.com/somePath#subschema"}

8. Inner schema (sub schema) with id "#subschema" 
I fetch :   http://someSite.com/somePath
I get : { {"id":"#mainSchema"}, "properties" : { "aKeyName" : { "id":"#subschema" }} }
I can ref it :  {"$ref":"http://someSite.com/somePath#subschema"}
I can also do:   {"$ref":"http://someSite.com/somePath#mainSchema/properties/aKeyName"}

9. Inner schema (within the property under the "aKeyName") but no id at all 
I fetch :   http://someSite.com/somePath
I get : { "properties" : { "aKeyName" : { }} }
can ref it:  {"$ref":"http://someSite.com/somePath#/properties/aKeyName"}

10. Inner schema (sub schema) with a main custom absolute uri" 
I fetch :   http://someSite.com/somePath
I get : { {"id":"scheme://something"}, "properties" : { "aKeyName" : { "id":"#subschema" }} }
I can ref it :  {"$ref":"scheme://something#subschema"}
I can also do:   {"$ref":"scheme://something#/properties/aKeyName"}

11. Inner schema  with it's own absolute uri" 
I fetch :   http://someSite.com/somePath
I get : { {"id":"#main"}, "properties" : { "aKeyName" : { "id":"http://domain.com/subSchema" }} }
I can ref it :  {"$ref":"http://domain.com/subSchema#"}
person Flavien Volken    schedule 31.01.2012