2014-11-06 14 views
1

我正在爲我自己的個人使用寫一個vcxproj生成器。這個項目的一部分是讓我瞭解JSON模式。以下是我定義的模式。 (在模式之後定義的問題)。模式內的JSON對象內的JSON定義不服從枚舉:Python jsonvalidation

self._schema = { 
     'definitions': { 

      ... 

      'project_settings': { 
       'required': ['configuration', 'platform'], 

       'type': 'object', 
       'properties': { 
        'platform': { 
         'enum': ['x86_64', 'Win32'] 
        }, 
        'connfiguration': { 
         'enum': ['Release', 'Debug'] 
        }, 

        ...  

       } 
      } 
     }, 

     # Start of actual requirements 
     'type': 'object', 
     'properties': { 
      'project_configurations': { 
       'type': 'array', 
       'minItems': 1, 
       'items': { 
        'allOf': [{'#ref': 'definitions/project_settings'}] 
       } 
      } 
     }, 
     'additionalProperties': False, 
     'required': ['project_configurations'], 
    } 

我的問題存在於#definitions/project_settings/configuration#definitions/project_settings/platform。如果我提供以下JSON來驗證python的jsonschema.validate它被認爲是有效的,當我認爲枚舉應該失敗。

{ 
    "project_configurations": [ 
    { 
     "configuration": "taoshwu", 
     "platform": "esostat" 
    } 
    ] 
} 

回答

0

$ ref關鍵字不正確。

嘗試:

'$ref':'#/definitions/project_settings'