El XQuery es un lenguaje de interrogación (con algunas características de programación del lenguaje ) que se diseña para preguntar colecciones de datos XML . Es el semántico similar al SQL .0 fue desarrollado por el grupo de trabajo de la pregunta de XML W3C . El trabajo fue coordinado de cerca con el desarrollo XSLT 2.0 por el grupo de trabajo de XSL; los dos agrupa la responsabilidad compartida XPath 2.0, que es un subconjunto de XQuery 1.0 se convirtió en una recomendación W3C el el 23 de enero, 2007 .

" La misión del proyecto de la pregunta de XML es proporcionar instalaciones flexibles de la pregunta a los datos del extracto de documentos verdaderos y virtuales en el World Wide Web, por lo tanto finalmente proporcionando la interacción necesaria entre el mundo del Web y el mundo de la base de datos. En última instancia, las colecciones de archivos de XML serán alcanzadas como databases".

Características

XQuery proporciona los medios de extraer y de manipular datos de los documentos de XML o de cualquier fuente de datos que se puedan ver como XML, tal como bases de datis relacionales o documentos de la oficina.

XQuery utiliza sintaxis de la expresión de XPath para tratar partes específicas de un documento de XML. Complementa esto con un SQL - como " FLWOR expression" para realizarse ensambla. Una expresión de FLWOR se construye de las cinco cláusulas después de lo cual se nombra: PARA, DEJAR, DONDE, LA ORDEN CERCA, VUELVE.

La lengua también proporciona sintaxis permitiendo que los nuevos documentos de XML sean construidos. Donde los nombres del elemento y de la cualidad se saben por adelantado, XML-como sintaxis puede ser utilizado; en otros casos, las expresiones designadas constructores dinámicos del nodo están disponibles. Todas estas construcciones se definen como expresiones dentro de la lengua, y pueden ser jerarquizadas arbitrariamente.

La lengua se basa en un modelo tree-structured del contenido de información de un documento de XML, conteniendo siete clases de nodo: documentar los nodos, los elementos, las cualidades, los nodos del texto, los comentarios, las instrucciones de proceso, y los namespaces.

El tipo sistema de la lengua modela todos los valores como secuencias (un valor del singleton se considera ser una secuencia de la longitud una). Los artículos en una secuencia pueden ser nodos o valores atómicos. Los valores atómicos pueden ser números enteros, secuencias, booleans, y así sucesivamente: la lista completa de tipos se basa en los tipos primitivos definidos en el esquema XML.0 no incluye las características para poner al día documentos o bases de datos de XML; también carece capacidad de la búsqueda con texto completo . Características están ambas en el desarrollo activo para una versión subsecuente de la lengua.

XQuery es un lenguaje de programación que puede expresar XML arbitrario a las transformaciones de los datos de XML con las características siguientes:

  • de la independencia de datos lógicos/físicos del

  • declarativo
  • de alto nivel El efecto secundario libera el
  • Lengua fuerte mecanografiada

    Ejemplos

    El código de XQuery de la muestra debajo de listas los altavoces únicos en cada acto del juego Hamlet de Shakespeare, codificado en hamlet.xml

    ¡mayo de 2007 (UTC) NECESITÓ para hamlet.xml -->

    < html>< head/>< body> { para $act en doc.xml")//ACT dejar $speakers: = distinto-valores ($act//SPEAKER) vuelta < span> < < de h1> {$act/TITLE/text ()}; /h1> < ul> { para $speaker en $speakers < de vuelta; < del li> {$speaker}; /li> } < /ul> < /span> } < /body>< /html>

    XQuery es una lengua funcional que consiste enteramente en las expresiones . No hay declaraciones, aunque algunas de las palabras claves aparecen sugerir declaración-como comportamientos. Para ejecutar una función, la expresión dentro del cuerpo consigue evaluada y su valor vuelta. Así para escribir una función para doblar un valor de la entrada, usted escribe simplemente: declarar el local de la función: doblador ($x) {$x * 2}

    Para escribir una pregunta completa que diga hola el mundo usted escribe la expresión:

    " Hola World"

    Usos

    Debajo están algunos ejemplos de cómo XQuery puede ser utilizado:

    que extrae la información de una base de datos para un uso en servicio de tela.

  • Generando informes resumidos en los datos almacenados en una base de datos de XML.
  • Buscando documentos textuales en el Web para la información relevante y compilar los resultados.
  • Datos de selección y de transformación de XML a XHTML que se publicará en el Web.
  • Tirando de datos de las bases de datos que se utilizarán para la integración del uso.
  • Dividiendo un documento de XML que represente transacciones múltiples en XML múltiple documenta.

    XQuery y XSLT comparados

    Alcance

    Aunque XQuery fuera concebido inicialmente como lenguaje de interrogación para las colecciones grandes de documentos de XML, es también capaz de transformar documentos individuales. Como tal, sus capacidades se traslapan con el XSLT, que fue diseñado expreso para permitir entrar los documentos de XML que se transformarán en XML u otros formatos.0 y los estándares de XQuery fueron desarrollados por los grupos de trabajo separados dentro W3C, trabajando juntos para asegurar un acercamiento común en su caso. Comparten el mismo modelo de datos, tipo sistema, y biblioteca de función, y ambos incluyen el XPath 2.

    Origen

    Las dos idiomas, sin embargo, se arraigan en diversas tradiciones y responden a las necesidades de diversas comunidades. XSLT fue concebido sobre todo como lengua del stylesheet cuya meta fundamental era rendir XML para el lector humano en la pantalla, en la tela (como lengua de la plantilla de la tela), o en el papel. XQuery fue concebido sobre todo como lenguaje de interrogación de la base de datos en la tradición SQL .

    Porque las dos idiomas originan en diversas comunidades, XSLT es más fuerte en su dirección de documentos narrativos con una estructura más flexible, mientras que XQuery es más fuerte en su de manipulación de datos, por ejemplo cuando la ejecución emparentada ensambla.

    Versiones

    XSLT 1.0 aparecido como recomendación en 1999, mientras que XQuery 1.0 se convirtió en solamente una recomendación a principios de 2007; consecuentemente, XSLT es actualmente mucho más ampliamente utilizado. Ambas idiomas tienen energía expresiva similar, aunque XSLT 2.0 tiene muchas características tales como las cuales falte de XQuery 1.0, el agrupar, el número y formato de la fecha, y mayor control sobre namespaces de XML. Muchas de estas características se planean para XQuery 1.

    Cualquier comparación debe considerar el hecho de que XSLT 1.0 son idiomas muy diversas.0, particularmente, ha sido influenciado pesadamente por XQuery en su movimiento a mecanografiar fuerte y a esquema-conocimiento.

    Fuerzas y debilidades

    Los estudios de la utilidad han demostrado que XQuery es más fácil de aprender, especialmente para los usuarios con la experiencia anterior de las idiomas de la base de datos tales como SQL. Esto se puede atribuir al hecho de que XQuery es una lengua más pequeña con pocos conceptos a aprender, y al hecho de que los programas son más sucintos. Es también verdad que XQuery es más ortogonal, en que cualquier expresión se puede utilizar en cualquier contexto sintáctico. Por el contrario, XSLT es un sistema bilingüe en el cual las expresiones de XPath se pueden jerarquizar en instrucciones de XSLT pero no viceversa.

    XSLT es actual más fuerte que XQuery para los usos a los cuales implicar el realizar de pequeños cambios un documento (por ejemplo, suprimiendo todos los elementos de la NOTA). Tales usos se manejan generalmente en XSLT por medio de un patrón de codificación que implica una plantilla de la identidad que copie todos los nodos sin cambiar, modificado por las plantillas específicas que modifican nodos seleccionados. XQuery no tiene ningún equivalente a este patrón de codificación, aunque en las versiones futuras que será posible abordar tales problemas usar las instalaciones de la actualización en la lengua que están en el desarrollo.

    Otra facilidad que carece de XQuery es cualquier clase de mecanismo para el atascamiento dinámico o el polimorfismo. La ausencia de esta capacidad comienza a llegar a ser sensible al escribir usos grandes, o al escribir el código que se diseña para ser reutilizable en diversos ambientes. XSLT ofrece dos mecanismos complementarios en esta área: el emparejar dinámico de las reglas de la plantilla, y la capacidad a la derogación usar xsl: import, de que permiten escribir usos con capas múltiples del arreglo para requisitos particulares.

    La ausencia de estas instalaciones de XQuery es una decisión de diseño deliberada: tiene la consecuencia que XQuery es muy favorable al análisis estático, que es esencial alcanzar el nivel de optimización necesario en lenguajes de interrogación de la base de datos. Esto también hace más fácil detectar errores en el código de XQuery en de tiempo de compilación.

    El hecho de que el sintaxis de las aplicaciones XML de XSLT 2.0 haga algo prolijo con respecto a XQuery 1. Sin embargo, muchos usos grandes se aprovechan de esta capacidad usando XSLT para leer, escriben, o modifican stylesheets dinámicamente como parte de una tubería de proceso. El uso del sintaxis de XML también permite el uso de las herramientas XML-basadas para manejar código de XSLT. Por el contrario, el sintaxis de XQuery es más conveniente para encajar en lenguajes de programación tradicionales tales como Java o C#. En caso de necesidad, el código de XQuery se puede también expresar en un sintaxis de XML llamado XQueryX. La representación de XQueryX del código de XQuery es algo prolija y no conveniente para los seres humanos, pero se puede procesar fácilmente con las herramientas de XML, por ejemplo transformado con los stylesheets de XSLT.

    Trabajo futuro

    Actual, dos extensiones importantes al XQuery están en el desarrollo por W3C:
    XQuery 1.0 y texto completo de XPath 2.0 * facilidad de la actualización de XQuery

  • El trabajo ha comenzado en XQuery 1. Las nuevas características previstas se enumeran en un nuevo documento de los requisitos:

    La extensión (procesal) Scripting para XQuery también se está diseñando:

    Información adicional


    XML que pregunta: XQuery, XPath, y SQL/XML en contexto. Jim Melton y Stephen Buxton. Morgan Kaufmann, 2006. Medios de O'Reilly, 2007.
    XQuery: El lenguaje de interrogación de XML. Profesional de Addison-Wesley, 2004.
    XQuery de los expertos: Una guía al lenguaje de interrogación de W3C XML. Addison-Wesley, 2004. ISBN 0-321-18060-7
    Una introducción a la expresión de XQuery FLWOR. Michael Kay (comité) de W3C XQuery, 2005.

    Puestas en práctica

    XQilla - una fuente abierta (ASL2.0) XQuery que procesa la biblioteca con la ayuda para las últimas características de la actualización de XQuery. XQilla se escribe en C++ e incluye una línea de comando cáscara ejecutable para ejecutar preguntas contra contento de XML almacenado en un sistema de ficheros local. Esta biblioteca se desarrolla activamente y parte de un producto apoyado de Oracle, Berkeley DB XML.
    Altova XMLSpy 2007 es redactor y entorno de desarrollo de XML ampliamente utilizado del anuncio publicitario para modelar, corrigiendo, transformando, y las tecnologías XML-relacionadas de la eliminación de errores. Apoya XQuery, e incluye una depuración de XQuery, un generador de código para trazar entre los esquemas, y el procesador QUERY de AltovaXML que maneja la pregunta 1.
    Base de datos de Sedna XML escrita en C/C++, motor de XQuery del alto rendimiento, diseñado para los usos del grado de la producción, abrir-fuente.
    Puesta en práctica VTD-XML XPath - fuente abierta, atascamientos para el C, el C#, y el Java
    Procesador sajón de XSLT y de XQuery - por el Michael Kay ; Versión de la fuente abierta disponible, extentions de las ayudas escritos en el Java o el C#
    Galax - una puesta en práctica de OCaml XQuery de la fuente abierta que apoya varias extensiones; adaptado especialmente para las puestas en práctica académicas de XQuery
    Qexo - fuente abierta, escrita en el Java con el Kawa
    Servidor de MarkLogic
    DataDirect XQuery - un de alto rendimiento, motor de XQuery de la plataforma-independiente para la mayoría de las bases de datis relacionales
    Virtuoso de OpenLink
    AquaLogic ALDSP - XQuery de BEA para la integración de datos
    Servidor 2005 de Microsoft SQL
    DB2 9
    Qizx - motor de base de datos de alto rendimiento de XQuery, con una versión de la abrir-fuente (Qizx/XQuest abierto, codenamed).
    Puesta en práctica de X-Hive/DB XQuery.
    MonetDB/XQuery - Un procesador de XQuery de la fuente abierta encima del sistema de la base de datis relacional de MonetDB, con la ayuda para la facilidad de la actualización de XQuery de W3C.
    BaseX un natural, procesador de XQuery de la abrir-fuente, permitiendo la entrada de XQuery y la evaluación interactivas.
    mucha más fuente de las puestas en práctica de XQuery (algún libre/abierto).

    considera también: : Categoría:

    los procesadores de XQuery

    .

  • Zenithic
  • XQuery
    Random links:Jueves | Señalización diferenciada de baja tensión | Brian Rafalski | El archivo de Dalkey | dell'Adamello de Saviore

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">