Ejercicio 1. Pedidos de Pinturas.
Actividad Práctica: Implementación de un Sistema de Pedidos
1. Contexto del Ejercicio
Trabajamos en una tienda de pinturas. Para gestionar el inventario y los pedidos a proveedores sin usar bases de datos relacionales, vamos a implementar un sistema basado en ficheros de texto estructurados.
Debes crear la estructura de datos (XML) y las reglas de validación (XSD) que aseguren que los pedidos se registran correctamente.
2. Especificaciones Técnicas
Debes definir un sistema que permita almacenar múltiples peticiones. Cada petición contiene pedidos individuales con la siguiente información:
- Información de Tiempo: Fecha y hora exacta del pedido.
- Logística: Cantidad de pintura solicitada (debe ser un número entero).
- Producto (Pintura): Debe incluir la marca y el nombre del color.
- Proveedor: Debe tener un identificador único llamado CIF (que debe ir como atributo).
- Nombre de la empresa y domicilio.
- Uno o varios teléfonos de contacto.
3. Instrucciones
Paso A: Estructura del Documento XML (pedidos.xml)
Crea un archivo llamado pedidos.xml. Utiliza un elemento raíz llamado <peticiones>. Dentro, añade al menos dos elementos <pedido>. Asegúrate de que la estructura siga el orden lógico: primero cuándo se hizo (fecha), cuánto se pidió (cantidad), qué se pidió (pintura) y a quién (proveedor).
Paso B: Definición del Esquema (pedidos.xsd)
Crea un archivo llamado pedidos.xsd. Aquí es donde definimos las reglas. Sigue estas pautas:
- Tipos Simples: * Para la cantidad, busca el tipo de dato XSD que solo admita números enteros.
- Para la fecha, utiliza el tipo que permite incluir tanto el día como la hora (dateTime).
- Tipos Complejos: * Define <pintura> como un tipo complejo que contenga una secuencia de marca y color.
- Define <proveedor> de forma que el cif sea un atributo obligatorio (use="required").
- Cardinalidad: Configura el elemento <pedido> para que pueda aparecer de 1 a infinito dentro de peticiones.
- Configura el <telefono> para que el proveedor pueda tener más de uno.
Paso C: Validación
En tu archivo XML, añade la referencia al esquema XSD para que cualquier editor (o tú mismo mediante una herramienta de validación) pueda comprobar si has cometido errores de sintaxis o de tipo de dato.
4. Preguntas de Autoevaluación
- Validación de datos: Si intentas poner "Mucho" en el campo <cantidad> en lugar de un número, ¿qué debería decirte el validador?
- Atributos vs Elementos: ¿Por qué hemos decidido que el CIF sea un atributo y no un elemento hijo? ¿Qué diferencia visual hay en el XML?
- Extensibilidad: Si quisiéramos añadir que la pintura puede ser "Mate" o "Brillo", ¿en qué parte del XSD deberías modificar la estructura?