Examen de repaso 1. Tema 2 Pregunta 1. ¿Eres capaz de corregir

Anuncio
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)
Descargar