Altova XMLSpy 2024 Enterprise Edition

Generieren eines JSON-Schemas anhand einer JSON-Instanz

Zur Startseite Zurück Nach oben Weiter

XMLSpy kann ein JSON-Schema anhand eines JSON-Instanzdokuments (bzw. eines JSON5-Instanzdokuments) generieren. Diese Funktion ist sehr nützlich, da Sie dadurch sofort ein Schema, das auf der vorhandenen JSON-Instanz basiert, zur Verfügung haben. Dadurch sparen Sie sich die Mühe, manuell ein Schema von Grund auf neu erstellen zu müssen. Sie können das generierte Schema anschließend Ihren Anforderungen entsprechend anpassen oder erweitern.

 

Generieren des Schemas

Um ein JSON-Schema anhand einer JSON-Instanz zu generieren, gehen Sie folgendermaßen vor:

 

1.Machen Sie das JSON-Instanzdokument zum aktiven Dokument.

2.Klicken Sie im Info-Fenster auf dem Register "JSON" auf das Pfeilsymbol neben Validierung anhand von Schema und wählen Sie im daraufhin angezeigten Menü den Befehl JSON-Schema generieren (siehe Abbildung unten; Avro-Unterstützung steht nur in der Enterprise Edition zur Verfügung). Alternativ dazu können Sie auch den Menübefehl DTD/Schema | DTD/Schema generieren auswählen.

JSONInfoWindow

3.Bearbeiten Sie die Einstellungen nun Ihren Wünschen entsprechend (nähere Informationen siehe unten) im daraufhin angezeigten Dialogfeld "JSON-Schema generieren" (siehe nächster Abschnitt unten). Klicken Sie auf OK, sobald Sie damit fertig sind.

4.Sie werden aufgefordert, einen Pfad und Dateinamen für das generierte JSON-Schema anzugeben. Sobald Sie auf Speichern klicken, wird das Schema generiert und zum aktiven Dokument. Die generierte Schemadatei wird im Instanzdokument als das Schema zugewiesen, anhand dessen die Validierung durchgeführt werden soll; frühere Zuweisungen werden überschrieben. Um die Zuweisung zu ändern, verwenden Sie den Kontextmenübefehl JSON-Schema auswählen (siehe Abbildung oben).

 

Einstellungen zum Generieren des Schemas

Im Dialogfeld "JSON-Schema generieren" (Abbildung unten) können Sie die Optionen für die Schemagenerierung definieren (Abbildung unten). Informationen dazu, wie Sie dieses Dialogfeld aufrufen, finden Sie im vorherigen Abschnitt.

JSONGenerateJSONSchemaDlg

Array Tuples ermitteln

Ein Array Tuple ist die Sequenz der Elemente in einem Array. Das folgende Array hat z.B. ein Tuple mit drei Elementen: [ 1, 2, "abc" ]. Sie können für die Validierung von Arrays im Schema definieren, ob die Reihenfolge und der Datentyp von Array (Tuple)-Elementen berücksichtigt werden soll oder nicht. Wenn die Option Array Tuples ermitteln aktiviert ist (siehe Abbildung oben), so werden die Reihenfolge und der Datentyp von Elementen ermittelt. Anhand der ermittelten Tuples wird im Schema eine entsprechende Definition erstellt. Zu dieser Einstellung gibt es die folgenden Optionen:

 

Anzahl der Tuple-Elemente: Sie können eine Mindest- und Maximalanzahl von Tuple-Elementen definieren. Wenn ein Tuple in einer Instanz eine Anzahl von Elementen im angegebenen Bereich aufweist, so wird dieses Array erkannt und definiert.

Nur einfache Typen: Bei der Erkennung werden nur Tuples mit Elementen vom einfachen Typ (die atomaren Typen String, Zahl, Ganzzahl, Boolean und Null) bei der Erkennung berücksichtigt.

Arrays mit demselben Namen: Bei der Erkennung werden nur Arrays, die als Werte von Eigenschaften mit demselben Namen definiert sind, berücksichtigt. So sind z.B. im folgenden JSON-Datenfragment die durch rot hinterlegte eckigen Klammern markierten Arrays alle Werte von Eigenschaften mit dem Namen a1 (blau angezeigt): {"object1": [ { "a1": [ 1, 2, "abc" ] },  { "a1": [ 3, 4, "def" ] }, { "a1": [ 5, 6, "ghi" ] } ] }.

Mindestanzahl von Arrays: Sie können eine Mindestanzahl von Arrays definieren, bei der die Array-Ermittlung aktiviert wird.

 

 

Andere Einstellungen

 

Reihenfolge der Objekt-Eigenschaftsnamen ignorieren: Wenn diese Option deaktiviert ist, wird die Reihenfolge der Eigenschaften eines Objekts überprüft und möglichst ähnlich wiedergegeben. Andernfalls wird die Reihenfolge nicht überprüft.

Identisches String-Format: Im Schema kann festgelegt werden, dass String-Datentypen ein bestimmtes Format haben müssen. Wenn diese Option aktiv ist, so versucht XMLSpy das String-Format zu ermitteln und eine Formatdefinition für Strings hinzuzufügen, wo dies möglich ist.

Einfache Arrays zu lokalen machen: Ein einfaches Array ist ein Array, in dem alle Elemente denselben einfachen Datentyp haben. Wenn die Option aktiv ist, werden alle einfachen Arrays lokal im Schema definiert, anstatt globale Definitionen zu verwenden, die lokal referenziert werden.

Einfache Objekte zu lokalen machen: Ein einfaches Objekt ist ein Objekt, in dem alle Eigenschaftswerte denselben einfachen Datentyp haben. Wenn die Option aktiv ist, werden alle einfachen Objekte lokal im Schema definiert, anstatt globale Definitionen zu verwenden, die lokal referenziert werden.

 

Anmerkung:Sie können lokale Definitionen einzelner Objekte und Arrays nach Erstellung des JSON-Schemas zu globalen machen und umgekehrt. Nähere Informationen dazu finden Sie im Abschnitt Globale und lokale Definitionen.

 

© 2017-2023 Altova GmbH