Esquemas Avro
Un esquema Avro especifica la estructura de un bloque de datos Avro. Al igual que los esquemas JSON, los esquemas Avro especifican cómo se organizan los datos JSON en un documento JSON. Especifican qué campos de datos deben esperarse y cómo se representan los valores. Aquí encontrará información sobre los esquemas Avro y su especificación.
Debe tener en cuenta estos aspectos de los esquemas Avro:
•Un esquema Avro se crea en formato JSON.
•Un esquema Avro puede ser una cadena JSON, un objeto JSON o una matriz JSON.
•Un esquema Avro puede contener cuatro atributos: name, namespace, type y fields.
•Hay ocho tipos de datos primitivos: null, boolean, int, long, float, double, bytes y string.
•Hay seis tipos de datos complejos: records, enums, arrays, maps, unions y fixed.
•Los tipos primitivos no tienen atributos. Cada tipo complejo tiene su propio conjunto de atributos.
Para más información consulte la especificación Avro Schema.
Ejemplos
A continuación damos algunos ejemplos sencillos de esquemas Avro, acompañados de sus correspondientes ejemplos de instancia JSON. Recuerde que el esquema define una estructura determinada. En algunos casos, cuando la estructura definida se usa con instancias varias veces, puede que el resultado obtenido no sea código JSON válido. Por ejemplo, un esquema puede definir la estructura de un objeto JSON. Si el objeto JSON se usa con instancias varias veces, cada objeto puede ser válido según el esquema Avro, pero el documento entero no sería código JSON válido porque no existe un objeto contenedor. Para que el código JSON sea válido, sería necesario volver a escribir el esquema Avro para validar una matriz de objetos JSON. Esto se entiende mejor con los ejemplos nº4 y 5.
Este esquema es una sola cadena de texto que especifica que el documento de instancia debe contener un valor que es del tipo de datos Avro primitivo "int"
Ejemplo de código JSON válido: 2016 Ejemplo de código JSON no válido: "2016"
|
Este esquema especifica exactamente lo mismo que el anterior, pero es un objeto JSON. El documento de instancia debe contener un elemento que es un valor del tipo de datos Avro primitivo: { "type": "int" }
Ejemplo de código JSON válido: 2016 Ejemplo de código JSON no válido: "2016"
|
Este esquema es un objeto JSON que especifica una matriz de enteros: { "type": "array", "items": "int" }
Ejemplo de código JSON válido: [2016, 2017] Ejemplo de código JSON válido: [2016] Ejemplo de código JSON válido: [2016] Ejemplo de código JSON no válido: 2016, 2017
|
Este esquema es un objeto JSON que especifica un solo registro: { "type": "record", "name": "ages", "fields" : [ {"name": "name", "type": "string"}, {"name": "age", "type": "int"} ] }
Ejemplo de código JSON válido: {"name":"John", "age":35}
|
Este esquema es un objeto JSON que especifica una matriz de registros y cada uno de ellos debe ser un objeto JSON: { "type": "array", "items": { "type": "record", "name": "ages", "fields" : [ {"name": "name", "type": "string"}, {"name": "age", "type": "int"} ] } }
Ejemplo de código JSON válido: [{"name":"Mary", "age":34}, {"name":"John", "age":35}]
|
Tipos de archivo de esquema Avro
Para poder usar las funciones de edición y validación de esquemas Avro de XMLSpy, la aplicación debe ser capaz de reconocer que un archivo es un esquema Avro. Para ello es necesario definir la extensión del archivo como extensión de archivo de esquema Avro y esto se hace en el cuadro de diálogo "Opciones" (Herramientas | Opciones | Tipos de archivo). La configuración predeterminada de XMLSpy define una extensión de archivo como extensión de archivo de esquema Avro: la extensión .avsc. Si desea crear otras extensiones de archivo que especifiquen documentos de esquema Avro, añádalas a la lista de extensiones de esquemas Avro en el cuadro de diálogo "Opciones".
Crear y editar esquemas Avro
En XMLSpy puede crear archivos nuevos como esquemas Avro con sólo elegir la extensión de archivo de esquema Avro como extensión del archivo. Mientras teclea, XMLSpy ofrece ayuda contextual, como la entrada automática de pares de paréntesis, corchetes, llaves y comillas, color de sintaxis y finalización automática de palabras clave. Además, ofrece tres prácticos ayudantes de entrada: las ventanas Propiedades JSON, Valores JSON y Entidades JSON. Las entradas que aparecen en estas ventanas no son contextuales. Haga doble clic en una entrada para introducirla en el documento (en la posición actual del cursor). Después puede validar el archivo con la especificación Avro schema specification con el comando de menú XML | Validar el documento XML (F8).