FSD Practica XML_DTD_Schema_CSS_XSLT

Anuncio
FSD Práctica
XML, DTD, XML Schema, CSS, XSLT
Tipo de entrega:
por grupos de prácticas
Fecha límite:
sesión de laboratorio del 11 de Mayo
Lugar:
Atenea
Objetivos de la práctica:
•
•
•
•
•
•
•
Crear documentos XML bien formados
Crear documentos XML válidos (XML Schema)
Añadir estilos a un documento XML (CSS)
Entender qué es XSL y su relación con XML
Entender qué es XLST
Interpretar documentos XSLT
Generar documentos XSLT
Resultados a entregar:
• Sesión del 11 de Mayo evaluación en clase.
Estudio Previo
1. Identifica qué línea de código es necesario añadir en un documento XML para aplicar un
XML Schema propio al documento XML.
2. Crea un documento XML para el siguiente pedido que ha recibido por correo electrónico
una empresa que se dedica a la venta de herramientas para jardinería:
"Hola, necesito una cortadora de cesped para mi jardín de esas que anuncian en oferta, me
gustaría que fuera uno de esos modelos eléctricos, pues las de gasolina contaminan
mucho. Me llamo Roberto Movilla, la cortadora la tendrán que enviar a Albacete, la
dirección es Plaza de la Duquesa 12, la recogerá mi esposa que se llama Alicia Abad. Ahora
que lo pienso también necesitaré 3 podadoras para los setos. Les paso mi dirección de aquí
para lo referente al pago, es General Ricardos 56, aquí en Madrid. Es urgente, por favor, el
césped está muy alto."
La fecha del pedido es el 20 de octubre del 99. El empleado que se encarga del pedido ha
comprobado algunos datos necesarios: el código postal de la dirección de Albacete es
05020 y el de la de Madrid 28055; también ha consultado el catálogo de productos y ha
averiguado que la cortadora vale 148.95 euros y su código de producto es 872-AA, aunque
no sabe si es o no eléctrica; una podadora vale 7.98 y su código es 926-FH.
3. Compara tu solución al ejercicio anterior con la solución propuesta en el ejercicio “Creación
de documentos XML” del tutorial “Apuntes de XML” de Diego Arranz Hernando
(http://www.programacion.com/tutorial/apuntesxml/12/#ejercicios-ejercicio1) (Trae tu
solución y la comparación a la sesión de laboratorio en papel)
4. Crea un documento DTD para el documento XML del punto 3.
5. Compara tu solución al ejercicio anterior con la solución propuesta en el ejercicio “DTDs” Y
de
del
tutorial
“Apuntes
de
XML”
de
Diego
Arranz
Hernando
(http://www.programacion.com/tutorial/apuntesxml/12/#ejercicios-ejercicio2)
6. Construir un esquema XML para la siguiente DTD:
<!ELEMENT Libro (Titulo, Contenido, Copyright)>
<!ATTLIST Libro
xmlns CDATA #REQUIRED
>
<!ELEMENT Titulo (#PCDATA)>
<!ELEMENT Contenido ((Capitulo+, Separacion?)+)>
<!ELEMENT Capitulo (Tema, Seccion+)>
<!ATTLIST Capitulo
materia (XML|Java) "Java"
>
<!ELEMENT Tema (#PCDATA)>
<!ELEMENT Seccion (#PCDATA)>
<!ATTLIST Seccion
apartados CDATA #REQUIRED
dificil (si|no) "no"
>
<!ELEMENT Separacion EMPTY>
<!ELEMENT Copyright (#PCDATA)>
y probarlo con este documento:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE Libro [
<!ENTITY OReillyCopyright SYSTEM "copyright.txt">
]>
<Libro xmlns="http://www.mislibros.com/libros/javaxml"
xmlns:Catalogo="http://www.mislibros.com/catalogo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mislibros.com/libros/javaxml
libro.xsd">
<Titulo>Java y XML</Titulo>
<Contenido>
<Capitulo materia="XML">
<Tema>Introducción</Tema>
<Seccion apartados="7">Qué es</Seccion>
<Seccion apartados="3">Cómo se usa</Seccion>
</Capitulo>
<Capitulo materia="XML">
<Tema>Creando XML</Tema>
<Seccion apartados="0">Un documento XML</Seccion>
<Seccion apartados="2">La cabecera</Seccion>
<Seccion apartados="6">El contenido</Seccion>
</Capitulo>
<Capitulo>
<Tema>Analizando XML</Tema>
<Seccion apartados="3">Preparación</Seccion>
<Seccion apartados="3" dificil="true">SAX</Seccion>
<Seccion apartados="9" dificil="true">Manejadores</Seccion>
<Seccion apartados="0">Una forma mejor de cargar el
analizador</Seccion>
</Capitulo>
<Separacion/>
<Capitulo materia="Java">
<Tema>JDOM</Tema>
<Seccion apartados="2">Introducción</Seccion>
<Seccion apartados="4" dificil="true">DOM&JDOM</Seccion>
</Capitulo>
</Contenido>
<Copyright>&OReillyCopyright;</Copyright>
</Libro>
7. Compara tu solución al ejercicio anterior con la solución propuesta en el ejercicio “Schema”
Y
de
del
tutorial
“Apuntes
de
XML”
de
Diego
Arranz
Hernando
(http://www.programacion.com/tutorial/apuntesxml/12/#ejercicios-ejercicio2)
8. Identifica qué línea de código es necesario añadir en un documento XML para aplicar una
hoja de estilos al documento XML.
9. Repasa el manual “css.pdf” del material adicional del libro “Cómo programar en Java” de
JDeitel, Harvey M. y Deitel, Paul J. Quinta edición. Puedes descargarte el manual del
Campus o bien consultarlo en el CD que acompaña al libro.
10. Estudio del manual “XSL: Extensible StyleSheet Language Transformation (XSLT)”
(jws1_05PDF.pdf incluido dentro de los archivos de la práctica y facilitado por
Pearson/Prentice Hall)
11. Abre con el navegador
detenidamente.
los
archivos
planner.xml
y
conditional.xsl
y
analízalos
12. Abre con el navegador el archivo results.html visualiza su código fuente y analízalo.
13. Elimina el archivo results.html de tu directorio de trabajo
14. Compila y ejecuta Transform.java (aplicación facilitada por Pearson/Prentice Hall y que se
explica dentro del manual del apartado 1) utilizando como argumentos planner.xml,
condicional.xsl y results.html (apartado 5.6 del manual del apartado 1)
15. Comprueba que se ha generado de nuevo results.html, ábrelo con el navegador, visualiza
su código fuente y analízalo.
Ejercicio
Define una base de datos en XML que permita almacenar información de películas. El fichero de la
base de datos (fichero XML) lo denominaremos peliculas.xml.
Por cada película queremos que la base de datos contenga la siguiente información:
1.
2.
3.
4.
Nombre de la película: Ha de tener un nombre único y que el campo sea obligatorio
Director de la película: Puede tener uno o más directores y que el campo sea obligatorio.
Actores: Puede tener uno o más actores y que el campo sea obligatorio.
Año: Tendrá el año en que se hizo como campo obligatorio. Se ha de controlar que el año
tan solo tenga dígitos numéricos.
5. Género: (terror, acción,…) Se ha de clasificar dentro de un género como campo obligatorio.
El género tan solo puede tener un valor.
6. Oscar obtenidos: Puede tener cero o algún oscar. EL campo es opcional y tendrá el valor
por defecto 0.
Esta base de datos se debe compartir entre diferentes usuarios. Para que su gestión sea correcta,
es decir, las altas se hagan estrictamente siguiendo el formato definido y que se cumplan todas las
restricciones, se propone definir un DTD y un Schema correcto.
Práctica XML, DTD y Schema
Se pide que definas un fichero DTD y un fichero Schema para la base de datos y te asegures que
ésta sea valida conforme al Schema o DTD definidos. Define un juego de pruebas para demostrar
que el fichero peliculas.xml esta bien formado (cumple la sintaxis xml) y es válido (cumple la
sintaxis DTD y Schema).
Práctica XML i CSS
Para que la presentación del contenido de la base de datos sea más clara, proponemos que se
defina una hoja de estilo. En esta hoja de estilo se ha de indicar por cada “tag” definido en la base
de datos; por ejemplo un tipo de letra, color y tamaño pero se valorará la creatividad. Se deja el
estilo libre.
Práctica XML i XSLT
Realiza las siguientes búsquedas en la base de datos peliculas.xml:
1. Por título de la película. Dado un título nos retornará toda la información asociada a la
película en cuestión. Puede existir más de una entrada a la base de datos por título.
2. Por director de la película. Dado el nombre de un director, nos retornará la lista de películas
que ha dirigido ordenadas por género. Además, dentro de un género, las películas estarán
ordenadas por año
Define dos ficheros de transformación: titulo.xsl y director.xsl, que permitan realizar las consultas
anteriores. Aplica las transformaciones a peliculas.xml y muestra el resultado en tu navegador. Los
ficheros de transformación generarán ficheros html.
Descargar