.. _ej-xquery: XQuery ====== #. A partir del |XML| sobre facturas obtenga una lista de clientes en que se exprese para cada uno de ellos su nombre y la cantidad de facturas emitidas a su nombre. Por ejemplo: .. code-block:: none Clientes del negocio: - Perico de los Palotes: 3 factura(s). - Mariquilla de la O: 2 factura(s). .. rst-class:: sol-oculta :download:`Solución propuesta `. #. A partir del |XML| sobre facturas obtenga un listado de facturas en que se expresa de cada una de ellas el código y el nombre del cliente al que se facturó. Por ejemplo: .. code-block:: none Listado de facturas: - f01: Perico de los Palotes - f02: Mariquilla de la O .. rst-class:: sol-oculta :download:`Solución propuesta `. #. A partir del |XML| sobre facturas, obtenga un listado de facturas como el descrito en el :ref:`ejercicio 15 de XSLT `. #. A partir del |XML| sobre facturas, obtenga un listado de facturas en que se exprese de cada una de ellas el código y el coste total. Por ejemplo: .. code-block:: none Coste de las facturas: - f01: 1.7€ - f02: 5.2€ .. rst-class:: sol-oculta | :download:`Solución propuesta 1 `. | :download:`Solución propuesta 2 ` (usando *XPath* 1.0). #. Tome el |XML| sobre facturas y componga otro similar en que las facturas, en vez de estar aparte, sean hijas del cliente a nombre del que se han emitido. .. rst-class:: sol-oculta | :download:`Solución propuesta 1 ` (sin modificaciones en memoria). | :download:`Solución propuesta 2 ` (con modificaciones en memoria). #. A partir del |XML| sobre préstamos en una biblioteca, obtenga un listado de libros ordenados por año de publicación, en que se incluya el nombre y el número total de ejemplares. Por ejemplo: .. code-block:: none Libros en la biblioteca: - Don Quijote de la Mancha: 5 ejemplar(es). - Las aventuras del bachiller Trapaza: 3 ejemplar(es). #. A partir del |XML| sobre préstamos en una biblioteca, obtenga un listado de socios con el número de préstamos que han solicitado. Por ejemplo: .. code-block:: none Listado de socios: - Perico de los Palotes: 5 préstamo(s). - Mariquilla de la O: 2 préstamo(s). - Ana al-Fabeta: 0 préstamo(s). #. Como el ejercicio anterior, pero sin que aparezcan los socios que no han pedido ningún préstamo. Por tanto, en el ejemplo anterior, no aparecería el último socio. #. Tome el |XML| de préstamos en una biblioteca y componga otro en que los préstamos hechos por un lector, en vez de aparte como en el original, aparezcan como elementos hijo de dicho lector. #. A partir del |XML| sobre ventas de coches, haga un listado de modelos de coches con la expresión de los coches totales de los que hay de cada uno. Por ejemplo: .. code-block:: none Modelos disponibles: - León: 5 coches. - Ibiza: 6 coches. #. Haga un listado como el del ejercicio anterior, pero sólo cuente los coches que no han sido reservados. #. A partir del |XML| sobre ventas de coches, haga un listado de clientes que incluya su nombre y la cantidad de coches que ha reservado. Por ejemplo: .. code-block:: none Listado de clientes: - Perico de los Palotes: 2 coche(s). - Mariquilla de la O: 1 coche(s). #. Tome el |XML| de venta de coches y componga otro similar en que los coches sean elementos hijo del modelo correspondiente. #. A partir del |XML| sobre figuras 2D, haga un listado de figuras como en el que se pide para el :ref:`ejercicio 1 de XSLT ` #. A partir del |XML| sobre figuras 2D, haga un listado de figuras como en el que se pide para el :ref:`ejercicio 3 de XSLT ` .. rst-class:: sol-oculta :download:`Solución propuesta `. #. A partir del |XML| sobre figuras 2D, haga un listado de figuras como en el que se pide para el :ref:`ejercicio 5 de XSLT ` .. rst-class:: sol-oculta :download:`Solución propuesta `.