Proyecto Consultas en XML
Salta a la navegació
Salta a la cerca
Introducción
- Consultas en XML es una aplicación que nos permitirá obtener información sobre datos del Instituto guardados en formato XML a través de la línea de comandos. La aplicación deberá cargar y validar el XML contra un DTD y después a través de las opciones de menú presentadas por pantalla ofrecerá la posiblidad de mostrar información al usuario de los datos del XML.
- Aplicación ha de permitir obtener la siguiente información:
- Alumnos
- Todos los alumnos de un año X
- Todos los alumnos que tengan la edad Y
- Todos los alumnos del ciclo Z del curso C
- Profesores
- Los profesores del ciclo Z
- Los profesores del ciclo Z del curso C
- Aulas
- Aula en la que se imparte el ciclo Z
- Alumnos
Definiciones
- X: rango 1900 a 2020
- Y: rango 15 a 100
- Z: rango SMX, SIS, DAM, DAW
- C: rango 1,2
- XML base:
<IES_Esteve_Terradas> <ciclo grado="medio" siglas="smx"> <titulo>Sistemas microinformáticos y redes</titulo> <profesores> <profesor imparte_clases_en="1"> <nombre>Rafael Aracil</nombre> </profesor> <profesor imparte_clases_en="2"> <nombre>Josep Maria Sales</nombre> <tutor/> </profesor> </profesores> <curso num="1"> <aula nombre="Aula 2" /> <alumnos> <alumno> <nombre></nombre> <ano_nacimiento></ano_nacimiento> </alumno> </alumnos> </curso> <curso num="2"> <aula nombre="Aula 2" /> <alumnos> <alumno> <nombre></nombre> <ano_nacimiento></ano_nacimiento> </alumno> </alumnos> </curso> </ciclo> <ciclo grado="superior" siglas="sis"> <titulo>Administración de sistemas informáticos y redes</titulo> <profesores> <profesor imparte_clases_en="1"> <nombre>Leandro Zabala</nombre> </profesor> <profesor imparte_clases_en="2"> <nombre>David Sicart</nombre> <tutor/> </profesor> </profesores> <curso num="1"> <aula nombre="Aula 3" /> <alumnos> <alumno> <nombre></nombre> <ano_nacimiento></ano_nacimiento> </alumno> </alumnos> </curso> <curso num="2"> <aula nombre="Aula 3" /> <alumnos> <alumno> <nombre></nombre> <ano_nacimiento></ano_nacimiento> </alumno> </alumnos> </curso> </ciclo> </IES_Esteve_Terradas>
- DTD:
<!ELEMENT IES_Esteve_Terradas (ciclo)+> <!ELEMENT ciclo (titulo,profesores,curso+)> <!ELEMENT titulo (#PCDATA)> <!ELEMENT profesores (profesor)+> <!ELEMENT curso (aula,alumnos)> <!ELEMENT profesor (nombre, tutor?)> <!ELEMENT nombre (#PCDATA)> <!ELEMENT tutor EMPTY> <!ELEMENT aula EMPTY> <!ELEMENT alumnos (alumno)+> <!ELEMENT alumno (nombre, ano_nacimiento)> <!ELEMENT ano_nacimiento (#PCDATA)> <!ATTLIST ciclo grado (medio | superior) #REQUIRED> <!ATTLIST ciclo siglas (smx | dam | daw | sis) #REQUIRED> <!ATTLIST profesor imparte_clases_en (1 | 2) #REQUIRED> <!ATTLIST aula nombre CDATA #REQUIRED> <!ATTLIST curso num (1 | 2) #REQUIRED>
Especificaciones
- Rellena el XML base con los datos de al menos 1 ciclo (datos reales)
- Crea un menú de inicio con una descripción sobre la app y las opciones: Cargar datos, Salir del programa
- Al seleccionar la opción "Salir del programa" el programa printará una frase de despedida y terminará
- Al seleccionar la opción "Cargar datos" leerá el fichero XML (utilizando la librería Etree) y el fichero DTD, lo validará e informará al usuario si todo ha ido bien, sino printará un error
- Si el fichero XML se ha cargado correctamente saldrán las opciones: (Consultas alumnos, Consultas profesores, Consultas aulas, volver al menú anterior
- Al seleccionar la opción "Consulta alumnos" se mostrarán las siguientes opciones: (Mostrar alumnos por año de nacimiento, Mostrar alumnos por edad, Mostrar alumnos por ciclo y curso, volver al menú anterior)
- Al seleccionar la opción "Mostrar alumnos por año de nacimiento se mostrará el texto: Introducir año de nacimiento y el usuario podrá introducir el año de nacimiento. Si el año es válido (Utilizando Xpath) se hará una consulta al XML y se mostrará el resultado de una manera clara para el usuario, si el año no es válido se mostrará un texto con el error y se volverá al menú actual
- Al seleccionar la opción "Mostrar alumnos por edad se mostrará el texto: Introducir edad y el usuario podrá introducir la edad. Si la edad es válida (Utilizando Xpath) se hará una consulta al XML y se mostrará el resultado de una manera clara para el usuario, si la edad no es válida se mostrará un texto con el error y se volverá al menú actual
- Al seleccionar la opción "Mostrar alumnos por ciclo y curso se mostrará el texto: Introducir el ciclo y el usuario podrá introducir el ciclo, después lo mismo con el curso. Si el ciclo y el curso son válidos (Utilizando Xpath) se hará una consulta al XML y se mostrará el resultado de una manera clara para el usuario, si el ciclo o el curso no es válido se mostrará un texto con el error y se volverá al menú actual
- Al seleccionar la opción "volver al menú anterior" se mostrará el menú anterior
- Se procerá igual con el resto de opciones del menú
Especificaciones Especiales Teletrabajo
- Rellena el XML base con los datos de al menos 1 ciclo (datos reales)
- Crea un programa que lea el XML y se mostrará el texto: Introducir año de nacimiento y el usuario podrá introducir el año de nacimiento. Si el año es válido (Utilizando Xpath) se hará una consulta al XML y se mostrará el resultado de una manera clara para el usuario, si el año no es válido se mostrará un texto con el error y se volverá al menú actual
- Crea un programa que lea el XML y se mostrará el texto: Introducir edad y el usuario podrá introducir la edad. Si la edad es válida (Utilizando Xpath) se hará una consulta al XML y se mostrará el resultado de una manera clara para el usuario, si la edad no es válida se mostrará un texto con el error
- Crea un programa que lea el XML y se mostrará el texto: Introducir el ciclo y el usuario podrá introducir el ciclo, después lo mismo con el curso. Si el ciclo y el curso son válidos (Utilizando Xpath) se hará una consulta al XML y se mostrará el resultado de una manera clara para el usuario, si el ciclo o el curso no es válido se mostrará un texto con el error y se volverá al menú actual
- Lo mismo con los profesores y con el aula
Duración y gestión del proyecto
- El proyecto tendrá una duración de 3 semanas
- Entrega el 20/4/2020
- Grupos de 2/3 personas