Bases de Datos XPath - XQuery 1. XML: XPath - XQuery. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Documentos relacionados
1. Creación de colecciones y documentos XML en nuestra herramienta exist-db Open Source Native XML Database.

Definición de XQuery.

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

Introducción a la Firma Electrónica en MIDAS

PROLOG Inteligencia Artificial Universidad de Talca, II Semestre Jorge Pérez R.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

Ejemplos de conversión de reales a enteros

Figura 4.1 Clasificación de los lenguajes de bases de datos

LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS

JavaScript como Orientación a Objetos

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B)

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

Modulo 1 El lenguaje Java

XML y XQuery. Qué es XML? Qué es XML? (II) Ejemplo de fichero XML. Cuerpo de un documento XML. Estructura de un documento XML

IIC Tópicos Avanzados en Bases de Datos Extracción de Información en XML

árbol como un conjunto de nodos y líneas

Programación I: Funciones y módulos

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

Tablas. Estas serán las tablas que usaremos en la mayoría de ejemplos. Empleado

Análisis de esquemas XML [1]

Programación Genética

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Internet Information Server

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Ampliación de Estructuras de Datos

RESTRICCIONES DE INTEGRIDAD Y DEPENDENCIAS FUNCIONALES Bases de Datos Universidad de Talca, II Semestre Jorge Pérez R.

Análisis de los datos

GENERACIÓN DE CÓDIGO

MANUAL DE PUBLICACIÓN EN PORTAL UNED

Consultas con combinaciones

Árboles. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores

XQuery. Jose Emilio Labra Gayo Departamento de Informática Universidad de Oviedo. XQuery

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

Lección 24: Lenguaje algebraico y sustituciones

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

1 Introducción a XML

Lección 4: Suma y resta de números racionales

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

Capítulo 1 Documentos HTML5

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes

ESTRUCTURAS CONDICIONALES EN PHP: SWITCH, CASE, BREAK. EJEMPLOS DE USO Y EJERCICIOS RESUELTOS. (CU00820B)

TUTORIALES XQuery. e-business designer Versión 3.3.x. ebd es un producto de

SQL Server 2008 Bootcamp Día 2. SQL 2008 HierarchyID

Ingeniería en Informática

UNIDAD I: LÓGICA PROPOSICIONAL

Bases de datos en Excel

Base de datos Procedimientos Almacenados y Funciones

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

CRECIMIENTO DE AUDIENCIA:

Curso de PHP con MySQL Gratis

Transformación de documentos XML con

coie UNIVERSIDAD COMPLUTENSE DE MADRID

TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 2.

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II)

Árboles AVL. Laboratorio de Programación II

Lección Estructura. Sentencias, Atributos y Condiciones Lógicas

Hojas de Estilos XSLT en el aula. Nieves Carralero Colmenar I.E.S Ramón y Cajal. Albacete ncarralero@jccm.es

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Actividades con GeoGebra

BASE DE DATOS UNIVERSIDAD DE LOS ANDES FACULTAD DE MEDICINA T.S.U. EN ESTADISTICA DE SALUD CATEDRA DE COMPUTACIÓN II. Comenzar presentación

Estructuras de datos: Proyecto 2

Web. Microsoft Excel: Capítulo 1 Creación de páginas web con Dreamweaver

Bases de Datos Indexación y Hashing 1. Indexación. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Codd propuso estos tres lenguajes como base teórica de cualquier lenguaje que quisiera cumplir con los requisitos formales del modelo.

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Funciones, x, y, gráficos

Archivo de correo con Microsoft Outlook contra Exchange Server

Capítulo VI. Diagramas de Entidad Relación

Sub consultas avanzadas

La página web del centro con SPIP

Creación de materiales didácticos Aplicaciones para dispositivos móviles Lección 4

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

UN EJEMPLO DE BÚSQUEDA Tutorial sobre el uso de Google.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

XPath en el aula. Nieves Carralero Colmenar I.E.S Ramón y Cajal. Albacete ncarralero@jccm.es

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

UNLaM REDES Y SUBREDES DIRECCIONES IP Y CLASES DE REDES:

Grupo: Documentación Tipo documento: Manual de Usuario V.1.0 /2011 René Darío Pacios Díaz

Estructuras de Datos y Algoritmos. Árboles de Expresión

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

CLASE # 5 TÉCNICAS DE CAJA BLANCA

Manual SBR. Pero antes de explicar las actividades que principalmente podemos desarrollar vamos a dar una visión global de la aplicación.

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

COMO CREAR UN DIAGRAMA DE FLUJO


TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Creación de Funciones de Conducción

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

Fórmulas. Objetivos y Definición. Definir fórmulas nos brinda una forma clave de compartir conocimiento y obtener código generado optimizado

Introducción a PHP. * No es necesario declarar previamente las variables.

Programa. Conceptos básicos: variables, valores y objetos predefinidos, operadores, etc. etc. Callbacks, eval(), etc.

UNIDAD 1. LOS NÚMEROS ENTEROS.

Instalación del programa PSPP y obtención de una distribución de frecuencias.

PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 7

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

Transcripción:

Bases de Datos XPath - XQuery 1 XML: XPath - XQuery Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Bases de Datos XPath - XQuery 2 XPath - XQuery Ambos son estándares para acceder y obtener datos desde de un XML Toman en cuenta que la info está semiestructurada como árbol XPath es un lenguaje para referirse a caminos dentro de un XML (caminos en el sentido del árbol de XML visto como un grafo) XQuery es un lenguaje más completo con funcionalidades similares a SQL.

Bases de Datos XPath - XQuery 3 XML de Ejemplo: Empresa <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa>

Bases de Datos XPath - XQuery 4 Descriptores de Caminos Sirven para seleccionar elementos que se encuentran en cierto camino en el árbol. Los descriptores se forman simplemente nombrando tags separados por /. Si el descriptor comienza con / se supone que es un camino desde la raíz. Si el descriptor comienza con // se supone que el camino descrito puede comenzar en cualquier parte en el árbol. Impĺıcitamente se supone que todos los descriptores se refieren a caminos que avanzan en la profundidad del árbol.

Bases de Datos XPath - XQuery 5 Descriptores de Caminos: Ejemplo <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario= 200000 > <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> El descriptor /Empresa/departamento/empleado selecciona a todos los tags que corresponden a empleados de la empresa.

Bases de Datos XPath - XQuery 6 Descriptores de Caminos: Ejemplo (cont.) <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> El desciptor /Empresa/departamento/empleado/nombre selecciona la lista de todos los tag nombre de todos los empleados en la empresa.

Bases de Datos XPath - XQuery 7 Descriptores de Caminos: Ejemplo (cont.) <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> El desciptor //nombre selecciona la lista de todos los tag nombre en cualquier lugar del documento. En este caso se obtienen los nombres de los departamentos y de los empleados.

Bases de Datos XPath - XQuery 8 Descriptores de Caminos: Ejemplo (cont.) <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> El desciptor //empleado/nombre selecciona la lista de todos los tag nombre que son hijos de un tag empleado en el árbol, partiendo desde cualquier punto. En este caso obtenemos el mismo resultado que en el primer ejemplo.

Bases de Datos XPath - XQuery 9 Operador *: Ejemplo <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> El * se usa para nombrar a cualquier tag, se usa como comodín. El desciptor /*/*/nombre selecciona la lista de todos los tag nombre que se encuentran a dos niveles de profundidad desde la raiz. En este caso se obtienen sólo los nombres de los departamentos. Qué se obtiene con el descriptor //*/*/*/nombre?

Bases de Datos XPath - XQuery 10 Atributos Para referirse a los atributos de los elementos se usa @ antes del nombre, por ejemplo @telefono. En un descriptor de camino los atributos se nombran como si fueran tag hijos pero anteponiendo @.

Bases de Datos XPath - XQuery 11 Atributos: Ejemplo <Empresa> <departamento telefono="8741460" > <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> El descriptor \Empleado\departamento\@telefono selecciona los telefonos de los departamentos de la empresa.

Bases de Datos XPath - XQuery 12 Condiciones de Selección En un descriptor una condición entre paréntesis cuadrados [] puede seguir al nombre de un tag o atributo (sin usar /). En este caso se seleccionan los elementos que siguen el camino del descriptor pero que además cumplen la condición especificada. En las condiciones se pueden usar comparadores (<, >, <=, >=, =,!=) y conectivos lógicos (or, and).

Bases de Datos XPath - XQuery 13 Condiciones: Ejemplo <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> La expresión /Empresa/departamento/empleado[@salario > 500000] selecciona los elementos empleados tales que su atributo salario es mayor a 500000.

Bases de Datos XPath - XQuery 14 Condiciones: Ejemplo (cont.) <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario= 200000 > <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> La expresión //departamento[codigo=b02]/empleado/nombre selecciona los nombre de los empleados del departamento con código B02.

Bases de Datos XPath - XQuery 15 Predicados Las condiciones de selección son un tipo especial de predicados que se usan para dirigir la búsqueda por el árbol. En general un predicado, que también se escribe entre paréntesis cuadrados luego de un elemento (o atributo), puede ser una expresión general para dirigir la búsqueda. Se pueden usar funciones construidas (last, count, etc.) o expresiones matemáticas (usando +, -, *, div, etc.)

Bases de Datos XPath - XQuery 16 Predicados: Ejemplo <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> La expresión \Empresa\departamento[1]\empleado\rut entrega el rut de los empleados del primer elemento departamento en el documento. Por ejemplo la expresión \Empresa\departamento\empleado[last()]\rut entregaría el rut del último elemento empleado de cada departamento en el árbol, y \Empresa\departamento\empleado[last()-1]\rut el rut del penúltimo elemento empleado en el árbol.

Bases de Datos XPath - XQuery 17 Predicados: Ejemplo(cont.) <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> La función count se usa para contar elementos. Por ejemplo la expresión \Empresa\departamento[count(empleado)>1]\codigo entrega el elemento código de todos los departamentos que tienen más de un (elemento) empleado.

Bases de Datos XPath - XQuery 18 Axes Hasta ahora sólo hemos visto descriptores de caminos que bajan por el árbol. En general un camino se puede describir para partir en la raíz del árbol y luego ejecutar una secuencia de pasos para recorrer el árbol y encontrar los nodos que se necesitan. En cada paso se puede seguir una de varias direcciones (axes). La dirección por defecto es child::--- que significa seguir por cualquiera de los hijos del elemento actual.

Bases de Datos XPath - XQuery 19 Axes: Ejemplo El descriptor /Empresa/departamento es realmente una forma abreviada del descriptor /Empresa/child::departamento. En este último se ha hecho expĺıcito el deseo de seguir por los hijos de Empresa. El @ es simplemente una abreviación de la dirección attribute:: El descriptor /Empresa/departamento[@telefono = "2354928"] es entonces una forma abreviada de /Empresa/child::departamento[attribute::telefono = "2354928"].

Bases de Datos XPath - XQuery 20 Más sobre Axes Existen muchas otras direcciones que se pueden seguir. parent:: para seguir por los padres de un elemento. descendant:: para indicar a todos los descendientes y descendant-or-self:: para indicar al nodo actual y todos sus descendientes (note que // resulta ser simplemente una abreviación de esta dirección). ancestor::, ancestor-or-self::, ancestor-or-self::, following-sibling::, preceding-sibling::, etc.

Bases de Datos XPath - XQuery 21 Axes: Ejemplo <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> La expresión \\nombre[nombre = Gonzalez ]\parent::empleado\rut entrega el rut del empleado de nombre Gonzalez. La búsqueda se realiza primero encontrando un nodo nombre con contenido Gonzalez, se sigue avanzando hacia el padre que debiera ser un elemento empleado, y luego al subelemento (hijo) rut.

Bases de Datos XPath - XQuery 22 Axes: Ejemplo (cont.) <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> La expresión \\Empresa\descendant::nombre obtendría todos los elementos nombre descendientes del elemento Empresa, en nuestro caso, los nombres de departamentos y empleados. Qué se obtiene con \\nombre\descendant::nombre? y con \\nombre\descendant-or-self::nombre?

Bases de Datos XPath - XQuery 23 Axes: Ejemplo (cont.) <Empresa> <departamento telefono="8741460"> <codigo>b02</codigo> <nombre>marketing</nombre> <empleado salario="200000"> <rut>10934412</rut> <nombre>parra</nombre> <empleado salario="600000"> <rut>12008991</rut> <nombre>chavez</nombre> <departamento telefono="2354928"> <codigo>a03</codigo> <nombre>finanzas</nombre> <empleado salario="1000000"> <rut>881672</rut> <nombre>gonzalez</nombre> </Empresa> La expresión \\empleado[nombre= Parra ]\following-sibling::empleado obtendría el elemento empleado siguiente (como nodo en el documento) al empleado de nombre Parra.

Bases de Datos XPath - XQuery 24 XPath En general el estandard XPath cuenta con una extensa funcionalidad. Por ejemplo funciones para manejo de strings, conversión numérica, fecha y horas, funciones de agregación típicas, etc. etc. Una referencia completa se puede encontrar en http://www.w3.org/tr/xpath

Bases de Datos XPath - XQuery 25 Importancia de XPath La principal: se encuentra en el corazón de todos los estándares más avanzados de XML. XSLT XPath XQuery XPointer XLink

Bases de Datos XPath - XQuery 26 XQuery XQuery es un lenguaje de consulta para consultar documentos XML. Lo más simple es pensar que XQuery es a XML como SQL es a las tablas relacionales. XQuery contiene a XPath toda expresión de consulta en XPath, es también válida (y entrega el mismo resultado) en XQuery. Pero XQuery permite mucho más

Bases de Datos XPath - XQuery 27 XQuery Similar a como en SQL se usaba select-from-where, en XQuery usaremos for-where-return con algunas inclusiones adicionales. Por ejemplo el siguiente es un camino en XPath (note el archivo expĺıcito): doc("empresa.xml")\empresa\departamento\empleado[@salario>500000]\nombre es válido también en XQuery. Pero usando for-where-return se puede obtener un resultado equivalente: for $x in doc("empresa.xml")\empresa\departamento\empleado where $x\@salario > 500000 return $x\nombre

Bases de Datos XPath - XQuery 28 XQuery Sintaxis En la consulta for $x in doc("empresa.xml")\empresa\departamento\empleado where $x\@salario > 500000 return $x\nombre for se usa para seleccionar nodos y almacenarlos en una variable $x where se usa para discriminar algunos de los nodos seleccionados return se usa para especificar que se quiere retornar Todas las variables en XQuery comienzan con $

Bases de Datos XPath - XQuery 29 XQuery Sintaxis (cont.) En general la sintaxis de una expresión simple en XQuery es: for <variable> in <expresión XPath> where <condicion XPath> return <expresión de salida> El where puede ser omitido si se quieren seleccionar todos los nodos sin restricción. El return puede ser condicional (usando if)y así tener más versatilidad en la salida Además el return puede especificar más que simplemente expresiones XPath, puede mezclar tags XML que también se quieran a la salida.

Bases de Datos XPath - XQuery 30 XQuery Ejemplo En la siguiente expresión for $emp in doc("empresa.xml")\\empleado return if ($emp\@salario > 1000000) then <importante>{data($emp\nombre)}</importante> else <normal>{data($emp\nombre)}</normal> el resultado debiera ser algo como <importante>soto</importante> <normal>perez</normal> Note la sintaxis del if-then-else y el uso de la función data.

Bases de Datos XPath - XQuery 31 XQuery Ejemplo (cont.) Una expresión XQuery puede también llevar un preambulo lo que nos permite por ejemplo generar páginas html: <html> <body> <ul> { for $emp in doc("empresa.xml")\\empleado return if ($emp\@salario > 1000000) then <li><strong>{data($emp\nombre)}</strong></li> else <li>{data($emp\nombre)}</li> } </ul> </body> </html> que resulta en una págiuna con una lista de los empleados enfatizando a los importantes.

Bases de Datos XPath - XQuery 32 XQuery Hay mucho que decir acerca de XQuery (tanto o más que acerca de XPath). Aun no es un estandard en la Web, pero ya está siendo muy usado. Una referencia completa se puede encontrar en http://www.w3.org/tr/xquery