Schéma JSON
De même qu'un schéma XML spécifie la structure et le contenu d'un document XML, un schéma JSON spécifie comment sont organisées les données JSON dans un document JSON. Il spécifie quels champs de données sont attendus et comment les valeurs sont représentées. Vous trouverez la spécification de Schéma JSON et plus d'informations concernant le schéma JSON ici.
Un schéma JSON est lui-même un objet JSON. Lexicalement, le schéma complet est contenu dans des accolades (voir liste ci-dessous), qui sont les délimiteurs des objets JSON. Le schéma est écrit dans la syntaxe JSON et est généralement enregistré dans un fichier avec une extension .json. Il est indiqué en tant qu'un schéma JSON, par le mot-clé $schema, qui doit être le premier mot-clé de l'objet de niveau supérieur. Ce mot-clé devrait avoir une valeur comme l'une de celles indiquées ci-dessous :
•Versions vers draft-07: "http://json-schema.org/draft-N/(hyper-)schema#", où N est le nombre de la version (04, 06, or 07).
•Versions depuis draft-2019-09 ultérieures : "https://json-schema.org/draft/YYYY-MM/(hyper-)schema", où YYYY et MM sont, respectivement, l'année et le mois du draft, par exemple, 2019-09.
Ici, vous trouverez un exemple comment le mot-clé $schema est utilisé.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
...
}
Note : | Bien que le mot-clé $schema puisse avoir la valeur « http://json-schema.org/schema#", qui spécifie la dernière version du schéma, il vaut mieux utiliser une URL qui identifie la version spécifique . Pour plus d’informations, voir Version de schéma JSON. |
Dans XMLSpy, vous pouvez créer des schémas JSON graphiquement dans le Mode de schéma JSON. Vous trouverez une description de la procédure à suivre dans la section Mode Schéma JSON. Outre les fonctions d'édition de schéma disponibles dans le Mode de schéma JSON, les fonctions liées au schéma suivantes sont disponibles :
•Validation avec le validateur JSON de XMLSpy: Assigenr un schéma JSON à un document d’instance JSON, et valider le document d’instance depuis l’intérieur de XMLSpy. Voir Valider des documents JSON pour information.
•Paramètre options de validation JSON.
•Générer un schéma JSON depuis une instance JSON : Si un document d’instance JSON existe déjà, vous pouvez générer un schéma JSON à partir de celui-ci. Vous pouvez ensuite éditer le schéma le cas échéant.
•Convertir entre JSON et XML : Vous pouvez convertir entre des documents des deux formats.
Terminologie
Ci-dessous, vous trouverez des définitions des termes de schéma JSON communs utilisés dans la GUI et dans cette documentation.
Terme | Définition |
Schéma | L'objet de schéma de niveau supérieur dans un document de schéma JSON ; le fichier de schéma. |
Objet | Un type JSON contenant zéro ou plus de propriétés. |
Propriété | Une paire key:value d'un objet. Sa valeur peut être de n'importe quel type de données JSON. |
Mots-clés | La partie key de la paire d'un objet key:value. Il s'agit toujours d'une chaîne. |
Sous-schémas | Un objet qui est l'enfant d'un opérateur ou d'une dépendance. |
Définition | La description complète de tout type JSON. Les définitions peuvent être globales ou locales. |
Array | Une liste ordonnée de zéro ou plus d'items de tout type de données JSON séparée par des virgules. |
Types atomiques | Les types de données JSON string, number, integer, boolean et null. |
Sélecteurs de type | Les types any et multiple, qui sélectionnent les types any et multiple, respectivement |
Opérateurs | Les sélecteurs d'occurrence qui peuvent être ajoutés en tant qu'enfants des définitions. Voir la section Opérateurs. |
Types de données JSON
Les valeurs de propriété d'objet et les items de tableau peuvent être constitués des types suivants :
•string (doit être contenu dans des guillemets). Une chaîne peut être spécifiée en plus pour posséder un format, comme un format date-heure ou e-mail
•number: Un nombre avec une partie rationnelle ; il inclut des integers
•integer: Un nombre avec aucune partie fractionnelle ; un sous-ensemble du type du nombre
•boolean (true/false, non contenu dans des guillemets)
•object: Lorsqu’utilisé dans un autre objet, permet aux données d’être imbriquées
•array: Permet de créer plus de structures complexes qu’autorisées par les objets
•null (null, non contenu dans des guillemets)