Schéma Avro

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 > Avro, Schéma Avro >

Schéma Avro

Un schéma Avro spécifie la structure d'un bloc de données Avro. Il spécifie quels champs de données sont attendus et comment les valeurs sont représentées. Vous trouverez des informations concernant le schéma Avro et ses spécifications ici.

 

Veuillez noter les points suivants concernant les schémas Avro :

 

Un schéma Avro est créé dans un format JSON
Un schéma Avro peut être : une chaîne JSON, un objet JSON ou un tableau JSON
Un schéma Avro peut contenu quatre attributs : name, namespace, type, et fields
Il existe huit types de données primitives : null, boolean, int, long, float, double, bytes, et string
Il existe six types complexes : records, enums, arrays, maps, unions, et fixed
Les types primitifs n'ont pas d'attributs; chaque type complexe a son propre jeu d'attributs

 

Pour plus de détails et d'informations concernant le schéma Avro, voir la spécification de schéma Avro.

 

Exemples

Ci-dessous, vous trouverez des exemples simples de schémas Avro, chacun contenant des fragments de données Avro correspondants dans un format JSON. Veuillez noter que le schéma définit une certaine structure. Dans certains cas, lorsque la structure définie est instanciée plusieurs fois, la sortie résultant peut ne pas être un JSON valide. Par exemple, un schéma peut définir la structure d'un objet JSON. Si l'objet JSON est instancié plusieurs fois, chaque objet (séparément) peut être valide par rapport au schéma Avro, mais le document entier ne serait pas un JSON valide, parce qu'il n'y a pas d'objet contenant. SI un JSON valide est requis, vous souhaiterez éventuellement réécrire le schéma Avro pour valider un tableau d'objets JSON. Comparer les exemples 4 et 5 ci-dessous pour consulter une illustration de ce point.

Click to exppand/collapse01: Schéma Avro en tant que chaîne JSON

Ce schéma est une chaîne unique, et il spécifie que le bloc de données doit contenir une valeur qui est du type de données primitif (int) Avro : "int"

 

Valid Avro: 2016

Invalid Avro: "2016"

 

 

Click to exppand/collapse02: Schéma Avro en tant qu'objet JSON

Ce schéma spécifie exactement la même chose que le schéma précédent, mais il s'agit d'un objet JSON. Le bloc de données doit contenir un item qui est un valeur du type de données primitif (int) Avro:

{

   "type": "int"

}

 

Valid Avro: 2016

Invalid Avro: "2016"

 

 

Click to exppand/collapse03: Schéma Avro en tant qu'objet : tableau d'entiers

Ce schéma est un objet JSON qui spécifie un tableau d'entiers :

{

   "type": "array",

   "items": "int"

}

 

Valid Avro: [2016, 2017]

Valid Avro: [2016]

Valid Avro: [2016]

Invalid Avro: 2016, 2017

 

 

Click to exppand/collapse04: Schéma Avro en tant qu'objet : enregistrements

Ce schéma est un objet JSON qui spécifie un seul enregistrement :

{

   "type": "record",

   "name": "ages",

   "fields" : [

   {"name": "name", "type": "string"},

   {"name": "age", "type": "int"}

   ]

}

 

Valid Avro: {"name":"John", "age":35}

 

 

Click to exppand/collapse05: Schéma Avro en tant qu'objet : enregistrements multiples

Ce schéma est un objet JSON qui spécifie un tableau d'items d'enregistrement, chacun d'entre eux doit être un objet JSON :

{

   "type": "array",

   "items": {

   "type": "record",

   "name": "ages",

   "fields" : [

   {"name": "name", "type": "string"},

   {"name": "age", "type": "int"}

   ]

    }

}

 

Valid Avro: [{"name":"Mary", "age":34}, {"name":"John", "age":35}]

 

 

 

Types de fichier de schéma Avro

Si vous souhaitez utiliser les fonctions de XMLSpy pour l'édition et la validation liée à Avro, XMLSpy doit être capable de reconnaître un fichier en tant qu'un schéma Avro. Un fichier est reconnu en tant que schéma Avro si l'extension du fichier est définie comme telle dans le dialogue Options de XMLSpy (Outils | Options | Types de fichier). Les paramètres par défaut de XMLSpy définissent une extension de fichier, l'extension .avsc, comme étant celle d'un fichier de schéma Avro. Si vous souhaitez créer d'autres extensions de fichier qui spécifient les documents de schéma Avro, ajoutez ces extensions de fichier en tant qu'extensions de schéma Avro à la liste dans le dialogue Options.

 

Créer et éditer des schémas Avro

Dans XMLSpy, vous pouvez créer un nouveau fichier en tant qu'un schéma Avro en spécifiant une extension de fichier de schéma Avro en tant que son type de fichier. XMLSpy fournit une aide à l'édition intelligente pendant la saisie. Cette aide comprend des suggestions de mots-clés sensibles au contexte, la saisie automatique de paires de crochets, de parenthèses et de guillemets, une coloration syntaxique et une saisie automatique des mots-clés. En outre, il existe trois assistants à la saisie : Propriétés JSON, Valeurs JSON et Entités JSON. Les entrées qui sont valables sont sensibles au contexte. Double-cliquer dans une entrée pour l'insérer à l'emplacement actuel du curseur. Vous pourrez ensuite valider le fichier par rapport à la spécification de schéma Avro avec la commande de menu Valider | Valider XML (F8).

 


© 2018 Altova GmbH