Saltar al contenido
Codif铆ca.me | Desarrollo web | Programaci贸n
XML

Sistema de Informaci贸n XML | Instalando eXist

1 abril, 2019

Sistema de Informaci贸n XML

 

Tarea Global

Sistema de informaci贸n XML

1) Instalar eXist

 

Partiendo del enlace indicado en el enunciado pulsamos sobre 鈥淒ownload eXistdb鈥.


Elegimos la versi贸n que queramos instalar, en este caso la versi贸n estable nos proporciona todo lo necesario. Esto nos lleva a la p谩gina de jfrog.


Elegimos el jar para descargar, le damos permisos de ejecuci贸n y ejecutamos el jar.

Pulsamos en siguiente, elegimos d贸nde queremos que se instale y pulsamos siguiente sobre los 9 pasos de la instalaci贸n. Al acabar, ejeuctamos eXist desde el dash de Ubuntu y ya la tenemos corriendo.

2)Crear nueva colecci贸n de datos

 

Desde el icono de la barra de men煤 (Ubuntu), pulsamos con el bot贸n derecho y seleccionamos 鈥淥pen Dashboard鈥 que nos abrir谩 un navegador con la siguiente direcci贸n:

http://localhost:8080/exist/apps/dashboard/index.html


Para a帽adir una nueva colecci贸n pulsamos sobre collections:

Introducimos usuario/password y ya estaremos en el Collection Browser:


Pulsando el tercer icono nos permitir谩 crear una colecci贸n que llamaremos 鈥渃oches鈥.

Despu茅s pulsamos el 煤ltimo s铆mbolo para subir los ficheros xml generados en el siguiente apartado.

3)Crear scheme y fichero xml

 

Generamos el scheme con los requisitos indicados en el enunciado:


A destacar:

marca tiene una restricci贸n de tipo pattern en el que nos permite elegir s贸lo uno de los 3 valores indicados

potencia es un entero que no sea negativo, por lo que su tipo es xs:nonNegativeInteger

plazas es un integer con una restricci贸n de minInclusive y maxInclusive ya que tiene que ser entre 5 y 10 plazas

num_puertas es un integer con una restriccion de minInclusive y maxInclusive ya que tiene que tener entre 3 y 6 puertas


Generamos el xml con los datos y comprobamos que validen respecto al esquema anterior.

Por 煤ltimo, seleccionamos el fichero para subir como hab铆amos indicado en el apartado anterior.

4)Transformar con XSL

 


Generamos el fichero de transformaci贸n XSL.

 

A destacar:

Se tranformar谩 a html, de ah铆 el tag <xsl:output method=鈥漢tml鈥/>

Se necesita tener una cabecera y una tabla con los datos. Por tanto se incluyen los tag <h2> y <table>

Se deben aplicar estilos a la cabecera y a los datos. Se ha elegido un css de bootstrap ya que nos permite poner todo m谩s bonito aplicando clases predefinidas. A la cabecera la hemos centrado aplicando la clase text-center. Mientras que a la tabla le hemos aplicado 鈥渢able table-striped table-bordered鈥 para que tenga formato de tabla, a rayas y con bordes. Los nombres de lsa columnas le hemos aplicado 鈥渢ext-primary鈥 para que salga resaltado.

La salida tras aplicar este documento a los datos anteriores es:

5)Consulta Xquery

 


Desde el dashboard pulsamos en el siguiente bot贸n para manejar las queries:


A continuaci贸n pulsamos sobre new XQuery:

y escribimos nuestra xquery.

La cl谩usula for indica que queremos iterar sobre todos los coche dentro del elemento ra铆z coches.

La cl谩usla where nos indica que queremos que el elemento coches que vamos a recupera debe tener el subelemento num_puertas igual a 5 y que la marca sea BMW.


La cl谩usula where nos devuelve aquellos coches que cumplan la condici贸n anterior, en este caso, s贸lo uno:

 

6)Xupdate

 


Pulsando de nuevo en new Xquery podemos generar un xupdate.

La cl谩sula for indica la colecci贸n de elementos sobre la que vamos a iterar y la cl谩usula where la condici贸n. (Que tenga un subelemento marca con valor 鈥楢udi鈥). Sobre todos los elementos que se recuperen aqu铆, vamos a actualizar su subelemento potencia con un valor de 200.

Para comprobar el resultado, en buffers 鈫 coches.xml observamos lo siguiente:
Si quieres todo el c贸digo del ejemplo lo tienes aqu铆!

[sociallocker]
xml-code.zip

[/sociallocker]