Propriétés non spécifiées

www.altova.com Agrandir/Réduire tout Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Manuel de l'utilisateur et référence > JSON, Schéma JSON > Mode Schéma JSON >

Propriétés non spécifiées

Dans la liste de code ci-dessous, le mot -clé required spécifie que quatre propriétés sont exigées pour cet objet. Néanmoins, seules trois de ces quatre propriétés sont définies. La quatrième propriété, city, est non-définie. Les propriétés définies sont nommées spécifiées, alors que la propriété non définie est nommée non-spécifiée. Voir les captures d'écran sous la liste.

Click to expand/collapseListe de code : propriétés spécifiées et non-spécifiées

{

    "$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

Dans le Mode Design, la propriété non spécifiée est marquée en rouge parce qu'elle est requise par le schéma, mais n'est pas définie. Bien que le schéma JSON lui-même soit valide, un document d'instance qui est validé par rapport au schéma ne sera pas valide. Cela est dû au fait que : (i) si la propriété city n'est pas présente, le document sera invalide parce que la propriété city sera requise ; (ii) Si la propriété city  est présente, le document sera invalide parce que la propriété city est non-définie et qu'il n'y a pas de caractère générique de propriété pour permettre sa présence (voir Spécifier implicitement une propriété ci-dessous) .

 

Pour créer une définition pour une propriété non-spécifiée, procéder comme suit :

 

1.Sélectionner la propriété non-spécifiée dans le Mode Design.
2.Dans l'assistant à la saisie Détails, contrôler la case à cocher Spécifié (voir capture d'écran ci-dessus). En alternative, le marquage Spécifié peut être modifié par le biais du menu contextuel.
3.Modifier la définition de la propriété comme vous le souhaitez.

 

Spécifier implicitement une propriété

Une propriété peut être spécifiée implicitement en ajoutant une propriété de motif convenable ou un caractère générique de propriété. La capture d'écran ci-dessous montre qu'un caractère générique de propriété a été ajouté. Une propriété d'instance nommée city correspondra à ce caractère générique. Donc, dans le schéma, la propriété city est soit-disant "spécifiée implicitement" par le caractère générique. Un fichier d'instance contenant la propriété city sera valide par rapport à ce schéma.

JSONImplicitlySpecified

Veuillez noter les icônes respectives dans la propriété spécifiée implicitement et dans le caractère générique de la propriété. Chaque icône est un lien à l'autre propriété. Double-cliquer sur une icône pour sélectionner l'autre propriété.

 


© 2018 Altova GmbH