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、依存関係のキーとして使うスキーマは、バリデーターにより拒否されます。