Examen de repaso 1. Tema 2 Pregunta 1. ¿Eres capaz de corregir lo que está mal en los siguientes cuatro documentos XML? <?xml version = "1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE documento [ <!ELEMENT documento (empleado)*> <!ELEMENT empleado (fecha_contrato, nombre)> ]> <documento> <empleado> <fecha_contrato>15/05/2005</fecha_contrato> <nombre> Grace Kelly </nombre> </empleado> </documento> -----------------------------------------------------<?xml version = "1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE documento [ <!ELEMENT documento (empleado)*> <!ELEMENT empleado (nombre, fecha_contrato)> <!ELEMENT nombre (#PCDATA)> <!ELEMENT fecha_contrato (#PCDATA)> ]> <documento> <empleado> <fecha_contrato>October 15, 2005</fecha_contrato> <nombre> Grace Kelly </nombre> </empleado> </documento> --------------------------------------------------------<?xml version = "1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE documento [ <!ELEMENT documento (empleado)?> <!ELEMENT empleado (fecha_contrato+, nombre*, phone+)> <!ELEMENT fecha_contrato (#PCDATA)> <!ELEMENT nombre (#PCDATA)> <!ELEMENT phone (#PCDATA)> ]> <documento> <empleado> <fecha_contrato>October 15, 2005</fecha_contrato> <nombre> Grace Kelly </nombre> <phone> 555.8888 </phone> </empleado> <empleado> <fecha_contrato>October 16, 2005</fecha_contrato> <nombre> Myrna Loy </nombre> <nombre> Muriel Blandings </nombre> <phone> 555.9999 </phone> </empleado> </documento> --------------------------------------------------------------<?xml version = "1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE documento [ <!ELEMENT documento (empleado)*> <!ELEMENT empleado (fecha_contrato+ | nombre+)> <!ELEMENT fecha_contrato (#PCDATA)> <!ELEMENT nombre (#PCDATA)> ]> <documento> <empleado> <fecha_contrato>October 15, 2005</fecha_contrato> <nombre> Grace Kelly </nombre> </empleado> </documento> -----------------------------------------------Pregunta 2. ¿Qué palabra reservada se utiliza en una declaración <!ATTLIST> para que un atributo sea opcional?. Pon un ejemplo. Pregunta 3. ¿Qué palabra reservada se utiliza en una declaración <!ATTLIST> para asegurarse que un atributo tiene siempre el mismo valor?. Pon un ejemplo Pregunta 4. ¿Cómo declararías para el elemento <amigo> el atributo “nombre” como obligatorio, el atributo dirección opcional y el teléfono opcional? Considera que todos los atributos tienen de tipo de datos Texto. Pregunta 5. ¿Cómo declararías que los valores de un atributo “casado” sólo puedan ser “sí o no”? y ¿cómo declararías que por defecto el valor sea “no”? Pregunta 6. ¿Cómo declararías una entidad externa no analizable llamada “montañas” que se corresponde con una imagen almacenada en el archivo “montañas.jpg”? Ejercicio práctico Paso 1. Crea un documento XML para el documento receta (Receta de Macarrones con Roquefort) que refleje fielmente la estructura definida en el mapa estructural del ejercicio xhtml del tema 1. Comprueba con el validador del w3c que está bien formado. El archivo se debe llamar receta1.xml Paso 2. Crea una DTD que defina la estructura del documento receta conforme al mapa estructural del tema 1. Añade la DTD al documento XML anterior y valídalo. El archivo resultado debe llamarse receta2.xml Paso 3. Define los atributos número de ingrediente como opcional en el elemento “ingrediente” y “orden” como obligatorio en el elemento “paso” de “preparación”. Cambia el documento XML añadiendo dichos atributos y sus valores. Valida el documento. El archivo resultado debe llamarse receta3.xml Paso 4. Define una entidad que se llame “despedida” que contenga un texto de despedida al final de la receta (como por ejemplo “Espero que les guste”). Utilízala en el documento xml del paso 3. Valídalo. El resultado debe llamarse receta4.xml Paso 5. Define una entidad “foto” para la imagen de la foto del plato ya preparado. Utiliza la definición de notación siguiente: <!NOTATION jpg SYSTEM "image/gif">. Valida el documento XML. Debe llamarse receta5.xml Paso 6. Ahora añade en la DTD un elemento opcional que se llame” imagen” de contenido vacío (EMPTY) y un atributo llamado “valor” para este elemento “imagen” de tipo ENTITY que sea obligatorio. Finalmente, incluye este Nuevo element en el document xml: <imagen valor=”foto”/>. El nuevo documento debe llamarse receta6.xml. Valida el documento Paso 7. Finalmente vamos a dividir la DTD en dos. Por un lado la definición de todos los elementos, que seguirán embebidos en el documento receta7.xml y, por el otro, las reglas de imagen y su atributo “valor” que estarán en un archivo aparte llamado “gram.dtd”. Ahora debes incrustar “gram.dtd” en el documento xml, receta7.xml, declarando y utilizando una entidad paramétrica. El nuevo documento debe llamarse receta7.xml (y recuerda que también tienes un archivo gram.dtd)