Proyecto Consultas en XML

De Wiket
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

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

  1. Rellena el XML base con los datos de al menos 1 ciclo (datos reales)
  2. Crea un menú de inicio con una descripción sobre la app y las opciones: Cargar datos, Salir del programa
  3. Al seleccionar la opción "Salir del programa" el programa printará una frase de despedida y terminará
  4. 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
  5. Si el fichero XML se ha cargado correctamente saldrán las opciones: (Consultas alumnos, Consultas profesores, Consultas aulas, volver al menú anterior
  6. 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)
  7. 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
  8. 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
  9. 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
  10. Al seleccionar la opción "volver al menú anterior" se mostrará el menú anterior
  11. Se procerá igual con el resto de opciones del menú

Especificaciones Especiales Teletrabajo

  1. Rellena el XML base con los datos de al menos 1 ciclo (datos reales)
  2. 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
  3. 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
  4. 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
  5. 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