xQuery
XQuery
- Las instrucciones necesarias para iniciar el servidor eXists desde el terminal de Ubuntu.
cd /home/usuario/eXists/bin/ sudo ./startup.sh En otro terminal y habiendo confirmado que el servidor se ha iniciado. cd /home/usuario/eXists/bin/ sudo ./client.sh
- Crea una colección y dentro de ella otra dos.
mkcol Activitat2 cd Activitat2 exist:/db/Activitat2/> mkcol shakespeare exist:/db/Activitat2/> mkcol varis
- Dentro de la colección shakespeare carga los archivos zip. Y dentro de la colección varios el archivo cotxes.xml
Cd shakespeare Putzip /home/usuario/shakespeare.zip cd .. cd varis put /home/usuario/*.xml para ver el documento edit cotxes.xml
- Haz una consulta para mostrar los diferentes modelos de coches, especificando el documento.
doc("cotxes.xml")/cotxes/cotxe/model/text()
- Utilizando el documento restaurant.xml muestra la descripción del segundo plato
for $x in doc("restaurant.xml")/restaurant/plat[2]/descripcio/text() return $x/descripcio
- Haz una consulta sobre restaurant.xml sin especificar el documento y muestra el valor del atributo nombre del elemento opciones.
/restaurant/plat[@codi="12"]/opcions[@name]/text()
- Haz una consulta XQuery para mostrar los títulos y los artistas del los cds de USA, muestralo de la siguiente manera
<cds> <cd> <title>.....</title> <artist>.....</artist> </cd> <cd> <title>....</title> <artist>....</artist> </cd> .... </cds>
Solución <cds> { for $x in /catalog/cd[country="USA"] let $titol := $x/title/text() let $artist := $x/artist/text() order by $x/artist return <cd> <artist>{$artist}</artist> <titol>{$titol}</titol> </cd> } </cds>
Fes una consulta en los documentos de shakespeare que se muestre de la siguiente manera
<obres> <obra> <titol>Títol de la obra de teatre</titol> <personatges> <nom>nom del personatge </nom> <nom>.....</nom> ...... </personatges> </obra> </obres>
Solución <obres>{ for $x in /PLAY let $titol := $x/TITLE/text() return <obra> <title>{$titol}</title> <personatges> { for $i in $x/PERSONAE//PERSONA let $nom :=$i/text() return <nom>{$nom}</nom> } </personatges> </obra> } </obres>
- Consulta XQuery en shakespeare que muestre todas los titulos de las obras y sus actos
<obres> { for $x in /PLAY let $titol := $x/TITLE/text() let $actes := count($x/ACT) return <obra> <title>{$titol}</title> <actes>{$actes}</actes> </obra> } </obres>