Actividad 402
Entrega
- La entrega será un fichero DTD que cumpla los requisitos solicitados.
- El nombre del fichero debe ser
402.dtd
.
Se valorará
Para la valoración de este ejercicio, se tendrán en cuenta los siguientes aspectos:
- Funcionalidad. El DTD debe validar correctamente cualquier documento XML que tenga las características descritas en el enunciado.
- Documentación. Se deben añadir comentarios explicando las decisiones tomadas durante el diseño del DTD.
Una tienda de informática utiliza un fichero XML para almacenar:
- Los productos disponibles en su catálogo.
- Los clientes de la tienda.
- Las ventas realizadas.
Para cada producto, se guarda:
- Identificador (atributo).
- Título.
- Fabricante/marca.
- Modelo.
- Precio.
- Divisa (atributo).
- Descuento sobre el precio (atributo).
- Stock.
- Si es reacondicionado o no.
- IVA (atributo).
- EAN (atributo).
De los clientes se quiere almacenar:
- Identificador (atributo).
- DNI.
- Nombre.
- Apellidos.
- Teléfono.
- Dirección postal.
- Fecha de creación (atributo).
Para cada venta, se almacena:
- Fecha de la venta (atributo).
- Cliente (atributo).
- Lista de productos vendidos:
- Identificador del producto (atributo).
- Cantidad vendida (atributo).
- Precio total.
- Divisa.
Documento XML
Ejemplo de documento XML que cumple los requisitos.
Escribe un documento DTD para validar el tipo de documento XML descrito, teniendo en cuenta que:
- El documento debe tener, al menos, un producto.
- El documento puede no tener ningún cliente ni ninguna venta registrada.
- Todos los atributos son obligatorios excepto
ean
,descuento
ycantidad
. - El valor por defecto de
descuento
es0
. - El atributo
iva
puede tomar como valores:general
,reducido
osuperreducido
. - El atributo
divisa
puede tomar como valores:EUR
oUSD
. - El atributo
idP
es el identificador de un producto. - El atributo
idC
es el identificador de un cliente. - Los elementos
<fabricante>
y<marca>
tienen el mimso fin, pero no se pueden utilizar simuláteamente. - El elemento
<reacondicionado />
, cuando aparece, siempre es un elemento vacío. - En un cliente, se utilizan los elementos
<nombre>
y<apellidos>
o el elemento<nombre-completo>
, pero no a la vez. - Un cliente puede tener un teléfono, varios o ninguno.
- Un cliente puede tener registrada una dirección o no.
- En el caso de haberlas, una venta está formada por, al menos, un producto (
<item>
). - El atributo
ref
es una referencia al identificador de un producto que forzosamente debe estar en el fichero. - El valor por defecto de
cantidad
es1
.
En cada atributo, se debe elegir el tipo de dato más restrictivo posible (siendo CDATA
el más permisivo) para las características de la información que se almacena en él.
Además, incluye comentarios explicando el código DTD.