Lenguajes para el intercambio de datos

Empecemos por algunos de identificación de nodos en lenguajes de serialización de datos:

  1. Determine y justifique cuántos nodos contiene el siguiente documento JSON:

    {
       "nombre": "Pedro Martínez Álvarez",
       "edad": 32,
       "casado": true,
       "hijos": [
          "Felipe",
          "Sonsoles"
       ]
    }
    
  2. Indique cuáles son los tipos de los nodos del ejercicio anterior.

  3. Determine y justifique cuántos nodos contiene el siguiente documento YAML:

    ---
    nombre: Pedro Martínez Álvarez
    edad: 32
    casado: true
    nacimiento: 1991-05-07
    defuncion: null
    direccion:
       calle: Callo
       num: 5
       cp: 12345
    
  4. Reescriba el documento anterior haciendo explícitos mediante etiquetas (!!int, !!str, etc.) los tipos que se deducen del aspecto de los nodos.

Y, ahora, diseñemos documentos para transmitir o almacenar información. De cada uno de ellos cree versiones JSON, YAML y XML.

  1. Diseñe un documento para almacenar las facturas generadas por una empresa. Téngase en cuenta que:

    • Cada factura tiene un código.

    • La factura también necesita la fecha de emisión.

    • En la factura aparecen los datos del cliente (dni, nombre, dirección, código postal, población).

    • De cada producto que se ha comprado debe aparecer la cantidad de productos comprados, la denominación y el precio unitario.

    • Se debe guardar el IVA de cada producto.

    • Si es necesario se indicará un descuento al importe total de la factura.

  2. Diseñe un documento para almacenar la información sobre los préstamos de libros que se realizan en una biblioteca:

    • De cada libro guardamos varios datos: código ISBN, nombre, editorial, año de publicación, autor.

    • De cada libro podemos tener uno o varios ejemplares. Cada ejemplar se diferencia de otro por un código numérico.

    • Se prestan los ejemplares, y de cada préstamo hay que indicar el ejemplar del libro, el socio al que se ha prestado y la fecha de préstamo.

    • Del socio hay que guadar DNI, nombre y dirección.

  3. Escriba un documento para almacenar los coches que tiene puestos a la venta un concesionario:

    • El concesionario se dedica a vender coches de distintos modelos de una misma marca de coches (es conveniente que en el documento quede constancia de cuál es esa marca).

    • De cada modelo es necesario recoger la cilindrada, los caballos de vapor, la velocidad máxima y el número de plazas.

    • También se quiere almacenar cuántos coches de cada modelo hay en el concesionario, identificar cada uno de ellos y saber los kilómetros que tiene (el concesionario también vende coches de segunda mano).

    • Un coche puede estar reservado o no.

  4. Retome el ejemplo del ejercicio anterior, pero enriquezca el documento para que se conozca los del cliente que ha realizado una determinada reserva (nombre, dirección, tlfo).

  5. Diseñe un documento que recoja la información referente a los Parques Nacionales de España, en especial:

    • Provincia y Comunidad Autónoma en la que se encuentra.

    • Extensión de terreno.

    • Presupuesto anual para su protección.

    • Fauna y flora a preservar:

      • Nombre común.

      • Nombre científico.

      • Número de ejemplares en cada parque (para fauna).

      • Peligro de extinción: alto, medio, bajo.

  6. Un ayuntamiento desea recoger la información de los habitantes que hay en su municipio, de manera que de cada ciudadano se sepa:

    • Nombre y apellidos

    • Dirección

    • Teléfono

    • Lugar de nacimiento

    • Quién es el padre y quién la madre.

  7. Diseñe un documento para almacenar la información de un gráfico vectorial en 2 dimensiones. Los elementos que pueden definirse en ese documento son:

    • Punto: Se definirá con dos coordenadas: x,y.

    • Circunferencia: se define por un centro (coordenadas x,y) y un radio.

    • Recta: se define por dos puntos: el inicial y el final.

    • Rectángulo: se define por dos puntos: la esquina superior derecha y la esquina superior izquierda.

    Todo elemento debe estar inequívocamente identificado, y debe conocerse de alguna forma cuál es la unidad de medida (m, cm, etc.) en que están expresados todos los números que aparecen.