XML Extensible Markup Languaje Lenguaje de Marcas Extendido: Aplicación en Infraestructuras de Datos Espaciales Un trabajo basado en: http://www.infor.uva.es/~jvegas/cursos/web/xml/ixml/ixml.html Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 1 ¿Qué es XML? • XML, Extensible Markup Languaje, es un lenguaje de marcas capaz de estructurar y definir la información en un documento – Una marca: en XML es una etiqueta que ayuda a organizar la estructura de un documento y define semánticamente la información que identifica – Semántico: Que se relaciona con los significados Información estructurada: Títulos Entradillas Textos Piés de Foto Indices Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 2 ¿Qué es XML? • La información estructurada nos permite distinguir entre: – el tipo de información (palabras, imágenes, gráficos,...) – el papel que juega dentro del documento (por ejemplo, no es lo mismo el contenido informativo de un encabezado, que el de un pie de página, el primero es más relevante) • Se puede asegurar que casi todos los documentos tienen una estructura definida – XML nos permite identificar esas estructuras Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 3 ¿Qué es XML? A partir de ahora la palabra documento tendrá, para nosotros, un significado adicional además de información, palabras, imágenes, gráficos..., tendrá una estructura reconocible Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 4 ¿Qué es XML? La novedad de XML consiste en permitir compartir los datos a todos los niveles entre diferentes sistemas que exigen hacerlo de manera segura, fiable y fácil ( globalización de la información, compatibilidad entre sistemas ) XML tiene a su alrededor otras tecnologías que la complementan de acuerdo a campos específicos (eBussiness, Gobierno Digital, IDEs…) Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 5 Breve historia del XML Años ´70: IBM desarrolla GML (General Makup Language) 1986: ISO lo estandariza (SGML) 1989: SGML + hiperenlaces = HTML. Comienza la web • Cada fabricante comienza a implementar nuevas características. HTML: Desastre. Ya no hay estandarización. Aparece W3C como garante de estándares 1996: W3C comienza y continúa el desarrollo de XML que soluciona problemas del HTML: • En la programación, el contenido se mezcla con los estilos que se le quieren aplicar • No permite compartir información con todos los dispositivos, como pueden ser ordenadores o teléfonos móviles • La presentación en pantalla depende del visor que se utilice Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 6 Diferencias entre HTML y XML HTML: • Etiquetas fijas. – – <HEAD> ... </HEAD> <BODY> ... </BODY> • Un nivel único de información XML: • Etiquetas definidas por usuario. – – <ETIQ1> ... </ETIQ1> <ETIQ2> ... </ETIQ2> • Estructura con tantos niveles como se desee. <html> <head> <title> E.T.S.I. en Topografía, Geodesia y Cartografía (U.P.M.) Home Page </title> <meta NAME=GENERATOR CONTENT="Microsoft FrontPage 4.0"> <x-sas-window TOP=42 BOTTOM=621 LEFT=4 RIGHT=534> </head> <body TEXT="#264378" BGCOLOR="#FFFFFF" LINK="#264278" ALINK="#FBBD6F" VLINK="#817979" onLoad=""> <p> <center> <img src="gif_agc/escue.gif" width="481" height="228"> </center> </p> <p><center> <table BORDER=1 CELLSPACING=1 CELLPADDING=3 WIDTH=510 align="center"> <tr> <center> <th COLSPAN=2 bgcolor="#AFC5D0" WIDTH=170> <p><strong><font SIZE="+1" COLOR="#182B4D">E.U.I.T. TOPOGRAFICA</font></strong></th></center> <td COLSPAN=2 bgcolor="#EBE9B3" WIDTH=170> <p><center><strong><font SIZE="+1" COLOR="#182B4D">ALUMNOS</font></strong></center> </td><td COLSPAN=2 bgcolor="#AFC5D0" WIDTH=170> <p><center><strong><font SIZE="+1" COLOR="#182B4D">OTROS</font></strong></center> </td></tr> Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 7 Diferencias entre HTML y XML HTML: • Guerra de Navegadores. – Sobrecarga de características propias – Dificultades de portabilidad para los programadores • No distingue entre partes de un documento – Hay que bajar el documento completo XML: • Es un meta-lenguaje para describir lenguajes de marcas. – Proporciona herramientas para definir etiquetas y jerarquías entre ellas – El programador define el significado de cada marca para cada aplicación Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 8 ¿Por qué XML? • Creado para posibilitar la distribución de documentos con formato/estructura a través de la Red • Ni HTML ni SGML eran viables o prácticos para este propósito – HTML totalmente corrompido por casas comerciales – SGML, puede dar toda la estructuración que deseemos, pero tiene en contra su gran complejidad • XML no va a sustituir completamente ni a HTML, ni a SGML – HTML es sencillo y permite dar estilo/presentación a XML • Hasta que se afiance XSL • Hasta que aparezcan visualizadores XML eficientes • Mientras sigan existiendo páginas estáticas sencillas – El SGML seguirá solucionando algunos problemas complejos inabordables por XML – Posible: Sistemas que implementes soluciones con gestores de la información HTML + SGML + XML Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 9 Los 10 Mandamientos del W3C para el XML Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 10 Los 10 Mandamientos del W3C para el XML 1. Los documentos XML deben distribuirse y visualizarse por la red con la misma facilidad que actualmente lo hacen los HTML • Hay que esperar a que aparezcan visualizadores tan robustos y completos como los actuales HTML, que nos permitan ver cómoda y adecuadamente la estructura de árbol de los archivos XML • Esto era hace algún tiempo, hoy por hoy, tanto Ms IExplorer como Mozilla FireFox y los relacionados lo hacen Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 11 Los 10 Mandamientos del W3C para el XML 2.- Los objetivos de XML no deben centrarse únicamente en la posibilidad de servir información estructurada por la red, hay otras muchas aplicaciones que pueden beneficiarse del estándar – – – – Búsqueda de documentos/información con un determinado autor (También mapas, fotos, imágenes) !!! Análisis de contenidos Definición de patrones Visualización gráfica de patrones expresados en XML, etc. Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 12 Los 10 Mandamientos del W3C para el XML 3.- XML Debe ser totalmente compatible con SGML 4.- Los programas que interpreten XML deben ser fáciles de escribir 5.- Ninguna capacidad opcional o funcionalidad sin definir, o ambiguamente definida. Eso evitará problemas de compatibilidad y confusiones en la interpretación Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 13 Los 10 Mandamientos del W3C para el XML 6.-XML debe ser legible por los humanos, de manera que podamos leer un documento en un simple editor de texto 7.- La especificación y diseño de XML debe obtenerse rápidamente. Es una solución que se requiere ya y se están haciendo muchos esfuerzos para lograrlo Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 14 Los 10 Mandamientos del W3C para el XML 8.- El diseño de XML debe ser formal y conciso, sin ambigüedades, de forma que le puedan ser aplicadas todas las técnicas modernas de diseño de compiladores; – esto nos permitirá comprobar que los archivos XML que recibamos están bien formados y libres de errores antes de visualizarlos Nota: XML al carecer de gran parte de la complejidad de SGML puede describirse gramaticalmente con notación EBNF (Extended Backus-Naur Form) Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 15 Los 10 Mandamientos del W3C para el XML 9.- Los documentos XML han de poder crearse y editarse fácilmente, con editores texto, desde los lenguajes de programación (PERL, PHP, Java, JavaScript, et...) o editores específicos para este formato (Cooktoop, XMLSpy, etc...) Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 16 Los 10 Mandamientos del W3C para el XML 10.- La concisión es de mínima importancia Muchas de las capacidades de SGML fueron puestas para facilitar en lo posible la introducción manual de etiquetas, para que las especificaciones fueran unívocas. XML no soporta estas capacidades, que son la causa de gran parte de la carga que arrastran los analizadores SGML Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 17 XML: Características 1.- Extensible Se pueden definir nuevas etiquetas 2.- Estructurado Se puede modelar datos a cualquier nivel de complejidad, y su definición está en un DTD (Document Type Definition) o en XML-Schema 3.- Comprobable si es válido Cada documento se puede validar frente a un DTD, a un esquema XML o en su defecto, se puede declarar bien formado 4.- Independiente del medio Para publicar contenidos en múltiples formatos 5.- Independiente del fabricante y la plataforma Para poder utilizar cualquier herramienta estándar Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 18 XML: Documentos XML 1.- Marcado descriptivo • • Las etiquetas delimitan una porción del documento y dicen lo que es Seis tipos de etiquetas: – elementos – referencias a entidades – comentarios – instrucciones de procesamiento – secciones de datos – declaraciones de tipo de documento Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 19 XML: Document Type Definition • Un DTD establece tanto los elementos que forman un tipo de documento dado, como las relaciones que se dan entre ellos • Ej. Conjunto de reglas que definen un documento llamado correo electrónico: <!element email (head, body)> <!attlist email id ID #REQUIRED> <!element head (from, to+, cc*, subject)> <!element from (name?, address)> <!element to (name?, address)> <!element cc (name?, address)> <!element name (#PCDATA)> <!element address (#PCDATA)> <!element subject (#PCDATA)> <!element body (p | attach)*> <!element p (#PCDATA)> <!element attach EMPTY> <!attlist attach encoding (mime|binhex) "mime" name CDATA #REQUIRED> – – – – Declaración de elementos (identifican los nombres de los elementos, su contenido y las relaciones entre los distintos elementos) Declaración de atributos, (identifican los elementos que tienen atributos, qué atributos tendrán y cuáles son los valores por defecto) Declaración de entidades (permiten asociar nombres con contenidos que por ejemplo se repiten mucho: <!entity upm "Universidad Politécnica de Madrid">) Declaración de notación (identifican tipos específicos de datos binarios externos: <!notation GIF87A system "gif”>) Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 20 Documentos XML válidos y bien formados • • Un documento es válido si es conforme con el DTD Si no dispone de DTD es válido si: • • • • 1.- Están todas las etiquetas 2.- Todas las etiquetas están pareadas, excepto aquellas que corresponden a elementos vacíos, que acaban con /> 3.- Todos los valores de los atributos están entrecomillados 4.- Todas las entidades están declaradas Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 21 Ejemplos de utilización • • • • • • • • • * RDF, Resource Description Framework, es un marco de trabajo que permite la codificación, intercambio y reutilización de metadatos estructurados * OFX, Open Financial Exchange, formato utilizado por Quichen y Microsoft Money para comunicarse con los bancos * CML, Chemical Markup Language, lenguaje para el intercambio de descripción de moléculas, fórmulas y otros elementos químicos * MML, Mathematical Markup Language, diseñado para soportar la escritura de fórmulas matemáticas * OSD, Open Software Distribution, de Marimba y Microsoft * TEI, Text Encoding Initiative tiene mucha experiencia en la estandarización de la descripción de documentos electrónicos * GML, Geographic Makeup Language lenguaje para el intercambio de datos geográficos * CityGML http://www.citygml.org/ * GeoSciML http://www.cgi-iugs.org/tech_collaboration/geosciml.html Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 22 XML y Familia XML es una familia de tecnologías: * * * * * * * * * * * XPointer, XBase y XLink describen un modo estándar de añadir hiperenlaces a un documento XML XPath define la sintaxis para referirse a partes de un documento XML CSS el lenguaje de estilo de HTML se puede aplicar a XML XSL es el lenguaje de estilo avanzado para XML, y está basado en XSLT, que es un lenguaje de transformación que permite reordenar, añadir o eliminar etiquetas y atributos DOM y SAX son un conjunto estándar de llamadas a funciones que permiten manipular documentos XML (y HTML) desde programas XML Namespaces describe cómo se puede asociar una URL con cada etiqueta y atributo de un documento XML XML Schemas proporcionan un modo de definir la estructura, el contenido y la semántica de los documentos XML XEncryption, XSignature y XSecurity tratan los aspectos de seguridad y autentificación en el intercambio de documentos XML XQuery proporciona un modo flexible de consulta para extraer datos de los documentos en el Web SOAP Estándar para empaquetar los mensajes de comunicación con Servicios Web WSDL Estándar diseñado para que los Servicios Web puedan describir sus métodos y parámetros (Auto-describirse) Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 23 XML y Java XML y Java tienen características complementarias, y cuando se utilizan juntos constituyen una plataforma muy potente para compartir y el procesar datos y documentos * * * XML define datos y documentos de una manera abierta y neutral, pero necesita aplicaciones que los procesen Java ofrece un entorno de computación homogéneo con código que se puede transportar a cualquier máquina virtual Java XML y Java hacen posible que se puedan aplicar los principios de "escribe una vez, ejecuta donde quieras" para procesar datos y documentos Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 24 XML: Conclusiones * * * La falta de estructura en la información en Internet incide negativamente en las prestaciones de la red y en las posibilidades de aprovechamiento de la información allí depositada XML es un lenguaje de marcado de documentos diseñado para trabajar en Internet simple, flexible y fácil de utilizar Hay mucho trabajo por hacer para conseguir un intercambio automatizado de documentos en Internet que permita el desarrollo de las aplicaciones ya existentes y de otras nuevas Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 25 XML: Referencias * * * * * * * * * • WWW Consortium (W3C) [www.w3.org] Escuela W3 [www.w3schools.com] XML.com de O'Reilly [www.xml.com] Especificación XML 1.0 [www.w3.org/TR/REC-xml] Portal XML para la Industria [www.xml.org] ebXML [www.ebxml.org] OASIS [www.oasis-open.org] TEI [www.tei-c.org] Dublin Core [http://dublincore.org] Creando Documentos Electrónicos [http://ota.ahds.ac.uk/documents/creating/] Libro blanco Java-XML [http://java.sun.com/xml/ncfocus.html] • Estas transparencias están basadas fundamentalmente en un trabajo de Jesús Vegas de la U. De Valladolid, que puede encontrarse en: http://www.infor.uva.es/~jvegas/cursos/web/xml/ixml/ixml.html * Miguel A. Bernabé + Miguel A. Manso. Grupo de Trabajo MERCATOR. Universidad Politécnica de Madrid 26