380 likes | 595 Views
XQuery 1.0 - una herramienta para trabajar con XML. Volkert Brosda. Ind íce. ¿Que es XML? ¿Como funciona XQuery 1.0? ¿Que potencial tiene XQuery 1.0?. XML - una supervisi ón. texto con etiquetas representa texto, numeros, cadenas de bits
E N D
XQuery 1.0 - una herramienta para trabajar con XML Volkert Brosda
Indíce ¿Que es XML? ¿Como funciona XQuery 1.0? ¿Que potencial tiene XQuery 1.0?
XML - una supervisión • texto con etiquetas • representa texto, numeros, cadenas de bits • especifica información plana como bien estructurada • meta lenguaje • independiente de plataformas (UNICODE) • bien aceptado en el mercado • fácil pero tambien técnologia para aplicaciones profesionales • herramientas simples/ herramientas complejas • existe desde mas de 10 años • lenguaje para maquinas abstractas - independiente de la infraestructura
element reglas de consistencia (opcional y variable) XML - instancia attribute name space
XML - reglas de consistencia • las reglas de consistencia definen un lenguaje cierto • vocabulario e estructura • especificada por modelos de contenido (ocurrencia de texto/elemento) • DTD • especificada por datos XML (tipos de datos) • XML schema • lenguajes usados por familias de aplicaciones • Docbook, WSDL • jerarquía de lenguajes • MUMASY (VDMA 66320), BMEcat • arquitectura para jerarquías de lenguajes • DITA (Darwin Information Typing Architecture), dita.xml.org
XML - reglas de consistencia • XML resulta en un meta lenguaje • definida por vocabulario y estructura • especificada por modelos de contenido (ocurrencia de texto/elemento) • DTD • especificada por datos XML (tipos de datos) • XML schema
Error: hay que definir antes el titulo XML - DTD def. element conexión entre modules: entidades modelo de contenido, ocurrencia def. attribute
estructura de tipos XML - XML schema xs:element define XML element espacio de nombres
XML - reglas de consistencia • lenguajes XML usados por familias de aplicaciones • Docbook, WSDL
XML - reglas de consistencia • jerarquía de lenguajes • mumasy (VDMA 66320), http://www.schema.de/eds/de/hierarchy-onClick.st4w
XML - reglas de consistencia • arquitectura para jerarquías de lenguajes • dita, dita.xml.org/
árbol de derivación de instancia XML XML - procesamiento • basado a la sintaxis (parser XML)
XML - procesamiento 4 procesos simultaneamente
XML - procesamiento • modelo de datos • texto, binario • DOM, SAX • XPath 2.0 • secuencia de entradas • tipos de XML schema
paso XML - procesamiento eje • XPath 2.0 -> secuencias de instancias XML • expressiones de camino • secuencia de pasos • eje, prueba de nodos, predicados • ejemplos de XPath 2.0 • ./child::node() • /child::faq/@class • //faqans • //faqans/../@* • //faqquest[contains(.,"XQuery")][contains(.,"SQL")]/..//text() • //faqitem[2] == //faqitem[position()=2] prueba de nodos predicado
XML - almacenamiento • memoria principal • sistema de filas/streams • sistema de base de datos ORDBMS • diseño individual, extensiones propias • XML a CLOB/BLOB con índices • ISO SQL/XML: tipo XML, XPath, XQuery integrado • XMLELEMENT, XMLFOREST
XML - almacenamiento numero de la rama XPath • sistema de base de datos ORDBMS • conjunto de expresiones de XPath
XML - almacenamiento • sistemas nativos de manejo de bases de datos del tipo XML • Tamino, eXist, Berkeley XML DB, XQuantum • soportan XPath, XQuery • trabajan con colecciones (container e índices)
Formatos XHTML XSL-FO (PS/PDF) otro XML - presentación Contextos medio perfil otro
XML - áreas de aplicación • distribución de información • de una fuente a muchos destinos • a mucha gente pero individual • integración de sistemas • datos • servicios • negocios • separación del trabajo • contenido, estructura, presentación, proceso
XML - demandas al procesamiento XML • formar instancias XML (àrboles) • soportar modules • soportar reglas de consistencia • tipos, nombres de espacio • soportar acceso a diferentes fuentes (de XML) simultaneamente • soportar la combinación de instancias XML
varias entradas XQuery 1.0 - función general resultado instancia XML se trata de tipos, espacios de nombres, modules
XQuery 1.0 - situación en 2007 • especificación: • http://www.w3.org/TR/xpath-datamodel/ • http://www.w3.org/TR/xpath-functions/ • http://www.w3.org/TR/xpath20/ • http://www.w3.org/TR/xquery/ • desarrollo: 1999 - 2007 • uso: http://www.w3.org/XML/Query/#implementations • marketing: http://www.stylusstudio.com/xquery_primer.html
expressión de camino en XPath 2.0 XQuery 1.0 - ejemplo acceso a sistemas nativos
XQuery 1.0 - ejemplo mas complejo let$faq :=./root()//faq for$tema indistinct-values(doc('temas_autores.xml') //tema/text()) return<result tema=“{$tema}">{ for$ans in$faq//faqans wherecontains($ans,$tema) return for$autores indoc('temas_autores.xml')//docente where$autores/tema[.=$tema] return ( $autores/nombre, $ans/text()) } </result>
XQuery 1.0 - F L W O R • SQL: S F W G O -> proceso FWGOS • Select From Where Group by Order by • XQuery: F L W O R > proceso FLWOR • For Let Where Order by Return
XQuery 1.0 - F L W O R • FX FY = ciclo caja en caja con tuplas de X x Y, • X, Y se define por XPath 2.0 el orden es fijo
XQuery 1.0 - F L W O R • LX= asignación de variables X • siempre secuencias definidas por XPath 2.0! • variables nunca cambian su valor! • expresiones de caminos de XPath 2.0 = F R • W condición = restricción del producto cruz de tuplas • O = ordenar referente el producto cruz de tuplas • R = construcción de datos XML
forma canonica XQuery 1.0 - ejemplo trabajo a la forma „canonica“
espacio de nombres XQuery 1.0 - funciones
XQuery 1.0 - conexión a tipos declare function local:element_acc($x as xs:string) as xs:element*{ let$element:=doc($x)//xs:element return$element }; conexión a tipos -> -si no se menciona -> fácil -si se menciona -> seguro
XQuery 1.0 - herramientas • use cases (W3C), tutoriales en el web • editor XML • „sand box“ (eXist) • debugger XPath, XQuery • transformación de datos SQL (mapper) • desarrollo visual de consultas (stylus studio) • generación de la documentación: xqDoc
Comparación • SQL 2003 • 1o DB diséno, 2o datos insertado a tablas • uso profesional solo en conexión a lenguajes huesped • SQL/XML procesa datos XML dentro de tablas • XQuery • datos + estructura (+ reglas de consistencia) • uso profesional también sin conexión a lenguajes huesped • datos de sistemas SQL primero se transforma a XML
Comparación • XSLT 2.0 • proceso de árbol con templates (reglas de producción) • funciones dadas adicionales (>XPath 2.0) • conexión a sistemas de publicación • sintaxis de XML • XQuery • ciclos caja en caja con secuencias • funciones/modulos definidos del usuario (>XPath 2.0) • integración con sistemas de manejo de base de datos Los dos usan XPath 2.0 y su modelo de datos.
Bajo desarrollo • manipulación de datos, transacciones • integrado en SQL/XML • tratamiento con puro texto • Stored Procedures • conexión a lenguajes de programación (XQJ) • XqueryX - formato XML por XQuery
XQuery • parece simple • técnologia seria Resumen • XQuery soporta muy bien aplicaciónes XML actual • datos con estructuras flexibles • integraciòn de varias entradas • filas, streams, colecciones, tablas de SQL • XQuery soporta aplicaciones nuevas • información no completa, rápida, con vida corta • „mejor datos nuevos que datos cambiados“ • aplicaciones del mercado global • orientación a servicios (contratos), multiples lenguajes