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, des quatres propriétés requises, seules trois ont été 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.
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "JSON Schema generated by XMLSpy v2016 (https://www.altova.com)", "type": "object", "properties": { "emailtype": { "type": "string" }, "emailaddress": { "type": "string", "format": "email" }, "citycode": { "type": "number" } }, "required": [ "emailtype", "emailaddress", "citycode", "city" ], "additionalProperties": false }
|
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.
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é.