1 / 18

XML

XML. XQuery. Indice. Introducción Estructura FLWOR Expresiones condicionales Cuantificadores existenciales Operadores y Funciones Conclusiones. Introducción.

moral
Download Presentation

XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 expresionesXpath. • XQuery 1.0 y XPath 2.0 comparten • el mismomodelo de datos y soportan • las mismasfunciones y operaciones.

  5. Introducción • Ejemplos de uso • Extraerinformaciónpara usar en un Web Service • Generarreportes • XQuery como alternativa a XLST: permite realizar transformaciones de datos en XML a otro tipo de representaciones, como HTML o PDF. • Buscardocumentos web para obtenerinformaciónrelevante

  6. Estructura • Xml ejemplo: books.xml

  7. Estructura • Reglasbasicas de sintaxis a tener en cuenta: • XQuery es case-sensitive • Los elementos, atributos y variables Xquery debensernombresvalidos para XML. • Un String en XQuery puedeestarmarcadoporcomillas simples o dobles. • Las Variables en XQuery se definen con el simbolo$seguido de sunombre, • ej: $books • Los comentarios en XQuery estandelimitadospor(: y :), • ej: (: XQuery Comment :)

  8. Estructura • Funciones: • Xquery usafunciones para extraerinformaciónde los documentos XML. • La funcióndoc() es usada para abrir el archivo"books.xml" : • ej: doc("books.xml")

  9. Estructura • Expresiones Path: • XQuery usaexpresionespath para navegar a travez de un documentoXML • La siguienteexpresionpath es usada para seleccionartodos los elementos“title” del archivo “books.xml”: • doc("books.xml")/bookstore/book/title • La consultamencionadaextraerá de nuestro XML: • <titlelang="en">EverydayItalian</title> <titlelang="en">Harry Potter</title> <titlelang="en">XQueryKickStart</title> <titlelang="en">Learning XML</title>

  10. Estructura • Predicados: • XQuery usapredicados para limitar la imformaciónextraida de nuestro XML. • El siguientepredicadoesusado para seleccionartodoslos elementos“book” bajo el elemento “bookstore” los cualestienen un valor en el element “price” menora 30: • doc("books.xml")/bookstore/book [price<30] • La consultamencionadaextraerá 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ónimopara "For, Let, Where, Order by, Return". • For vincula una o varias variables a cada nodo de la expresión. • Letvincula una variable al resultado completo de la expresión o sea sin iteración. • Where filtra las tuplas producidas por la cláusulas lety for, contiene una expresión que es evaluada para cada tupla. Si su evaluación es false esa tuplaes 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. • ReturnFormatea la salida del documentos. Tiene múltiples utilidades, entre otras XML, HTML, PDF, etc.

  12. FLWOR • Expresion Path: El siguientepredicadoesusado para seleccionartodos los elementos“title” bajo los elementos “book” queestanbajo el elemento “bookstore” los cualestienen un valor en el elemento “price” mayor a 30. • doc("books.xml")/bookstore/book[price>30]/title • Expresion FLWOR con exactamente la mismasalida: • for $x in doc("books.xml")/bookstore/book where $x/price>30 return $x/title • Salidapara ambos casos: • <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>

  13. FLWOR • Con FLWOR se puedeordenar el resultado: for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title • La clausulaforseleccionatodos los elementos“book” bajo el element “bookstore” en una variable llamada$x. • La clausulawhereselecciona solo los elementos“book” con un elemento “price” cuyo valor es superior a 30. • La clausulaorder by define el orden, este sera dependiendo del elemento “title”. • La clausulareturnespecificaque sera retornado en la variable $X. En estecasoretornaloselemetos“title”. • La consulta antes mencionadaextraerá de nuestro XML: • <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>

  14. Expresiones condicionales • XQueryadmite IF-THEN-ELSE. Ej: for $x in doc("books.xml")/bookstore/book return if ($x/@category="CHILDREN")then <child>{data($x/title)}</child>else <adult>{data($x/title)}</adult> • La consultamencionadaextraerá de nuestro XML: • <adult>Everyday Italian</adult> <child>Harry Potter</child> <adult>Learning XML</adult> <adult>XQuery Kick Start</adult> • La etiquetadata() elimina en estecaso ,el titulo del elemento“title” en la salida.

  15. Cuantificadores existenciales • Un cuantificador existencial empieza con un cuantificador SOMEo 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 $categ/@category • 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 • XQuerytiene 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??

More Related