La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

XML Mikel Ibiricu Alfaro. ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs.

Presentaciones similares


Presentación del tema: "XML Mikel Ibiricu Alfaro. ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs."— Transcripción de la presentación:

1 XML Mikel Ibiricu Alfaro

2 ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs. XQuery 8 Un caso Real 9 Conclusiones 10 Bibliografía

3 ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs. XQuery 8 Un caso Real 9 Conclusiones 10 Bibliografía

4 Qué esXML XML (eXtended Markup Language) Virtudes: –Sencillez –Combinada con tecnologías relacionadas ofrece unas posibilidades enormes Da opción de compartición de la información a todos los niveles --> Se convierte en una especie de estándar del intercambio de información. Tecnologías relacionadas le dan muchas posibilidades en el manejo de los datos

5 ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs. XQuery 8 Un caso Real 9 Conclusiones 10 Bibliografía

6 HistoriaXML Lenguaje de marcas El primero: GML (General Markup Language), por IBM, década de los 70, para almacenar enormes cantidades de información de temas diversos ISO se fijó en GML y se propuso estandarizarlo. Como resultado, SGML (Standard GML), 1986 Tim Berners-Lee, tras conocer SGML crea HTML (Hypertext Markup Language), en 1989. Esto supone inicio de la web Hasta 1996: cada marca fabricante personaliza HTML a su gusto

7 Historia (II)XML En 1996 aparece W3C (World Wide Web Consortium) Intenta estandarizar HTML desde sus distintas versiones Esto no soluciona problemas de HTML: -El contenido se mezcla con los estilos que se aplican -No permite compartir la información con todos los dispositivos que tienen acceso a la web -La presentación en pantalla depende en gran medida del visor que se utilice. Para conseguir un lenguaje libre de estas carencias se crea XML y se controla su crecimiento para no perder el control

8 ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs. XQuery 8 Un caso Real 9 Conclusiones 10 Bibliografía

9 Diferencias HTML-XMLXML Las diferencias principales entre el XML y el HTML son las siguientes: –El HTML se preocupa por formatear datos y para ello son las etiquetas que tiene el lenguaje, para formatear la información que se desea mostrar. –El XML se preocupa por estructurar la información que pretende almacenar. La estructura la marca la lógica propia de la información. –El desarrollo del HTML estuvo marcado la competencia entre los distintos visores del mercado. Cada uno quería ser el mejor e inventaba etiquetas nuevas que a la larga entraban a formar parte del estándar del W3C, como la etiqueta.

10 Diferencias HTML-XML(II) XML –El desarrollo del XML está siendo llevado a cabo con rigor, siempre ajustado a lo que marca el estándar que desarrolla el W3C, entidad que está desarrollando el XML con más diligencia que las empresas con intereses particulares. –Procesar la información en HTML es inviable, por estar mezclada con los estilos y las etiquetas que formatean la información. –En XML se puede procesar la información con mucha facilidad, porque todo está ordenado de una manera lógica, así el formateo de la información para que se pueda entender bien por el usuario es viable a través de un pequeño procesamiento, a través de hojas de estilos o similares.

11 ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs. XQuery 8 Un caso Real 9 Conclusiones 10 Bibliografía

12 Herramientas Entorno XML Contenidos –Se puede construir cualquier metalenguaje con XML –Dos lenguajes de definición de metalenguajes: DTD, XML –Schema –Permiten comprobar integridad de los datos –DTD:Definition Type Document, tiene una sintaxis distinta de la de XML, que es sencilla, aunque un poco rara si no la conocemos.

13 Herramientas Entorno(II) XML –XML-Schema: Tiene la ventaja de que está escrito en XML

14 Herramientas Entorno(III)XML Estilos –Objetivo: formatear en pantalla los datos del XML –Dos formas: CSS, XSL –Permiten comprobar integridad de los datos –CSS (Cascade Style Sheet): Viene del HTML y se utiliza igual que con documentos html –XSL: XML Style Language. No se limita a dar formato al xml para que aparezca en pantalla como html. Podemos formatear el xml en múltiples formatos (wml, txt, generar otro xml,...) –Se puede combinar con Xpath que veremos luego para utilizarlo como “lenguaje” de programación sobre xml

15 Herramientas Entorno(IV) XML Programación –Objetivo: manipular los datos del xml –Dos formas: SAX, DOM –SAX: para recorrer los datos de modo secuencial –DOM: crea un árbol en memoria con la estructura del xml –Se puede programar en cualquier lenguaje que se desee siempre que existan APIs que cumplan las especificaciones XML –Java, por ejemplo, tiene clases para programar con xml cuyas APIs han sido aprobadas por W3C

16 ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs. XQuery 8 Un caso Real 9 Conclusiones 10 Bibliografía

17 XPath XML XPath es un lenguaje de expresión utilizado para referenciar nodos de información en un conjunto de datos XML. Tabla XML para ejemplo:

18 XPath(II) XML /html/body/h1 referencia a los nodos h1 que estén dentro de un nodo body que se encuentran en un nodo html. //h1 Selecciona todos los nodos que aparezcan en cualquier posición del árbol. La doble barra indica cualquier profundidad count(//libro) Devuelve el numero de nodos que aparecen en cualquier posición del documento

19 XPath(III) XML //libro[autor=”Hunter”] Devuelve todos los nodos que aparezcan en el documento en cualquier posición y que tengan un nodo hijo con el valor “Hunter”. Los corchetes indican un filtro para seleccionar los resultados que cumplan una determinada condición. //libro[@año>1999] Devuelve todos los nodos que tengan un atributo “año” con un valor superior a 1999. La arroba indica que año no es un hijo, es decir, no es otro tag hijo de libro sino que es un atributo de la etiqueta libro.

20 XPath(IV) XML Doc(“libros.xml”)/bib/libro/autor[1] Devuelve solo el primer nodo autor que encuentre para cada libro. (Doc(“libros.xml”)/bib/libro/autor)[1] La inclusión de paréntesis de la siguiente forma resulta en que el resultado de esta expresión sea el primer autor del archivo libros.

21 ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs. XQuery 8 Un caso Real 9 Conclusiones 10 Bibliografía

22 XQuery XML XML se ha convertido en una herramienta de uso cotidiano entre los medios de tratamiento de información y desde entornos de programación. Cuando las estructuras de datos que se representan con él van creciendo de tamaño se ha visto que los parsers como DOM y SAX no son adecuados, necesitan escribir gran cantidad de código para procesar los datos contenidos en XML a bajo nivel.

23 XQuery(II) XML Con XSLT lo que conseguimos es una representación de los datos en un formato distinto, por lo que tampoco es adecuado. En vista de estos problemas se hace necesaria la aparición de un lenguaje de consulta sobre los datos contenidos en XML que: – No presente los problemas de escalabilidad y reusabilidad que aparecen a menudo cuando la estructura de datos en XML crece en complejidad. – Además debe ser un lenguaje declarativo, es decir, independiente de la situación de los datos y de cómo se haga el recorrido sobre ellos.

24 XQuery(III) XML El grupo de trabajo de Xquery del W3C ha definido una serie de requisitos técnicos para el lenguaje: -Debe ser un lenguaje decarativo, como SQL: Se indica el resultado que queremos, no la manera de obtenerlo -Debe ser independiente del protocolo de acceso a la colección de datos: Debe funcionar igula si consultamos un archivo XML local que si accedemos a un servidor de bases de datos o un archivo de un servidor web -Consultas y resultados deben respetar el modelo de datos XML -Consultas y resultados deben ofrecer soporte para los tablespace

25 XQuery(IV) XML -Debe ser capaz de respetar XML-Schemas y DTDs y capaz de trabajar sin ninguno de ellos -Debe ser capaz de trabajar independientemente de la estructura del documento. -Debe soportar tipos simples (enteros, cadenas) y tipos comlejos, como un nodo compuesto por varios hijos. -Deben soportar cuantificadores universales (para todo) y existenciales (existe) -Las consultas deben soportar operaciones sobre jerarquías de nodos y secuencias de nodos. -Debe ser posible en una busqueda combinar informacion de multiples fuentes

26 XQuery(V) XML -Las consultas deben ser capaces de manipular los datos independientemente del origen de estos -Debe ser posible definir consultas que transformen las estructuras de información originales y construir nuevas estructuras de datos. -Debe ser independiente de la sintaxis, es decir, debe ser posible expresar una misma consulta por medio de distintas sintaxis

27 XQuery(VI) XML cláusulas de las que se puede componer una consulta Xquery : –For Vincula una o más variables a expresiones escritas en Xpath, creando un conjunto de tuplas en el que cada tupla esta vinculada una de las variables –Let Vincula una variable al resultado completo de una expresión añadiendo esos vínculos a las tuplas generadas por una cláusula for, o si no existe ninguna cláusula for, creando una única tupla de que contenga esos vínculos –Where Filtra las tuplas eliminando las que no cumplan las condiciones dadas.

28 XQuery(VII) XML cláusulas de las que se puede componer una consulta Xquery : –Order by Ordena las tuplas según el criterio dado –Return Construye el resultado de la consulta para una tupla dada, después de haber sido filtrada por la cláusula where y ordenada por el order by

29 XQuery(VIII) XML Tabla libros.xml

30 XQuery(IX) XML Tabla libros.xml (continuación)

31 XQuery(X) XML Ejemplos: for $b in document (“libros.xml”)//bib/libro Tomará como valor cada uno de los nodos libros contenido en el archivo “libros.xml” for $b in doc(“libros.xml”//libro let $c:=$b//autor where count ($c)>2 order by $b/titulo return $b/titulo Devuelve los libros que contienen mas de dos autores ordenados por su titulo

32 XQuery(XI) XML Reglas generales: - For y let sirven para crear las tuplas con las que trabajan el resto de las cláusulas de la consulta y se pueden utilizar tantas veces como se desee en una consulta, incluso dentro de otras cláusulas. Sin embargo sólo puede haber una cláusula where, una order by y una return. - Ninguna de las cláusulas FLWOR es obligatoria en una consulta Xquery.

33 XQuery(XII) XML Diferencia entre For y Let –Veamos una misma consulta que muestra los títulos de todos los libros de la estructura “libros.xml” Utilizando una cláusula for: for $d in doc(“libros.xml”)/bib/libro/titulo return {$d} El resultado es el siguiente:

34 XQuery(XIII) XML Si repetimos la misma consulta sustituyendo el for por un let de la siguiente forma: let $d:=doc(“libros.xml”)/bib/libro/titulo return {$d} El resultado es el siguiente:

35 XQuery(XIV) XML Como se puede ver la diferencia es que la clausula for vincula una variable con cada nodo que se encuentra en la colección de datos. En cambio la cláusula let vincula una variable con el resultado de toda la expresión. Si aparece una cláusula let en una misma expresión de consulta que ya posee una o más cláusulas for, los valores de la variable vinulada por la cláusula let se añaden a cada una de las tuplas generadas por la cláusula for.

36 XQuery(XV) XML Ejemplo de for y let –Consulta Y Resultado

37 XQuery(XVI) XML Si en la consulta aparece más de una cláusula for, o más de una variable en una cláusula for, el resultado es el producto cartesiano de dichas variables, es decir, las tuplas generadas cubren todas las posibles combinaciones de los nodos de dichas variables. Como ejemplo:

38 XQuery(XVII) XML Resultado

39 XQuery(XVIII) XML Xquery utiliza dos cuantificadores universales llamados “some” y “every”, podemos definir consultas que devuelvan algún elemento que satisfaga la condición “some” o consultas que devuelvan los elementos en los que todos sus nodos satisfacen la condición “every” Consulta incluyendo some y su resultado:

40 XQuery(XIX) XML Consulta incluyendo every y su resultado:

41 XQuery(XX) XML Operadores y Funciones Principales: –El conjunto de operaciones y funciones soportado por XQuery 1.0 es el mismo conjunto de operadores y funciones que emplean XPath 2.0 y XSLT 2.0. –Se soportan operadores y funciones matemáticas de cadenas para el tratamiento de expresiones regulares, comparaciones de fechas y horas, manipulación de nodos XML, de secuencias, comprobación y conversión de tipos y lógica booleana. –Además se nos permite definir nuevas funciones y funciones dependientes del entorno de ejecución

42 XQuery(XXI) XML

43 ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs. XQuery 8 Un caso Real 9 Conclusiones 10 Bibliografía

44 XPath vs XQuery XML En realidad no cabe hablar de una comparativa entre los dos puesto que ambos son desarrollos complementarios, que, además, están siendo desarrollados por el mismo grupo de trabajo del W3C. Se podría decir que XPath es un lenguaje de consulta de un nivel más bajo que sirve para enumerar y recorrer los archivos XML, mientras que XQuery es un lenguaje de consulta más potente más al uso de lo que es SQL. XQuery utiliza XPath en algunas de sus cláusulas

45 ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs. XQuery 8 Un caso Real 9 Conclusiones 10 Bibliografía

46 ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs. XQuery 8 Un caso Real 9 Conclusiones 10 Bibliografía

47 Conclusiones XML XML nos da grandes posibilidades de almacenado de información y compartirla con medios diversos (software, web, bbdds,...) Según como se estructure la información y de que forma necesitemos recuperarla elegir XQuery o XPath; –Búsquedas avanzadas, información compleja -> XQuery –Recorrer y seleccionar -> Xpath Estamos hablando siempre de lecturas...

48 ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs. XQuery 8 Un caso Real 9 Conclusiones 10 Bibliografía

49 Bibliografia XML www.w3.org - Web del W3Cwww.w3.org www.xml.com www.desarrolloweb.com http://www.lsi.us.es/docs/informes/LSI-2005-02.pdf Manual de XQuery de dept LSI, ETSII, Universidad de Sevillahttp://www.lsi.us.es/docs/informes/LSI-2005-02.pdf www.tejedoresdelweb.com/307/articles- 55815_xpath_2005.pdfwww.tejedoresdelweb.com/307/articles- 55815_xpath_2005.pdf http://www.interneteuskadi.org/euskara/ega/


Descargar ppt "XML Mikel Ibiricu Alfaro. ÍndiceXML 1 Qué es XML 2 Historia XML 3 Diferencias HTML-XML 4 Herramientas del entorno de XML 5 XPath 6 XQuery 7 XPath vs."

Presentaciones similares


Anuncios Google