La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

XML XQuery.

Presentaciones similares


Presentación del tema: "XML XQuery."— Transcripción de la presentación:

1 XML XQuery

2 Indice Introducción Estructura FLWOR Expresiones condicionales
Cuantificadores existenciales Operadores y Funciones Conclusiones

3 Introducción Xquery es un lenguaje de consultas diseñado para consultar colecciones de datos XML, así como también cualquier archivo que tenga la misma estructura que un XML. Xquery es a XML como SQL es a una Base de Datos Relacional. Permite la transformación de datos en su salida. Xquery es recomendado por la W3C R desde 23 Enero del 2007.

4 Introducción XQuery está construido en base a expresiones Xpath.
XQuery 1.0 y XPath 2.0 comparten el mismo modelo de datos y soportan las mismas funciones y operaciones.

5 Introducción Ejemplos de uso
Extraer información para usar en un Web Service Generar reportes XQuery como alternativa a XLST: permite realizar transformaciones de datos en XML a otro tipo de representaciones, como HTML o PDF. Buscar documentos web para obtener información relevante

6 Estructura Xml ejemplo: books.xml

7 Estructura Reglas basicas de sintaxis a tener en cuenta:
XQuery es case-sensitive Los elementos, atributos y variables Xquery deben ser nombres validos para XML. Un String en XQuery puede estar marcado por comillas simples o dobles. Las Variables en XQuery se definen con el simbolo $ seguido de su nombre, ej: $books Los comentarios en XQuery estan delimitados por (: y :), ej: (: XQuery Comment :)

8 Estructura Funciones:
Xquery usa funciones para extraer información de los documentos XML. La función doc() es usada para abrir el archivo "books.xml" : ej: doc("books.xml")

9 Estructura Expresiones Path: doc("books.xml")/bookstore/book/title
XQuery usa expresiones path para navegar a travez de un documento XML La siguiente expresion path es usada para seleccionar todos los elementos “title” del archivo “books.xml”: doc("books.xml")/bookstore/book/title La consulta mencionada extraerá de nuestro XML: <title lang="en">Everyday Italian</title> <title lang="en">Harry Potter</title> <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>

10 Estructura Predicados: doc("books.xml")/bookstore/book [price<30]
XQuery usa predicados para limitar la imformación extraida de nuestro XML. El siguiente predicado es usado para seleccionar todos los elementos “book” bajo el elemento “bookstore” los cuales tienen un valor en el element “price” menor a 30: doc("books.xml")/bookstore/book [price<30] La consulta mencionada extraerá de nuestro XML: <book category="CHILDREN">   <title lang="en">Harry Potter</title>   <author>J K. Rowling</author>   <year>2005</year>   <price>29.99</price> </book>

11 FLWOR FLWOR es un acrónimo para "For, Let, Where, Order by, Return".
For vincula una o varias variables a cada nodo de la expresión. Let vincula una variable al resultado completo de la expresión o sea sin iteración. Where filtra las tuplas producidas por la cláusulas let y for, contiene una expresión que es evaluada para cada tupla. Si su evaluación es false esa tupla es descartada. Order Indica para un conjunto de información un orden de salida y va seguido de for. Por defecto de manera ascendente, si no es indica lo contrario, acorde con el tipo de datos que se esté evaluando. Return Formatea la salida del documentos. Tiene múltiples utilidades, entre otras XML, HTML, PDF, etc.

12 FLWOR Expresion Path: El siguiente predicado es usado para seleccionar todos los elementos “title” bajo los elementos “book” que estan bajo el elemento “bookstore” los cuales tienen un valor en el elemento “price” mayor a 30. doc("books.xml")/bookstore/book[price>30]/title Expresion FLWOR con exactamente la misma salida: for $x in doc("books.xml")/bookstore/book where $x/price>30 return $x/title Salida para ambos casos: <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>

13 FLWOR Con FLWOR se puede ordenar el resultado: for $x in doc("books.xml")/bookstore/book where $x/price> order by $x/title return $x/title La clausula for selecciona todos los elementos “book” bajo el element “bookstore” en una variable llamada $x. La clausula  where selecciona solo los elementos “book” con un elemento “price” cuyo valor es superior a 30. La clausula  order by define el orden, este sera dependiendo del elemento “title”. La clausula  return especifica que sera retornado en la variable $X. En este caso retornalos elemetos “title”. La consulta antes mencionada extraerá de nuestro XML: <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>

14 Expresiones condicionales
XQuery admite IF-THEN-ELSE. Ej: for $x in doc("books.xml")/bookstore/book return if then <child>{data($x/title)}</child> else <adult>{data($x/title)}</adult> La consulta mencionada extraerá de nuestro XML: <adult>Everyday Italian</adult> <child>Harry Potter</child> <adult>Learning XML</adult> <adult>XQuery Kick Start</adult> La etiqueta data() elimina en este caso ,el titulo del elemento “title” en la salida.

15 Cuantificadores existenciales
Un cuantificador existencial empieza con un cuantificador SOME o EVERY, seguido por una o mas clausulas IN que se usan para unir variables, seguido de la palabra reservada satisfies  y una expresión de comparación o testeo. El retorno es siempre True or False.

16 Cuantificadores existenciales
Esta expresión retorna True si todos los elementos “book” tienen un atributo “category” (sin importar el valor de atributo.) every $categ in /bookstore/book satisfies Esta expresión retorna True si por lo menos uno de los elementos “book” tiene un elemento “Price” cuyo valor sea mayor a 49: some $precio in /bookstore/book satisfies ($precio/price>49)

17 Operadores y Funciones
XQuery tiene una serie de funciones y operadores aritméticos para la recuperación de información: Matemáticos: +, -, *, div(*), idiv(*), mod Comparación: =, !=, <, >, <=, >=, not() Secuencia: union (|), intersect, except Redondeo: floor(), ceiling(), round() Funciones de agrupación: count(), min(), max(), avg(), sum() Funciones de cadena: concat(), string-length(), startswith(), ends-with(), substring(), string() Uso general: distinct-values(), empty(), exits() La división se indica con el operador div ya que el símbolo / es necesario para indicar rutas.

18 Xquery FIN Preguntas??


Descargar ppt "XML XQuery."

Presentaciones similares


Anuncios Google