XML
Ing. Ronald Pérez
[email protected] [email protected] [email protected]
Agenda
¿Qué es XML?
¿Por qué ¿Por qué estudiar XML?
Documentos XML Elemento en XML
Nombre Contenido Atributo
Prologo Comentario CDATA Usando XML
XML
XML (eXtensible Markup Language) XML es descendiente de SGML (Standard Generalized Markup Lenguage), que fue creado en los 80, pero que tiene como principal problema su complejidad. HTML se creó para publicar información en internet, pero con él solo se puede formatear texto, no describe contenido. XML empezó en 1996 como una pequeña versión de SGML para evitar su redundancia, complicación y características confusas. En 1998 la W3C ya publica su especificación y recomienda su uso.
XML XML es una idea principal, no es nueva, pero tremendamente útil porque:
Ha llegado en un momento adecuado para sacar partido de diversas tecnologías (Internet, Web, …) Y poder abordar de nuevas maneras, más adecuadas y potentes, potentes, problemas importantes:
Integración de datos estructurados (tablas relacionales) y poco estructurados (documentos)
Aportar significado a la web (web semántica) Integración de sistemas de información basados en tecnologías diferentes
Hacer una web orientada a las aplicaciones (WS) en ves de una web orientadas sólo a la interacción con personas (HTML)
XML XML es: Un lenguaje de marcas (etiquetas delimitadas)
Para definir nuevos lenguajes (un metalenguaje)
Con las siguientes características principales:
Versátil: separa contenido, estructura y presentación. Esto permite un visión personalizada de los datos.
Extensible: se puede definir nuevas etiquetas Estructurado: se puede modelar datos a cualquier nivel de complejidad. Validable: cada documento se puede validar frente a un DTD/Schema, o en su defecto, se puede declarar bien formado. Abierto: independientemente de plataformas, empresas, lenguajes de programación o entornos de desarrollo Sencillo: fácil de aprender y de usar.
¿Por qué estudiar XML? Hay una enorme información.
demanda
por
intercambio
de
- Entre plataformas. - Entre empresas.
Hay una enorme demanda por integración de datos. - Fuentes de datos heterogéneos . - Fuentes de datos distribuidas en lugares distintos.
XML: Lenguaje estándar para intercambiar información en la Web y un modelo de datos muy usado en la integración de bases de datos.
Documentos XML Un documento XML puede ser visto como una secuencia de caracteres que se sujetan a ciertas reglas y en ocasiones con cierto sentido. Una aplicación XML es un vocabulario específico que contiene elementos y atributos. La sintaxis de la aplicación define cuáles son los documentos válidos y existen diferentes lenguajes para ello: DTD, esquemas
Ingredientes de XML Un documento componentes:
XML
consta
de
tres
tipos
de
Elementos. Todo elemento está delimitado por una marca de inicio y una de final.
.... sobre los elementos.
.... Texto. Todo aquello que está entre las marcas y no es otro elemento. <...>14 de Abril de 1992
Elemento La unidad fundamental de XML es el elemento. Cada documento tiene al menos un elemento. Los elementos tienen 4 componentes: Nombre. Atributos. Espacio de nombre en el alcance del elemento. Contenido.
Elemento (nombre) El nombre de cada elemento puede contener tantos caracteres alfanuméricos como se requiera. No puede empezar con número. No puede contener espacios en blanco. No puede empezar con ”XML”en ninguna combinación de mayúsculas ni minúsculas. Cada elemento está delimitado por un par de marcas: Una de inicio:
Una de fin
Elemento (contenido) Lo que está entre las marcas es el contenido del elemento. Este puede ser: Texto:
Venezuela Venezuela Un conjunto de elementos.
Andres Bello Nro 9 Caracas Caracas 1020 Venezuela Mixto:
Srita. Andrea Lopez Andres Bello Nro 9 Caracas Caracas 1020 1020 Venezuela
Muy útil para documentos que contienen narrativa: libros, historias
Elemento (contenido) Vacío
!=
En el contenido de un elemento no pueden ir los caracteres <, >, &, ;, ’.
Elemento (atributos) Los atributos son valores, con nombre, asociados con los elementos. La sintaxis es: nombre = valor El nombre de un atributo es cualquier nombre válido y el valor es una cadena de texto, entre apostrofes o comillas.
393.85 393.85 393.85 Un elemento puede tener o no atributos.
Prólogo Los documentos XML pueden empezar con un prólogo. El prólogo contiene una declaración y la definición de las reglas sintácticas del mismo. Atributos del prólogo: versión Identifica la versión XML usada en tal documento. Este atributo es obligatorio y de momento su valor 1.0. encoding Identifica el conjunto de caracteres usados. ISO-88591 es para español. El valor por omisión es el Unicode comprimido UTF-8. standalone Especifica cuando un documento se refiera a una entidad externa o a una definición de tipos de dato externo. Si no hay tales referencias se debe escribir yes. encoding="ISO-8859-1"?>
Comentarios Los comentarios permiten incluir en el documento información que no será procesada. Se escriben entre los símbolos Se pueden colocar en cualquier sitio, excepto en las marcas, dentro de otros comentarios ni en las DTDs.
Este premio es la recompensa justa a tu esfuerzo. !Felicidades! No deben incluir --
CDATA (Character data) El parser ignora lo que se s e encuentra en esta sección, más bien lo interpreta como caracteres sin significado alguno. Puede utilizarse para incluir scripts escritos en otros lenguajes como JavaScript.
Feliz dia Elemento Feliz dia]]>
Feliz dia Una sección CDATA no puede contener la cadena ]]> por lo tanto no es posible tener CDATAs CDATAs anidadas. anidadas . Ejemplo para codificar ]]> se escribiría: ] ]]> ]>
Usando XML declare @miDocumento xml set @miDocumento = '
Un mes 100 Bs.F Dos meses 300 Bs.F ' SELECT @miDocumento.query('/Root/Descripcion/Detalles’)
Usando XML declare @miDocumento xml DECLARE @Producto int set @miDocumento = '
Nombre="Camisa"> Un mes 100 Bs.F Dos meses 300 Bs.F ' SET @Producto = @miDocumento.value('(/Root/Descripcion/@Cod @miDocumento.value('(/Root/Descripcion/@Codigo)[1]', igo)[1]', 'int' ) SELECT @Producto declare @x xml declare @f bit set @x = '
' set @f = @x.exist('/root[(@Fecha cast as xs:date?) eq xs:date("2002-01-01")]') select @f
Usando XML USE Prueba; GO DECLARE @miDocumento xml SET @miDocumento @miDocumento = '
' SELECT @miDocumento -- insertar el detalle hijo (no necesita indicar la ubicacion) SET @miDocumento.modify(' @miDocumento.modify(' insert
3 años de repuestos y servicios into (/Root/Descripcion/Detalles)[1]') SELECT @miDocumento -- insertar el segundo detalle set @miDocumento.modify(' @miDocumento.modify(' insert
Un año de garantia as first into (/Root/Descripcion/Detalles)[1] ')
SELECT @miDocumento -- insertar el tercer detalles SELECT @miDocumento SET @miDocumento.modify(' @miDocumento.modify(' insert
AluminioAluminio l> as last into (/Root/Descripcion/Detalles)[1] ') SELECT @miDocumento -- insertar el cuarto detalle SELECT @miDocumento set @miDocumento.modify(' @miDocumento.modify(' insert
De acero altamente fuerte after (/Root/Descripcion/Detalles/M (/Root/Descripcion/Detalles/Material)[1] aterial)[1] ') SELECT @miDocumento; GO
Qué es XQuery?
XQuery es el lenguaje para consultar datos XML. XQuery para XML es como el SQL para las BD's. XQuery fue construido sobre expresiones Xpath XQuery es soportado por la mayor parte de los proveedores de BD's (IBM, Oracle, Microsoft, etc.) XQuery es una recomendación W3C.
¿Por qué necesitamos XQuery?
Actualmente, XML se ha convertido en una herramienta de uso cotidiano. Sin embargo, a medida que se emplea en un mayor número de proyectos de complejidad y tamaño crecientes y la cantidad de datos almacenados en XML aumenta, se comprueba que, las herramientas más habituales para manipular desde un programa un árbol con un conjunto de datos en XML, los parsers SAX y DOM, no son prácticas para manejar grandes y complejas colecciones de datos en XML. XQuery es un lenguaje funcional, lo que significa que, en vez de ejecutar una lista de comandos como un lenguaje procedimental clásico, cada consulta es una expresión que es evaluada y devuelve un resultado, al igual que en SQL.
¿Por qué necesitamos XQuery?
Una consulta en XQuery es una expresión que lee una secuencia de datos en XML y devuelve como resultado otra secuencia de datos en XML. Un detalle importante es que, a diferencia de lo que sucede en SQL, en XQuery las expresiones y los valores que devuelven son dependientes del contexto. En XQuery las consultas pueden estar compuestas por cláusulas de hasta cinco tipos distintos. Las consultas siguen la norma FLWOR, siendo FLWOR las siglas de For, Let, Where, Where , Order y Return.
Consultas en XQuery En la siguiente tabla se describe la función de cada bloque:
Consultas en XQuery En el siguiente ejemplo de cláusula for, la variable $b tomará como valor cada uno de los nodos libros que contenga el archivo “libros.xml”. Cada uno de esos nodos libros, será una tupla vinculada a la variable $b.
A continuación se muestra un ejemplo de una consulta donde aparecen las 5 clausulas.
Resultado de la consulta:
Consultas en XQuery A continuación se muestra otro ejemplo de consulta XQuery. La siguiente consulta devuelve los títulos de los libros del año 2.000. Como “año” es un atributo y no un elemento se le carácter “@”. antecede con un carácter “@”
Resultado de la consulta: