feat(ch 6 & 7): added

This commit is contained in:
Rafa Muñoz
2025-04-07 12:01:02 +02:00
parent 2a060caea7
commit 38284b033d
169 changed files with 2651 additions and 1 deletions

View File

@@ -0,0 +1,23 @@
Sobre el fichero xml-xsl-ejercicio12.xml del tema 5, realiza las siguientes consultas con xquery. Cada una de las consultas
debe realizarse sobre un fichero "xquery" diferente. Finalmente debes guardar el fichero xml y los 7 ficheros xquery en una
única carpeta, comprimirla y enviármela por mail para su corrección.
1.- Obtén aquellos superhéroes cuyo nombre termine en "a".
2.- Utiliza la función "contains" de XQuery para encontrar aquellos superheroes que tengan un poder
relacionado con la "fuerza".
3.- Obtén aquellos superhéroes que tengan algún poder relacionado con la "fuerza" y sean amigos de
"Iron Man".
4.- Realiza la consulta 3 otra vez, pero evita que las mayúsculas y minúsculas sean un problema, usando
la función lower-case o upper-case
5.- Utiliza la función "avg" de XQuery para obtener la media del atributo "nivel" de todos los
superhéroes.
6.- Realiza una conversión del formato XML del fichero, de forma que cada superheroe
muestre el valor de sus atributos a través de elementos hijos. Por ejemplo:
<superheroe>
<nombre>Thor</nombre>
<poderes>Martillo mágico, Dios, Fuerza</poderes>
<amigos>Iron Man y Hulk</amigos>
<nivel>7</nivel>
</superheroe>
7.- Realiza un ejercicio muy parecido al anterior (6) pero consigue que la conversión se haga a un
formato HTML, en el que para cada superheroe aparezca una tabla.

View File

@@ -0,0 +1,5 @@
<datos> {
for $alfa in (1, 3)
return <dato><alfa>{$alfa}</alfa></dato>
}
</datos>

View File

@@ -0,0 +1,5 @@
<datos> {
for $alfa in (1, 3), $beta in (2,4)
return <dato><alfa>{$alfa}</alfa><beta>{$beta}</beta></dato>
}
</datos>

View File

@@ -0,0 +1,3 @@
for $alumno in doc('ejercicio-planilla-correccion-examen.xml')/correccionExamen/resultadosPorAlumno/alumno
return data($alumno/@nombre)

View File

@@ -0,0 +1,2 @@
for $alumno in doc('ejercicio-planilla-correccion-examen.xml')/correccionExamen/resultadosPorAlumno/alumno
return <alumno>{ data($alumno/@nombre) }</alumno>

View File

@@ -0,0 +1,4 @@
<examen> {
for $alumno in doc('ejercicio-planilla-correccion-examen.xml')/correccionExamen/resultadosPorAlumno/alumno
return <alumno>{ data($alumno/@nombre) }</alumno>
} </examen>

View File

@@ -0,0 +1,5 @@
<examen> {
for $alumno in doc('ejercicio-planilla-correccion-examen.xml')/correccionExamen/resultadosPorAlumno/alumno
where starts-with($alumno/@nombre, 'Cal')
return <alumno>{ data($alumno/@nombre) }</alumno>
} </examen>

View File

@@ -0,0 +1,6 @@
<examen> {
for $alumno in doc('ejercicio-planilla-correccion-examen.xml')/correccionExamen/resultadosPorAlumno/alumno
where starts-with($alumno/@nombre, 'Cal')
and ends-with($alumno/@nombre, 'n')
return <alumno>{ data($alumno/@nombre) }</alumno>
} </examen>

View File

@@ -0,0 +1,6 @@
<examen> {
for $alumno in doc('ejercicio-planilla-correccion-examen.xml')/correccionExamen/resultadosPorAlumno/alumno
where starts-with($alumno/@nombre, 'Cal')
order by $alumno/@nombre ascending
return <alumno>{ data($alumno/@nombre) }</alumno>
} </examen>

View File

@@ -0,0 +1,7 @@
<examen> {
for $alumno in doc('ejercicio-planilla-correccion-examen.xml')/correccionExamen/resultadosPorAlumno/alumno
let $nombreAlumno := $alumno/@nombre
where starts-with($nombreAlumno, 'Cal')
order by $nombreAlumno descending
return <alumno>{ data($nombreAlumno) }</alumno>
} </examen>

View File

@@ -0,0 +1,10 @@
<examen> {
for $apartado in doc('ejercicio-planilla-correccion-examen.xml')/correccionExamen/examen/apartado
for $alumno in doc('ejercicio-planilla-correccion-examen.xml')/correccionExamen/resultadosPorAlumno/alumno
let $numApartado := $apartado/@numApartado
let $valoracionApartado := $alumno/valoracionApartado
where $numApartado = $valoracionApartado/@numApartado
return <apartadoExamen descripcion="{ data($apartado/@descripcion) }"
alumno="{ data($alumno/@nombre) }"
valoracion="{ data($valoracionApartado[@numApartado = $numApartado]) }"/>
} </examen>

View File

@@ -0,0 +1,12 @@
<examen> {
for $apartado in doc('ejercicio-planilla-correccion-examen.xml')/correccionExamen/examen/apartado
let $numApartado := $apartado/@numApartado
return <apartadoExamen descripcion="{ $apartado/@descripcion }"> {
for $alumno in doc('ejercicio-planilla-correccion-examen.xml')/correccionExamen/resultadosPorAlumno/alumno
let $nombreAlumno := $alumno/@nombre
return <alumno nombre="{ $nombreAlumno }"
valoracion="{$alumno/valoracionApartado[@numApartado = $numApartado]}"></alumno>
} </apartadoExamen>
} </examen>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<correccionExamen>
<examen tema="XSL (Extensible Stylesheet Language) y FO (Formatting Objects)">
<apartado numApartado="1" descripcion="La transformación se realiza" valorPuntos="1"/>
<apartado numApartado="2" descripcion="Se utiliza la tabla" valorPuntos="4"/>
<apartado numApartado="3" descripcion="Se utilizan fórmulas" valorPuntos="5"/>
</examen>
<resultadosPorAlumno>
<alumno nombre="Calderín Adam, Joaquín">
<valoracionApartado numApartado="1">1</valoracionApartado>
<valoracionApartado numApartado="2">0.25</valoracionApartado>
<valoracionApartado numApartado="3">0.75</valoracionApartado>
</alumno>
<alumno nombre="Calera Muñiz, Manuel">
<valoracionApartado numApartado="1">0.75</valoracionApartado>
<valoracionApartado numApartado="2">0.35</valoracionApartado>
<valoracionApartado numApartado="3">0.9</valoracionApartado>
</alumno>
<alumno nombre="Díez Sanchiz-Diezmo, Pablo">
<valoracionApartado numApartado="1">0.3</valoracionApartado>
<valoracionApartado numApartado="2">1</valoracionApartado>
<valoracionApartado numApartado="3">0.65</valoracionApartado>
</alumno>
<alumno nombre="Expasito López, Francisco Manuel">
<valoracionApartado numApartado="1">1</valoracionApartado>
<valoracionApartado numApartado="2">0.25</valoracionApartado>
<valoracionApartado numApartado="3">0.6</valoracionApartado>
</alumno>
<alumno nombre="Manantiales Cuenca, Víctor">
<valoracionApartado numApartado="1">1</valoracionApartado>
<valoracionApartado numApartado="2">0.75</valoracionApartado>
<valoracionApartado numApartado="3">0.50</valoracionApartado>
</alumno>
</resultadosPorAlumno>
</correccionExamen>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xml-xsl-ejercicicio12.xsl"?>
<marvel>
<superheroe nombre="Thor" poderes="Martillo mágico, Dios, Fuerza" amigos="Iron Man y Hulk" nivel="7"/>
<superheroe nombre="Hulk" poderes="Superfuerza, indestructible" amigos="Iron Man y Thor" nivel="8"/>
<superheroe nombre="Iron Man" poderes="Armadura, intelecto superior" amigos="Hulk y Thor" nivel="6"/>
<superheroe nombre="Capitán América" poderes="fuerza, resistencia, superguerrero" amigos="Iron Man" nivel="6"/>
<superheroe nombre="Viuda Negra" poderes="coordinación, luchadora" amigos="No tiene" nivel="6"/>
<superheroe nombre="Nick Furia" poderes="coordinación, luchadora" amigos="No tiene" nivel="6"/>
</marvel>