-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathejemplo_ap_solucion.xq
98 lines (97 loc) · 2.7 KB
/
ejemplo_ap_solucion.xq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
"1-Mostrar el nombre de los equipos cuyo nombre comienza por A o M, ordenados por nombre. Mostrar el resultado sin etiquetas.",
for $e in /equipos/equipo
where starts-with(
$e/@nombre,"A"
) or starts-with(
$e/@nombre,"M"
)
order by $e/@nombre
return $e/@nombre/data(),
"2-Mostrar los nombres de los jugadores con sus apellidos cuyo códigos están comprendidos entre 10 y 20, ordenados alfabéticamente por apellidos. El formato de salida debe ser en xml similar al siguiente, teniendo en cuenta que vamos a enumerar el resultado con un atributo.",
"--------------lo que hicimos en clase------",
for $j at $cont in /jugadores/jugador
order by $j/nombre
return <j num="{$cont}">{$j/nombre/data()}</j>,"------------------ esto si----",
for $j in /jugadores/jugador
where $j/@cod >= 10 and $j/@cod <= 20
order by $j/apellido1, $j/apellido2
return $j,
"-----",
<jugadores>{
for $i at $cont in (
for $j in /jugadores/jugador
where $j/@cod >= 10 and $j/@cod <= 20
order by $j/fecha_nacimiento
return concat(
$j/apellido1, " ", $j/apellido2, ", ", $j/nombre
)
)
return <jugador num="{
$cont
}">{
$i
}</jugador>
}</jugadores>,
"3-Mostrar los nombres de los equipos junto con números de telefonos de los entrenadores, devolver el resultado en formato texto",
for $e in //equipos/equipo, $en in //entrenadores/entrenador
where $e/entrenador = $en/@cod
return concat(
"equipo: ", $e/@nombre, " - tfn: ", $en/telefono
),
"4-Mostrar un listado de cada equipo , junto al nombre de su capital en un xml válido",
<capitanes>{
for $e in //equipos/equipo, $c in //jugadores/jugador
where $e/capitan = $c/@cod
return <capitan equipo="{
$e/@nombre
}">{
concat(
$c/nombre/data(), " ",$c/apellido1/data(), " ", $c/apellido2/data())
}</capitan>
}</capitanes>,
"5-Mostrar cada uno de diferentes años de nacimiento de todos los jugadores, junto al número de jugadores que hay de cada año",
for $anyo in distinct-values(
for $f in //jugadores/jugador/fecha_nacimiento
order by $f
return year-from-date(
$f
)
)
return (
$anyo
),
//jugadores/jugador[year-from-date(
fecha_nacimiento
)=1999]/nombre,
"--------------",
for $anyo in distinct-values(
for $f in //jugadores/jugador/fecha_nacimiento
order by $f
return year-from-date(
$f
)
)
return (
$anyo,//jugadores/jugador[year-from-date(
fecha_nacimiento
)=$anyo]/nombre
),
"==================",
for $anyo in distinct-values(
for $f in //jugadores/jugador/fecha_nacimiento
order by $f
return year-from-date(
$f
)
)
return (
$anyo,
(
for $jj in //jugadores/jugador
where year-from-date(
$jj/fecha_nacimiento
)=$anyo
return concat(
"- ", $jj/nombre/data(), " ", $jj/apellido1/data(), " ", $jj/apellido2/data())
)
)