Nicht definierte Eigenschaften

www.altova.com Alle erweitern/reduzieren Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Benutzerhandbuch und Referenz > JSON, JSON-Schema > JSON-Schema-Ansicht >

Nicht definierte Eigenschaften

Im Codefragment unten wird mit dem Schlüsselwort required (obligatorisch) festgelegt, dass für dieses Objekt vier Eigenschaften erforderlich sind. Es sind jedoch nur drei dieser vier Eigenschaften definiert. Die vierte Eigenschaft, city, ist nicht definiert. Die definierten Eigenschaften werden als definiert bezeichnet, während die nicht definierte Eigenschaft als nicht definiert gilt. Siehe Abbildung unterhalb des Codefragments.

 

Click to expand/collapseCodefragment: definierte und nicht definierte Eigenschaften

{

    "$schema": "http://json-schema.org/draft-04/schema#",

    "description": "JSON Schema generated by XMLSpy v2016 (http://www.altova.com)",

    "type": "object",

    "properties": {

        "emailtype": {

            "type": "string"

        },

        "emailaddress": {

            "type": "string",

            "format": "email"

        },

        "citycode": {

            "type": "number"

        }

    },

    "required": [

        "emailtype",

        "emailaddress",

        "citycode",

        "city"

    ],

    "additionalProperties": false

}

 

JSONSpecified     JSONUnspecified

In der Design-Ansicht wird die nicht definierte Eigenschaft rot markiert, da sie im Schema als obligatorisch definiert, aber nicht vorhanden ist. Das JSON-Schema selbst ist zwar gültig, doch ist ein Instanzdokument, das anhand des Schemas validiert wird, nicht gültig. Dies hat folgenden Grund: (i) Wenn die Eigenschaft city nicht vorhanden ist, ist das Dokument ungültig, weil die Eigenschaft city obligatorisch ist. (ii) Wenn die Eigenschaft city vorhanden ist, ist das Dokument ungültig, weil die Eigenschaft city nicht definiert ist und kein Eigenschaftsplatzhalter vorhanden ist, aufgrund dessen die Eigenschaft vorhanden sein darf (siehe Implizites Definieren einer Eigenschaft weiter unten) .

 

So erstellen Sie eine Definition für eine nicht definierte Eigenschaft:

 

1.Wählen Sie die nicht definierte Eigenschaft in der Design-Ansicht aus.
2.Aktivieren Sie in der Eingabehilfe "Details" das Kontrollkästchen Definiert (siehe Abbildung oben). Als Alternative dazu kann das Flag definiert über das Kontextmenü geändert werden.
3.Ändern Sie die Definition der Eigenschaft Ihren Wünschen entsprechend.

 

Implizites Definieren einer Eigenschaft

Eine Eigenschaft kann durch Hinzufügen einer passenden Mustereigenschaft oder eines Eigenschaftsplatzhalters implizit definiert werden. In der Abbildung unten sehen Sie, dass ein Eigenschaftsplatzhalter hinzugefügt wurde. Eine Instanzeigenschaft namens city stimmt mit diesem Platzhalter überein. Die Eigenschaft city wird somit im Schema durch den Platzhalter implizit definiert. Eine Instanzdatei, die die Eigenschaft city enthält, ist dem Schema gemäß gültig.

JSONImplicitlySpecified

Beachten Sie die entsprechenden Symbole in der implizit definierten Eigenschaft und dem Eigenschaftsplatzhalter. Jedes Symbol ist ein Link zur anderen Eigenschaft. Wenn Sie auf ein Symbol doppelklicken, wird die andere Eigenschaft ausgewählt.

 


© 2019 Altova GmbH