2014-10-24 1 views
0

스키마의 특정 속성에 대한 스키마를 검색하는 좋은 방법이 될 수 있는지 궁금합니다.
주어진 속성 이름은 스키마의 properties에 존재하고 그것을 선언 나 $ref이 일이 anyOfallOfoneOf 또는 dependencies 플레이에 올 때 후크하는 방법으로이 있는지 궁금 해서요 .. 을 복잡하게 얻을 매우 간단합니다 erenced 경우과 같은 것을 검색 할 수있는 검증 라이브러리 (tv4 또는 z-schema). 브라우저 자바 스크립트에 대한 제안 사항이 있으십니까?json-schema는 js의 주어진 속성에 대한 스키마를 얻습니다.

답변

2

면책 조항 : 나는 TV4의 우위 테이너입니다

일치

는 특정 데이터 인스턴스에 해당되는 속성에 대한 모든 가능한 스키마, 또는 유일한 사람을 얻기 위해 찾고 계십니까 (예를 들어에만 oneOf 절)? 이 후자의 가정 (I 일반적으로 로 참조하는 "를 스키마 할당") :

가이에 대한 open issue on tv4,하지만 난 지금까지 다른 사람의 관심을 듣지 못한, 그래서 우선 순위를하지 않았다 그것. 사람들이 원하면 추가 할 수 있습니다.

This other package은 (또한 광산, 빠르지 만 적은 기능) 스키마 URL에 JSON 포인터에서지도를 반환

// Creates a validator for that schema 
var validator = JsonModel.validator('https://example.com/schema1'); 

// Runs the validator on the data 
var result = validator({ 
    "foo": { 
     "bar": [1, 2, 3] 
    } 
}); 
// pass or fail 
console.log(result.valid); 
// list of schemas describing that sub-sub-property 
var subSubSchemas = result.schemas['/foo/bar']); 
+0

안녕 @cloudfeet, 첫눈을'JSON-model'는 훌륭한 도구가 될 것으로 보인다 .. 그것은 스키마를 반응하도록 만드는 모델을 랩핑하고 ...'스키마 할당 '은 그 속성 *에 대해 가능한 모든 스키마를 요구 했음에도 불구하고 매우 편리합니다. [토론] (https : // github. com/geraintluff/json-model/issues/1)을 github에서이 라이브러리에 깊이 들어가려고합니다. – aleclofabbro

+0

* 스키마 할당 *이 매우 편리하다는 것을 알았습니다. 대부분의 스키마에서는 하나의 속성에 대해 여러 스키마를 허용하지 않습니다. 내가 anglejs 지시문에'tv4' (또는 아마도'json-schema')를 통합하려고 시도하고 있으므로 컨트롤러가 속성의 스키마를 검색하고 속성 경로를 알고 싶습니다. – aleclofabbro