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".
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:
¡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"
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.
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.
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.
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 ninguÌ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.
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:
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.
considera también: : Categoría:
los procesadores de XQuery
.
| Random links: | Jueves | Señalización diferenciada de baja tensión | Brian Rafalski | El archivo de Dalkey | dell'Adamello de Saviore |