MetaCard y Revolution: Herramientas de autor multiplataforma para multimedia | ||
---|---|---|
Anterior | Capítulo 7. Texto | Siguiente |
En este apartado se expondrán dos casos prácticos de trabajo con ficheros XML. El primero se dedicará a editar el fichero ocultando al usuario la necesidad de manejarse con las etiquetas. El segundo es un ejemplo de realización de un cuestionario de respuestas múltiples que toma como datos de partida un fichero XMl.
Ambos dos están basados en los trabajos realizados por las personas que se citan en ellos.
La idea de empezar este proyecto surge con la inclusión de la librería xml en Revolution 2.0. Dicha librería pone a nuestra disposición una serie de funciones que permiten manipular y procesar documentos xml. Resulta muy interesante dada la importancia y auge del XML estudiar estas funciones, y aplicarlas para comprobar su funcionamiento y las posibilidades que ofrecen.
Por tanto el objetivo principal de este trabajo es, partiendo de otros trabajos ya realizados en la asignatura de SMM, dar un paso más y estudiar un caso en concreto, procesar un documento xml con una determinada estructura y sentar las bases para que a partir de este se puedan abordar proyectos más ambiciosos y complejos. En el procesamiento del caso de estudio se pretende resolver los siguientes puntos:
Cargar un documento xml, y crear su árbol asociado.
Modificar/Actualizar/Eliminar los nodos del árbol cargado en memoria.
Procesar (Modificar/Añadir/Eliminar nodos) un árbol con número de hijos variable.
Modificar / Actualizar atributos en un nodo.
Guardar el documento xml modificado mediante la aplicación.
Para dotar de un interfaz que no precise aprendizaje proponemos el "modo de formulario" que se utiliza con tanta profusión hoy en día, como el que muestra la Figura 7-19.
Con esta apariencia el formato del documento es transparente al usuario y ha de centrarse en la informaciçón que contiene. Para probar nuestra aplicación partiremos de un contenido inicial y lo modificaremos para observar los cambios que produce el código. El contenido no es lo más importante, así que puede ser algo como:
Lo interesante de XML es que se pueden definir las reglas que describen su correcta escritura. Aunque de momento no la validaremos, en nuestro caso se han recogido en forma de uan DTD, como la mostrada a continuación:
<!ELEMENT Trabajo (Titulo, Grupo, PalabrasClave?, Introduccion, Desarrollo?, Archivos?)>
<!ELEMENT Titulo (#PCDATA)>
<!ELEMENT Grupo (Componente+)>
<!ELEMENT Componente (Nombre, Datos?, foto?)>
<!ELEMENT Nombre (#PCDATA)>
<!ELEMENT Datos EMPTY>
<!ATTLIST Datos
Asignatura CDATA #REQUIRED
Titulacion (Inf | Doc) #IMPLIED
Correo CDATA #IMPLIED
>
<!ELEMENT foto EMPTY>
<!ATTLIST foto
fichero CDATA #REQUIRED
ancho CDATA #REQUIRED
alto CDATA #REQUIRED
>
<!ELEMENT PalabrasClave (Item+)>
<!ELEMENT Introduccion (Objetivos?, Resumen, Requerimientos?, Bibliografia?)>
<!ELEMENT Objetivos (Frase+)>
<!ELEMENT Resumen (Parrafo+)>
<!ELEMENT Requerimientos (Parrafo+)>
<!ELEMENT Bibliografia (Item*)>
<!ELEMENT Desarrollo (Capitulo+)>
<!ELEMENT Capitulo (#PCDATA)>
<!ATTLIST Capitulo
Titulo CDATA #REQUIRED
Enlace CDATA #IMPLIED
>
<!ELEMENT Archivos (Enlace*)>
<!ELEMENT Item (#PCDATA)>
<!ELEMENT Parrafo (#PCDATA)>
<!ELEMENT Frase (#PCDATA)>
<!ELEMENT Enlace (#PCDATA)>
<!ATTLIST Enlace
Descripcion CDATA #IMPLIED
>
Se trata de implementar una aplicación que utiliza el esquema de respuestas múltiples a una pregunta dada para evaluar una etapa de aprendizaje. Como "base de datos" o fuente de datos se empleará un fichero XML que contiene los enunciados y las posibles respuestas a cada pregunta.
Puede haber cualquier número de preguntas y cualquier número de respuestas; pero siempre al menos una de cada, y la respuesta verdadera. Así que la aplicación deberá cargar un documento XML (a elección del usuario) y crear las tarjetas y los respuestas.
En cada pregunta se nos da como opción varias respuestas, de las que sólo una es cierta y no se pasará a la siguiente tarjeta hasta que no se conteste correctamente la actual. Se informará al usuario con un sonido y una señal gráfica distinta según haya acertado o no.
La aplicación a desarrollar debe dar soporte a mostrar estas preguntas y recoger la elección del usuario, mostrando al final una estadística del resultado alcanzado. La puntuación se acumula de una pregunta a otra y, al final, nos dirá la puntuación que se ha obtenido y preguntará si se quiere volver a empezar o salir de la aplicación.
Para tener una base común de desarrollo, se propone esta distribución de objetos en la ventana que implemente la aplicación a desarrollar: