XQuery con escenario de libros

De MediaWiki
Ir a la navegación Ir a la búsqueda

Enunciado 1

<?xml version="1.0" encoding="ISO-8859-1"?>
<bib>
  <libro ano="1994">
    <titulo>TCP/IP Illustrated</titulo>
    <autor>
      <apelido>Stevens</apelido>
      <nome>W.</nome>
    </autor>
    <editorial>Addison-Wesley</editorial>
    <prezo>65.95</prezo>
  </libro>
  <libro ano="1992">
    <titulo>Advanced Programming for Unix environment</titulo>
    <autor>
      <apelido>Stevens</apelido>
      <nome>W.</nome>
    </autor>
    <editorial>Addison-Wesley</editorial>
    <prezo>65.95</prezo>
  </libro>
  <libro ano="2000">
    <titulo>Data on the Web</titulo>
    <autor>
      <apelido>Abiteboul</apelido>
      <nome>Serge</nome>
    </autor>
    <autor>
      <apelido>Buneman</apelido>
      <nome>Peter</nome>
    </autor>
    <autor>
      <apelido>Suciu</apelido>
      <nome>Dan</nome>
    </autor>
    <editorial>Morgan Kaufmann editorials</editorial>
    <prezo>39.95</prezo>
  </libro>
  <libro ano="1999">
    <titulo> Economics of Technology for Digital TV</titulo>
    <editor>
      <apelido>Gerbarg</apelido>
      <nome>Darcy</nome>
      <afiliacion>CITI</afiliacion>
    </editor>
    <editorial>Kluwer Academic editorials</editorial>
    <prezo>129.95</prezo>
  </libro>
</bib>

Cuestións do enunciado 1

  1. Listar el título de todos los libros.
  2. Listar año y título de todos los libros, ordenados por el año.
  3. Listar los libros cuyo precio sea 65.95
  4. Listar los libros publicados antes del año 2000
  5. Listar año y título de los libros publicados por Addison-Wesley después del año 1992.
  6. Listar año y título de los libros que tienen más de un autor.
  7. Listar año y título de los libros que tienen no tienen autor.
  8. Mostrar los apellidos de los autores que aparecen en el documento, sin repeticiones, ordenados alfabéticamente.
  9. Por cada libro, listar agrupado en un elemento <result> su titulo y autores
  10. Por cada libro, obtener su título y el número de autores, agrupados en un elemento <libro>
  11. Generar un documento html con un encabezado que diga “Listado de libros” seguido de una tabla de 3 columnas, en la que se muestre el titulo, editorial y precio de cada libro. La tabla deberá tener bordes y la primera fila tendrá un formato especial con los nombres de las columnas. Las columnas de título y editorial irán alineadas a la izquierda, y el precio a la derecha.
  12. Generar el siguiente documento html con la información de los libros del autor Stevens. El valor precio total es un campo calculado utilizando una consulta con una cláusula let.

Libros Stevens.jpg

Enunciado 2

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="WEB">
    <title lang="en">XQuery Kick Start</title>
    <author>James McGovern</author>
    <author>Per Bothner</author>
    <author>Kurt Cagle</author>
    <author>James Linn</author>
    <author>Vaidyanathan Nagarajan</author>
    <year>2003</year>
    <price>49.99</price>
  </book>
  <book category="WEB">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

Cuestións do enunciado 2

Mostrar:

  1. los títulos de los libros con la etiqueta "titulo".
  2. los libros cuyo precio sea menor o igual a 30. Primero incluyendo la condición en la cláusula "where" y luego en la ruta del XPath.
  3. sólo el título de los libros cuyo precio sea menor o igual a 30.
  4. sólo el título sin atributos de los libros cuyo precio sea menor o igual a 30.
  5. el título y el autor de los libros del año 2005, y etiquetar cada uno de ellos con "lib2005".
  6. los años de publicación, primero con "for" y luego con "let" para comprobar la diferencia entre ellos. Etiquetar la salida con "publicacion".
  7. los libros ordenados primero por "category" y luego por "title" en una sola consulta.
  8. cuántos libros hay, y etiquetarlo con "total".
  9. los títulos de los libros y al final una etiqueta con el número total de libros.
  10. el precio mínimo y máximo de los libros.
  11. el título del libro, su precio y su precio con el IVA incluido, cada uno con su propia etiqueta. Ordénalos por precio con IVA.
  12. la suma total de los precios de los libros con la etiqueta "total".
  13. cada uno de los precios de los libros, y al final una nueva etiqueta con la suma de los precios.
  14. el título y el número de autores que tiene cada título en etiquetas diferentes.
  15. en la misma etiqueta el título y entre paréntesis el número de autores que tiene ese título.
  16. los libros escritos en años que terminen en "3".
  17. los libros cuya categoría empiece por "C".
  18. los libros que tengan una "X" mayúscula o minúscula en el título ordenados de manera descendente.
  19. el título y el número de caracteres que tiene cada título, cada uno con su propia etiqueta.
  20. todos los años en los que se ha publicado un libro eliminando los repetidos. Etiquétalos con "año".
  21. todos los autores eliminando los que se repiten y ordenados por el número de caracteres que tiene cada autor.
  22. los títulos en una tabla de HTML.

Solución

Solución de XQuery con escenario de libros

Referencias