타입에서 구체적인 값까지
일반적인 타입과 개별 값을 완전히 별개의 것으로 나누지 않는다. 넓은 범위를 허용하는 정의에 값의 종류나 크기 등의 조건을 더해 가능한 경우를 줄인다. 스키마와 자료에 같은 언어 체계를 사용하므로 일부가 아직 결정되지 않은 설정도 조건으로 표현할 수 있다.
여러 조건을 결합하는 방식
부서나 사용자마다 정의한 조건을 같은 자료에 적용할 수 있다. 제약의 결합은 순서와 묶는 방식에 영향을 받지 않으며 같은 조건을 반복해도 의미가 달라지지 않는다. 이는 나중 값으로 앞의 값을 덮어쓰는 설정 조합과 다른 접근이다.
검증과 생성의 연결
구체적인 자료가 조건에 맞는지 확인하는 것 외에 스키마가 허용하는 범위도 비교할 수 있다. Go나 프로토콜 버퍼에서 추출한 정의를 조합하고 다른 형식의 정의를 생성하는 파이프라인에 활용한다. 범용 프로그램 실행보다 자료의 제약과 구조를 다루는 데 초점을 둔다.
관련 문서
Dhall / Jsonnet / JSON Schema / 프로토콜 버퍼 / 타입 시스템 / JSON