<?xml version="1.0" encoding="UTF-8"?>
<biblioteca>
<libro id="1">
<título>El Señor de los Anillos</título>
<autor>J.R.R. Tolkien</autor>
<año_publicación>1954</año_publicación>
</libro>
<libro id="2">
<título>1984</título>
<autor>George Orwell</autor>
<año_publicación>1949</año_publicación>
</libro>
<libro id="3">
<título>La Fundación</título>
<autor>Isaac Asimov</autor>
<año_publicación>1951</año_publicación>
</libro>
<libro id="4">
<título>Cien Años de Soledad</título>
<autor>Gabriel García Márquez</autor>
<año_publicación>1967</año_publicación>
</libro>
</biblioteca>
Escribe una consulta XQuery para listar todos los autores únicos de los libros en la biblioteca.
let $libros := doc("libros.xml")/biblioteca/libro
for $autor in distinct-values($libros/autor)
order by $autor
return $autor
Escribe una consulta XQuery que devuelva todos los títulos de libros publicados antes de 1960.
let $libros := doc("libros.xml")/biblioteca/libro
for $libro in $libros
where $libro/año_publicación < 1960
return $libro/título
Escribe una consulta XQuery que cuente cuántos libros ha escrito cada autor y los presente en un formato legible.
let $libros := doc("libros.xml")/biblioteca/libro
for $autor in distinct-values($libros/autor)
let $cantidad := count($libros[autor = $autor])
order by $autor
return <autor_libros>
<nombre>{$autor}</nombre>
<cantidad>{$cantidad}</cantidad>
</autor_libros>
Escribe una consulta XQuery para encontrar los detalles del libro más recientemente publicado.
let $libros := doc("libros.xml")/biblioteca/libro
let $año_más_reciente := max($libros/año_publicación)
for $libro in $libros
where $libro/año_publicación = $año_más_reciente
return $libro
Escribe una consulta XQuery para obtener todos los libros ordenados alfabéticamente por título.
Escribe una consulta XQuery para obtener todos los libros ordenados alfabéticamente por título.
let $libros := doc("libros.xml")/biblioteca/libro
for $libro in $libros
order by $libro/título
return $libro
Escribe una consulta XQuery que reciba un nombre de autor y devuelva todos los libros escritos por ese autor.
declare variable $autor_buscado := "Isaac Asimov";
let $libros := doc("libros.xml")/biblioteca/libro
for $libro in $libros
where $libro/autor = $autor_buscado
return $libro
Modifica cada libro para añadir un nuevo elemento <disponible> con el valor "sí" a cada registro de libro.
let $libros := doc("libros.xml")/biblioteca/libro
for $libro in $libros
return
<libro>
{$libro/*}
<disponible>sí</disponible>
</libro>
Escribe una consulta XQuery para extraer un fragmento XML que incluya el título y el año de publicación de cada libro, omitiendo otros detalles.
let $libros := doc("libros.xml")/biblioteca/libro
for $libro in $libros
return
<información_básica>
<título>{$libro/título/text()}</título>
<año_publicación>{$libro/año_publicación/text()}</año_publicación>
</información_básica>
Escribe una consulta XQuery que incremente el año de publicación de todos los libros por 1.
let $libros := doc("libros.xml")/biblioteca/libro
for $libro in $libros
return
<libro>
{$libro/título}
{$libro/autor}
<año_publicación>{number($libro/año_publicación) + 1}</año_publicación>
</libro>