Altova XMLSpy 2024 Professional Edition

Typ-Selektoren (Beliebig, Mehrere, usw.)

Zur Startseite Zurück Nach oben Weiter

Die Dropdown-Listen der Typ-Auswahllisten der JSON-Schema-Ansicht, enthält vier "Typen", die keine JSON-Typen sind: Beliebig, Mehrere, ohne Constraints und unzulässig. Dabei handelt es sich eigentlich um Typ-Selektoren.

 

Mit dem Typ-Selektor Beliebig wird jeder beliebige JSON-Typ ausgewählt. Das bedeutet, dass jeder JSON-Typ in dieser Instanz für die jeweilige Definition gültig ist.

Mit dem Typ-Selektor Mehrere werden einer oder mehrere JSON-Typen ausgewählt. Das bedeutet: Wenn es sich beim Instanztyp um einen der im Schema ausgewählten JSON-Typen handelt, so ist er für die jeweilige Definition gültig.

Mit dem Typ-Selektor ohne Constraints (neu in draft-06) werden keine Constraings im JSON-Typ definiert, d.h. in der Instanz ist für eine Definition mit diesem Namen jeder JSON-Typ gültig.

Bei Auswahl des Typ-Selektors unzulässig (neu in draft-06) ist kein JSON-Typ zulässig, d.h. es darf keine Definition mit diesem Namen vorhanden sein.

 

Der Typ-Selektor Beliebig

Der Typ-Selektor Beliebig kann überall, wo ein Typ ausgewählt werden kann, verwendet werden. Wenn eine Definition zum Schema hinzugefügt wird, so ist Beliebig der ausgewählte Standardtyp. Damit wird festgelegt, dass jeder der JSON-Typen gültig ist. Dadurch wäre der Instanztyp gültig, wenn es sich um ein Objekt, ein Array oder einen der atomaren Typen (String, Zahl, Ganzzahl, Boolesch und Null) handelt.

JSONAny01

Das Subschema in der Abbildung oben hat den Typ Beliebig. Daher sind für diese Definition alle JSON-Typen gültig. Die folgenden Komponenten sind implizit vorhanden und daher auf der Benutzeroberfläche entsprechend implementiert:

 

Da Objekte zulässig sind, wird automatisch ein Kasten "Eigenschaften" erstellt (siehe Abbildung oben). Laut Standarddefinition sind im Eigenschaftskasten beliebig viele Eigenschaften jedes beliebigen Typs zulässig (über einen Eigenschaftsplatzhalter mit dem Typ Beliebig). Sie können die Eigenschaftsdefinitionen nach Belieben ändern.

Da Arrays zulässig sind, wird automatisch ein Kasten "Elemente" erstellt (siehe Abbildung oben). Für den Array-Elementkasten sind standardmäßig beliebig viele Array-Elemente jedes beliebigen Typs zulässig (über einen Array-Elementplatzhalter mit dem Typ Beliebig). Sie können die Elementdefinitionen nach Belieben bearbeiten.,

Da String-Typen und numerische Typen (Zahl und Ganzzahl) zulässig sind, können in der Eingabehilfe "Constraints" Constraints für diese atomaren Typen definiert werden.

 

Alle diese Typen werden daher implizit mit dem Typ-Selektor Beliebig definiert. Um den Typ in einen bestimmten Typ zu ändern, wählen Sie diesen Typ aus. Um als Typ Objekte und Arrays zu definieren, gibt es eine alternative Methode: Klicken Sie mit der rechten Maustaste auf das Objekt oder Array und wählen Sie Als explizit definieren. Dadurch wird dieser Typ zum ausgewählten Typ und andere Typen werden entfernt bzw. werden definierte Objekt/Array-Typen inaktiv.

 

Der Typ-Selektor Mehrere

Der Typ-Selektor Mehrere kann überall dort, wo ein Typ ausgewählt werden kann, ausgewählt werden. Sie können damit durch Aktivieren der Kontrollkästchen für den/die gewünschten Typen einen oder mehrere JSON-Typen auswählen (siehe Abbildung unten). Anschließend können Sie in der Eingabehilfe "Constraints" Constraints für die ausgewählten Typen definieren.

JSONMultiple01

In der Abbildung oben sind gemäß dem Subschema die Typen String, Null und Array zulässig. Constraints für diese Typen können in der Eingabehilfe "Constraints" definiert werden (siehe Abbildung).

 

String-Constraints werden in der Eingabehilfe "Constraints" definiert.

Für den Typ "Null" können keine weiteren Constraints definiert werden.

Es wird automatisch ein Array-Elementkasten erstellt. Sie können die Anzahl und Typen der zulässigen Array-Elemente definieren.

 

Die ausgewählten Typen sind in einem Instanzdokument an der Stelle, die dem des Subschemas entspricht, zulässig.

 

Die Typ-Selektoren "ohne Constraints" und "unzulässig"

Die Typ-Selektoren ohne Constraints und unzulässig können überall dort, wo ein Typ zur Auswahl steht, ausgewählt werden. Sie können damit festlegen, dass ein Objekt jeden zugelassenen Typ haben kann bzw. dass kein Objekt dieses Namens zulässig ist.

 

JSONUnconstrainedForbidden

 

In der Abbildung oben hat eine Definition zwei Eigenschaften. PropertyOne kann einen Wert eines beliebigen Typs haben, während eine Eigenschaft mit dem Namen PropertyTwo nicht zulässig ist (siehe Abbildung). In Textform sieht dieses Konstrukt wie das Codefragment unten aus.

 

"Definition": {

 "properties": {

         "PropertyOne": true,

         "PropertyTwo": false

 }

}

 

 

 

© 2017-2023 Altova GmbH