JSON-Schema
Genau wie in einem XML-Schema Struktur und Inhalt eines XML-Dokuments definiert sind, wird in einem JSON-Schema definiert, wie die JSON-Daten in einem JSON-Dokument strukturiert sind. Es wird definiert, welche Datenfelder erwartet werden und wie die Werte repräsentiert werden. Informationen zu JSON-Schemas und die JSON-Schema-Spezifikation finden Sie hier.
Ein JSON-Schema ist selbst ein JSON-Objekt. Lexikalisch steht das gesamte Schema innerhalb von geschweiften Klammern (siehe Codefragment unten). Geschweifte Klammern dienen als Trennzeichen für JSON-Objekte. Das Schema ist in JSON-Syntax geschrieben und normalerweise in einer Datei mit der Erweiterung .json gespeichert. Die Datei wird durch das Schlüsselwort $schema, welches das erste Schlüsselwort des Objekts der obersten Ebene sein sollte, als JSON-Schema gekennzeichnet. Dieses Schlüsselwort sollte einen der folgenden Werte haben:
•Versionen bis draft-07: "http://json-schema.org/draft-N/(hyper-)schema#", wobei N für die Versionsnummer (04, 06 oder 07) steht.
•Versionen ab draft-2019-09: "https://json-schema.org/draft/JJJJ-MM/(hyper-)schema", wobei JJJJ und MM das Jahr bzw. den Monat des Entwurfs darstellen, z.B. 2019-09.
Hier finden Sie ein Beispiel dafür, wie das Schlüsselwort $schema verwendet wird.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
...
}
Anmerkung: | Zwar kann das Schlüsselwort $schema den Wert "http://json-schema.org/schema#" haben. Dieser Wert definiert die neueste Version des Schemas. Am besten verwenden Sie eine URL zur Angabe einer bestimmten Version.. Nähere Informationen dazu finden Sie unter JSON-Schema-Version. |
Sie können ein JSON-Schema in XMLSpy grafisch in der JSON-Schema-Ansicht erstellen. Eine Anleitung dazu finden Sie im Abschnitt JSON-Schema-Ansicht. Neben den Schemabearbeitungsfunktionen in der Schema-Ansicht stehen im Zusammenhang mit Schemas die folgenden Funktionen zur Verfügung:
•Validierung mit dem JSON Validator von XMLSpy: Weisen Sie einem JSON-Instanzdokument ein JSON-Schema zu und validieren Sie das Instanzdokument in XMLSpy. Nähere Informationen dazu finden Sie unter Validieren von JSON-Dokumenten.
•Konfigurieren von JSON-Validierungsoptionen.
•Generierung eines JSON-Schemas anhand einer JSON-Instanz: Wenn bereits ein JSON-Instanzdokument vorhanden ist, können Sie anhand dieses Dokuments ein JSON-Schema generieren. Falls nötig, können Sie das Schema später bearbeiten.
•Konvertierung zwischen JSON und XML: Sie können Dokumente zwischen diesen beiden Formaten konvertieren.
Terminologie
Unten finden Sie Definitionen häufig verwendeter JSON-Schema-Begriffe, die in diesem Zusammenhang auf der Benutzeroberfläche und in dieser Dokumentation vorkommen.
Begriff | Definition |
Schema | Das Schema-Objekt der obersten Ebene in einem JSON-Schema-Dokument; die Schema-Datei. |
Objekt | Ein JSON-Typ, der null oder mehr Eigenschaften enthält |
Eigenschaft | Ein Schlüssel:Wert-Paar eines Objekts. Der Wert dieses Objekts kann jeden beliebigen JSON-Datentyp haben. |
Schlüsselwort | Der Schlüssel-Teil des Schlüssel:Wert-Paars eines Objekts. Dies ist immer ein String. |
Subschema | Ein Objekt, das ein Child eines Operators oder einer Abhängigkeit ist. |
Definition | Die komplette Definition eines jeden JSON-Typs. Definitionen können global oder lokal sein. |
Array | Eine kommagetrennte geordnete Liste bestehend aus null oder mehr Elementen jedes beliebigen JSON-Datentyps. |
Atomare Typen | Die JSON-Datentypen String, Zahl, Ganzzahl, Boolesch und Null. |
Typ-Selektoren | Die Typen any und multiple, mit denen ein beliebiger bzw. mehrere Typen ausgewählt werden. |
Operatoren | Occurrence-Selektoren, die als Children von Definitionen hinzugefügt werden können. Siehe dazu Abschnitt Operatoren. |
JSON-Datentypen
Objekteigenschaftswerte und Array-Elemente können die folgenden Typen haben:
•String (muss innerhalb von Anführungszeichen stehen). Für einen String kann zusätzlich ein Format wie z.B. date-time oder email definiert sein.
•Zahl: Eine Zahl mit Nachkommastellen; dazu gehören auch Ganzzahlen.
•Ganzzahl: Eine Zahl ohne Nachkommastellen; eine Teilmenge des Typs Zahl
•Boolesch (true/false, steht nicht innerhalb von Anführungszeichen)
•Objekt: Ermöglicht die Verschachtelung von Daten, wenn es innerhalb eines anderen Objekts verwendet wird.
•Array: Bietet die Möglichkeit, komplexere als in Objekten zulässige Strukturen zu erstellen
•Null (nicht in Anführungszeichen eingeschlossen)