JSON Schema 병합기
여러 JSON Schema 또는 하나의 allOf 구성을 단일 스키마로 병합합니다. 함께 만족시킬 수 없는 규칙은 충돌로 나열됩니다.
최대 100,000자와 스키마 2~50개를 받습니다. 모든 작업은 브라우저에서 실행됩니다. 병합된 스키마 JSON, JSON 보고서, 충돌 목록 CSV를 다운로드할 수 있습니다. 스키마의 JSON 배열 또는 allOf가 있는 단일 스키마를 입력할 수 있습니다. YAML도 사용할 수 있습니다. 최대 100,000자까지 입력할 수 있습니다. 실행하기 전에 설정을 검토하세요.
내 결과
JSON Schema 병합기
- 스키마 배열을 JSON으로 붙여 넣거나 allOf에 모두 나열된 스키마 하나를 붙여 넣으세요.
- JSON Schema draft를 선택하거나 자동 감지를 유지하세요.
- 병합을 실행하고 충돌 및 allOf에 유지된 규칙을 확인하세요.
- 병합된 스키마와 충돌 보고서 다운로드
알아두세요
최대 100,000자와 스키마 2~50개를 받습니다. 모든 작업은 브라우저에서 실행됩니다. 병합된 스키마 JSON, JSON 보고서, 충돌 목록 CSV를 다운로드할 수 있습니다.
규칙 결합 방식
유형은 교집합을 취하고 enum 및 const 값도 교집합을 취합니다. 최소 및 최대 경계는 더 엄격한 값으로 정하고 필수 목록은 합치며 속성은 하나씩 병합합니다. 한 스키마가 추가 속성을 금지하면 다른 스키마에만 정의된 속성도 금지됩니다. 그 속성이 필수이면 충돌로 보고합니다.
allOf에 유지되는 항목
서로 다른 정규식 두 개, oneOf, not, if와 then, 다른 속성 규칙과 함께 쓰는 patternProperties, unevaluated properties 등 정확히 결합할 수 없는 키워드가 있습니다. 스키마의 의미를 바꾸지 않도록 병합된 스키마의 allOf 안에 유지하고 보고서에도 나열합니다.
결과 확인
충돌 위치는 스키마에서 확인할 수 있습니다. 선택적 속성의 충돌이나 숫자에만 적용되는 규칙만으로 전체 스키마가 만족 불가능해지는 것은 아닙니다. 제한된 구조적 증명으로 병합 스키마를 만족하는 인스턴스가 없음을 확인한 경우에만 보고서가 provenUnsatisfiable로 표시합니다. 그렇지 않으면 이 플래그는 만족 가능성의 증명이 아닙니다. 충돌이 없으면 선택적 샘플 검사에서 Ajv로 각 구성의 후보를 다른 구성에 대조해 검증합니다. 별도의 입력 스키마는 각자의 로컬 참조 루트를 유지합니다. 샘플은 근거일 뿐, 완전한 동등성 증명은 아닙니다. __proto__를 속성, pattern, 종속성 키로 사용하는 스키마는 검증기가 거부합니다.