Depto. Informática - UVA
Cursos de Verano 2001 - Universidad de Burgos
Técnicas Avanzadas del Lenguaje Java

Una Introducción a XML

Jesús Vegas

Dpto. de Informática
Universidad de Valladolid
Universidad de Valladolid


Índice





El Problema

Las Causas

La Solución


¿Por qué hay que dar forma a la información?

El Problema

  • Internet, y el Web en concreto están suponiendo una de las grandes revoluciones tecnológicas equiparable a la que causó el descubrimiento de la máquina de vapor.
    • Con la máquina de vapor se pudo empezar a viajar con cierta rapidez, y esto permitió la comunicación entre la gente.
    • Con Internet y el Web, la gente se puede comunicar con los demás con cierta rapidez.
  • Ahora todos nos podemos comunicar con todos, pero no nos entendemos:
    • Internet es una red rapidísima que sólo nos permite ir a gatas.
    • La cantidad de información disponible crece exponencialmente, pero somos incapaces de encontrar lo que buscamos.
    • Cada uno entiende las cosas a su manera: demasiados idiomas, demasiadas formas de decir lo mismo.

Las Causas

  • HTML: HyperTex Markup Language.
  • HTML es el lenguaje de publicación más exitoso jamás inventado: es fácil de aprender.
  • Es demasiado superficial: sólo describe el cómo no el qué.
  • WYSIWYG: What You See Is What You Get se convierte en "lo que ves es todo lo que tienes ".
  • Los navegadores son demasiado generosos, se tragan todo lo que se parezca a un documento HTML.
  • HTML está predefinido, no se puede modificar ni adaptar a nuestras necesidades.
  • Esto hace que los servidores Web sean poco más que expendedores de páginas; es difícil conseguir servicios Web interactivos y flexibles.
  • Es difícil saber si una página será interesante antes de descarlaga y verla, lo que genera tráfico innecesario.

La Solución

  • Primero el QUÉ, luego el CÓMO.
  • XML: eXtensible Markup Language.
  • XML puede ser leido tanto por máquinas como por personas.
  • Los documentos XML siguen unas reglas de generación sencillas pero bien definidas que les hace fácilmente procesables.
  • XML utiliza el conjunto de caracteres UNICODE, lo que facilita la internacionalización.
  • Ayuda a descongestionar Internet, ya que gran parte del procesamiento se puede hacer en el cliente.
  • Facilita encontrar lo que se está buscando: exactitud y agilidad.
  • Permite el intercambio de información sobre Internet.





XML es de Microsoft

XML extiende HTML

XML autosuficiente

XML solo para datos


Cuatro Mitos sobre XML

XML es una conspiración de Microsoft

  • XML es un conspiración, pero no de Microsoft.
  • XML se desarrolló por un grupo de expertos liderados por Sun con la idea de construir una forma de SGML para su uso en el Web.
    • Empresas: Sun, Hewlett-Packard, Microsoft, Netscape, Adobe y Fuji Xerox.
    • Vendedores e integradores SGML: ArborText, Inso, SoftQuad, Grif, Texcel e Isogen.
    • Academia: NCSA, TEI, W3C.
    • Pioneros: DataChannel, Vignette.
    • Añadidos: IBM, Oracle, Omnimark.

XML es una extensión de HTML

  • HTML es un lenguaje de etiquetado: conjunto estándar de delimitadores con significado estándar.
  • Existen otros lenguajes de etiquetado en la industria con propósitos específicos:
    • ATA-2100: manuales de mantenimiento de la industria aeronáutica.
    • PCIS: industria de componentes semiconductores.
    • DocBook: documentación software.
  • Todos son similares:
    • Definen conjuntos de etiquetas con significados y reglas de composición estándares.
    • Cada uno está diseñado para trabajar con un tipo concreto de datos.
    • Todos parten del estándar SGML (ISO 8879, 1986).
  • SGML es un metalenguaje: un lenguaje para definir lenguajes.
  • XML es una forma simplificada de SGML, no una extensión de HTML.
  • XML es tan popular por que cualquier lenguaje creado con él puede ser analizado sintácticamente por un procesador tan pequeño que puede ser incluido en un navegador Web.

XML puede ser manejado por un navegador Web sin más

  • Las etiquetas XML no tienen significado por sí mismas.
  • Al contenido de un documento XML hay que añadirle el tratamiento, ya sea mediante un programa o de forma declarativa con hojas de estilo.
  • Las hojas de estilo CSS, Cascading Style Sheets, pueden ser utilizadas para dar forma a XML, pero no pueden transformar y generar estructuras nuevas.
  • Document Style Semantics and Specification Language, DSSSL es adecuado para proyectos de publicación ambiciosos, pero difícil de manejar.
  • Extensible Style Language, XSL combina el poder de DSSSL con la simplicidad de XML y el tipo de vocabulario de CSS para dar forma a los documentos XML.

XML es sólo para datos

  • Sintaxis legible para los humanos
    • XML es texto, lo que permite que los expertos puedan depurar los ficheros XML fácilmente con herramientas universales como el vi.
    • XML puede hacer por los datos lo que Java hace por los programas: independencia de plataforma y de fabricante
  • Publicación independiente del medio
    • XML y XLS pueden reemplazar a los procesadores de texto y a los formatos de publicación.
    • Capacidad de publicar en un formato internacionalizado y capaz de interoperar con todos los productos y todas las plataformas.
    • Los fabricantes de software cambiarán a formatos estándares y abiertos cuando los usuarios veamos sus ventajas y los demandemos.





Características de XML

Documentos XML

DTD

Docs. Válidos

Estilo

Ejemplos


eXtensible Markup Language

Características de XML

  • XML es un subconjunto simplificado pero estricto de SGML (Standard Generalized Markup Language):
    • Extensible: se pueden definir nuevas etiquetas.
    • Estructurado: se puede modelar datos a cualquier nivel de complejidad, y su definición está en una DTD, Document Type Definition.
    • Validable: cada documento se puede validar frente a una DTD, o en su defecto, se puede declarar bien formado.
    • Independiente de medio: para publicar contenidos en múltiples formatos.
    • Independiente de fabricante y de plataforma: para poder utilizar cualquier herramienta estándar.
  • XML es fácil de aprender y de usar.
  • Los documentos XML son fácilmente procesables y compartidos en Internet.
  • XML no es compatible con HTML, pero los documentos HTMLv4.0 son fácilmente convertibles a XML.

Documentos XML

  • Marcado descriptivo: las etiquetas delimitan una porción del documento y dicen lo que es.
  • Ejemplo: un correo electrónico
    <?xml version="1.0" ?>
    <!doctype email system "http://www.sitio.es/DTDs/email.dtd">
    <email id="E1X108">
    <head>
       <from>
          <name>Jesús Vegas</name>
          <address>jvegas@infor.uva.es</address>
       </from>
       <to>
          <name>Fulanito</name>
          <address>fulanito@unsitio.es</address>
       </to>   
       <subject>Introducción a XML</subject>
    </head>
    <body>
    <p>Este es el guión de la conferencia sobre XML. 
    Mira a ver qué te parece. Saludos, jvegas.</p>
    <attach encoding="mime" name="ixml.html" />
    </body>
    </email>
    
  • Los documentos comienzan con la instrucción de procesamiento
    <?xml version="1.0" ?>
    que los identifican como documentos XML.
  • Luego puede venir una identificación del tipo de documento en cuestión, la DTD.
  • Existen seis tipos de etiquetas: elementos, referencias a entidades, comentarios, instrucciones de procesamiento, secciones de datos y declaraciones de tipo de documento.
    • elementos: están delimitados por ángulos e identifican el contenido que delimitan. Pueden tener atributos.
      <elemento atributo="valor">
    • referencias a entidades: se utilizan para referirse a caracteres no presentes en el teclado (&x2311;), a texto que se repite o que varía frecuentemente o para incluir ficheros externos.
      • &lt; produce el angulo de menor, <
      • &gt; produce el angulo de mayor, >
      • &amp; produce el ampersand, &
      • &apos; produce el apóstrofe, '
      • &quot; produce las comillas, "
    • comentarios: Se pueden colocar en cualquier parte de un documento y no forman parte del texto, no se pasan a la aplicación.
      <!-- comentarios varios -->
    • instrucciones de procesamiento: son un modo de pasar información a la aplicación que ha de tratarle desde el mismo fichero XML. El parser no la trata.
      <?nombre datos ?>
    • secciones de datos: indica al parser que ignore el contenido de la sección.
      <![CDATA[ if (x < 12) hacerEsto();]]>

Document Type Definition

  • Una DTD establece tanto los elementos que forman un tipo de documento dado, como las relaciones que se dan entre ellos.
  • El conjunto de reglas que define los documentos del tipo correo electrónico puede ser el siguiente, escrito en el fichero www.sitio.es/DTDs/email.dtd:
    <!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>
    
  • Existen cuatro tipos de declaraciones: tipos de elemento, listas de atributos, entidades y de notación:
    • 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 uva "Universidad de Valladolid">
    • declaración de notación: identifican tipos específicos de datos binarios externos:
      <!notation GIF87A system "gif">
  • Una DTD puede estar en la misma máquina que el documento asociado o en otra distinta.
  • Un documento XML puede estár distribuido a lo largo de varios ficheros:
  • <!doctype libro system "libro.dtd"
    [
       <!entity indice system "indice.xml">
       <!entity cap1 system "capitulos/cap1.xml">
       <!entity cap2 system "capitulos/cap2.xml">
    ]>
    <libro>
    <cabecera>
       &indice;
    </cabecera>
    <cuerpo>
       &cap1;
       &cap2;
    </cuerpo>
    </libro>
    

Documentos XML Válidos y Bien Formados

  • Un documento es válido si es conforme con la DTD.
  • Los documentos pueden ser validados fácilmente por parsers (existen muchos y son fácilmente programables debido a la naturaleza arborescente de la estructura de los documentos XML).
  • Si no se dispone de DTD, se puede calificar el documento como bien formado si cumple las siguientes condiciones:
    • Están todas las etiquetas.
    • Todas las etiquetas están pareadas, excepto aquellas que corresponden a elementos vacíos, que acaban con /> .
    • Todos los valores de los atributos están entrecomillados.
    • Todas las entidades están declaradas.
  • Los navegadores son muy tolerantes con la calidad de etiquetado de los documentos HTML, aunque esto impide un procesamiento adecuado de los mismos (hogeneidad en la presentación, buscar, etc, etc..).
  • Es fácil saber si un documento XML es válido, o en ausencia de DTD, o si está bien formado, y procesarle adecuadamente o desecharle en otro caso.
  • No todo el mundo está obligado a escribir sus propios DTDs, se pueden utilizar DTDs creados por otros (TEI).

Cuestión de Estilo

  • XML no da pistas sobre el modo de mostar cada elemento de información.
  • Esto es una ventaja: "escribir una vez y publicar donde sea".
  • XSL eXtensible Stylesheet Language permite transformar el documento para mostrarlo de la manera adecuada.
  • También se pueden aplicar las hojas de estilo propias de HTML: CSS Cascade StyleSheets.
  • Utilizar CSS cuando se pueda, y XSL cuando se deba.


  • xsl y css © W3 consortium

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.
    • Sus esquemas son complejos y requieren cierta experiencia en el tema para su utilización.
  • DC, Dublin Core, es capaz de describir la mayoría de los recursos disponibles en Internet.
    • Es muy fácil de usar y de interpretar.
    • Está compuesto por 13 elementos extensibles: Subject, title, author, publisher, etc.





Familia XML

XML y Java


XML y Familia

  • XML es una familia de tecnologías. El estándar define qué son las etiquetas y los atributos, pero alrededor están creciendo una serie de módulos que proporcionan etiquetas, atributos y guías para realizar tareas específicas:
    • XPointer, XBase y XLink describen un modo extándar de añadir hiperenlaces a un documento XML.
    • XPath define la sistaxis 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 elimitar 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.

XML y Java

  • XML y Java tienen características complementarias, y cuando se utilizan juntos constituyen una plataforma muy potente para la compartición y el procesamiento de 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.






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.






Referencias





© Jesús Vegas Hernández
Dpto. Informática
Universidad de Valladolid
jvegas@infor.uva.es
Julio 2001