happytails.ai
Polski

Łączenie schematów JSON Schema

Połącz kilka schematów JSON Schema lub jedną kompozycję allOf w jeden schemat. Reguły, których nie można spełnić jednocześnie, zostaną wykazane jako konflikty.

Przyjmuje do 100 000 znaków i od 2 do 50 schematów. Wszystko działa w przeglądarce. Do pobrania są połączony schemat JSON, raport JSON i lista konfliktów CSV. Tablica JSON schematów lub jeden schemat z allOf. Obsługiwany jest też YAML. Do 100000 znaków. Sprawdź ustawienia przed uruchomieniem.

Twój wynik

Zgłoś problem lub podziel się pomysłem.

Łączenie schematów JSON Schema
  1. Wklej tablicę JSON schematów lub jeden schemat, którego allOf je wymienia.
  2. Wybierz wersję JSON Schema lub pozostaw automatyczne wykrywanie.
  3. Uruchom łączenie i sprawdź konflikty oraz reguły zachowane w allOf.
  4. Pobierz połączony schemat i raport konfliktów.

Warto wiedzieć

Przyjmuje do 100 000 znaków i od 2 do 50 schematów. Wszystko działa w przeglądarce. Do pobrania są połączony schemat JSON, raport JSON i lista konfliktów CSV.

Jak łączą się reguły

Typy, wyliczenia i wartości const są przecinane, granice minimalne i maksymalne przyjmują bardziej restrykcyjną wartość, listy required są łączone, a właściwości scalane pojedynczo. Gdy jeden schemat zabrania dodatkowych właściwości, zabroniona jest też właściwość zdefiniowana tylko przez inny schemat, a konflikt jest wykazywany, jeśli ta właściwość jest wymagana.

Co pozostaje w allOf

Niektórych słów kluczowych nie można dokładnie połączyć, np. dwóch różnych wyrażeń regularnych, oneOf, not, if i then, patternProperties obok innych reguł właściwości oraz właściwości nieocenionych. Są zachowywane w allOf w połączonym schemacie i wymieniane w raporcie, aby nie zmieniać znaczenia schematu.

Sprawdzanie wyniku

Konflikty wskazują swoje miejsce w schemacie. Konflikt w opcjonalnej właściwości lub regule dotyczącej tylko liczb sam w sobie nie czyni całego schematu niemożliwym do spełnienia. Raport ustawia provenUnsatisfiable tylko wtedy, gdy ograniczony dowód strukturalny wykazuje, że żadna instancja nie może spełnić połączonego schematu. W przeciwnym razie ta flaga nie jest dowodem spełnialności. Gdy nie ma konfliktów, opcjonalne kontrole przykładów sprawdzają za pomocą Ajv kandydatów z każdej kompozycji względem drugiej. Osobne schematy wejściowe zachowują własne korzenie lokalnych odwołań. Przykłady stanowią przesłanki, a nie wyczerpujący dowód równoważności. Walidator odrzuca schematy używające __proto__ jako klucza właściwości, wzorca lub zależności.