Como una preparación para el desarrollo de extensiones para Firefox, comenzamos con una introducción a XML (Extensible Markup Language), lenguaje con el cual está hecho XUL (XML User Interface Language), el lenguaje para interfaces de usuario de Mozilla.
Este es un resúmen –apenas resumido– de un documento del mismo nombre perteneciente a la W3C. Está en español y puedes encontrarlo en http://www.w3.org/XML/1999/XML-in-10-points.es.html
1. XML es para estructurar datos
Los datos estructurados incluyen cosas como planillas de cálculo, libretas de direcciones, parámetros de configuración, transacciones financieras y dibujos técnicos. XML es un conjunto de reglas (también se las podría pensar como líneas de guía o convenciones) para diseñar formatos de texto que permitan estructurar los datos. XML facilita a la computadora la tarea de generar datos, leerlos, y asegurar que su estructura no es ambigua.
2. XML se parece un poco al HTML
Al igual que HTML, XML usa etiquetas (palabras encerradas por ‘<’ y ‘>’) y atributos (de la forma nombre=”valor”). XML usa las etiquetas sólo para delimitar las piezas de datos, y deja la interpretación de los datos completamente a la aplicación que los lee. En otras palabras, si usted ve “<p>” en un archivo XML, no asuma que es un parágrafo. Dependiendo del contexto, podría ser un precio, un parámetro, una persona, una p… (¿y quién dice que debería ser una palabra que empiece con “p”?).
3. XML es texto, pero no está pensado para ser leído
Los programas que producen planillas de cálculo, libretas de direcciones y otros datos estructurados, a menudo guardan esos datos en disco, usando un formato binario o de texto. Una ventaja del formato de texto es que permite que las personas, si es necesario, miren los datos sin el programa que los produjo; en un aprieto, uno puede leer un formato de texto con su editor de texto favorito. XML permite esto. Las reglas de XML son estrictas, su especificación oficial prohibe a las aplicaciones que traten de adivinar las intenciones del creador de un archivo XML dañado; si el archivo está dañado, la aplicación debe detenerse allí mismo y reportar un error.
4. XML es verboso por diseño
Como XML es un formato de texto y usa etiquetas para delimitar los datos, los archivos XML son casi siempre más grandes que los formatos binarios comparables. Eso fue una decisión consciente de los diseñadores de XML. Las ventajas de un formato de texto son evidentes (ver el punto 3), y sus desventajas son fácilmente neutralizadas usando compresión, tanto para el almacenamiento como para su transmisión.
5. XML es una familia de tecnologías
XML 1.0 es la especificación que define lo que son las “etiquetas” y los “atributos”. Más allá de XML 1.0, “la familia XML” es un conjunto creciente de módulos que ofrecen servicios útiles para realizar tareas importantes frecuentemente demandadas. Xlink describe un modo standard de agregar hipervínculos a un archivo XML. XPointer y XFragments son sintaxis en desarrollo para apuntar a partes de un documento XML. Un XPointer se parece un poco a un URL, pero en lugar de apuntar a documentos en la Web, apunta a piezas de datos dentro de un archivo XML. CSS, el lenguaje de hojas de estilo, es aplicable a XML tanto como a HTML. XSL es el lenguaje avanzado para expresar las hojas de estilo. El DOM es un conjunto standard de llamadas a funciones para manipular archivos XML (y HTML) desde un lenguaje de programación.
6. XML es nuevo, pero no tanto
El desarrollo de XMLcomenzó 1996 y ha sido una recomendación de la W3C desde febrero de 1998. Antes de XML estuvo SGML, desarrollado a principios de los 80. El desarrollo de HTML empezó posteriormente en 1990. Los diseñadores de XML simplemente tomaron las mejores partes de SGML, guiados por la experiencia con HTML, y produjeron algo que es no menos poderoso que SGML, y vastamente más regular y simple de usar.
7. XML lleva HTML a XHTML
XHTML, el sucesor de HTML, tiene muchos de los mismos elementos de HTML. La sintaxis ha sido ligeramente cambiada para conformarse a las reglas de XML. Un documento “basado en XML” hereda la sintaxis de XML y la restringe de ciertas maneras (XHTML permite “<p>”, pero no “<r>”); también suma significado a esa sintaxis: XHTML dice que “<p>” significa “parágrafo”, y no “precio”, “persona”, o cualquier otra cosa.
8. XML es modular
XML le permite definir un formato de documento combinando y reusando otros formatos. Puesto que dos formatos desarrollados independientemente podrían tener elementos o atributos con el mismo nombre, se debe tener cuidado al combinarlos (¿”<p>” significa “parágrafo” de este formato o “persona” de aquél otro?). Para eliminar la confusión de nombres al combinar formatos, XML provee un mecanismo de espacio de nombre. XSL y RDF son buenos ejemplos de formatos basados en XML que usan espacios de nombres.
9. XML es la base de RDF y de la Web Semántica
El Resource Description Framework (RDF) es un formato de texto XML que soporta aplicaciones de descripción de recursos y metadatos, tales como listas de temas musicales, colecciones de fotos, y bibliografías. Por ejemplo, RDF podría permitirle identificar las personas en un álbum de fotos Web usando información de una lista de contactos personales. Lo mismo que HTML integró los documentos, los sistemas de menú y las aplicaciones de formularios para lanzar la Web original, RDF integra las aplicaciones y los agentes en una Web Semántica. Las descripciones formales de los términos en una cierta área (compras o manufactura, por ejemplo) se llaman ontologías, y son una parte necesaria de la Web Semántica. RDF, las ontologías, y la representación del significado de modo que las computadoras puedan ayudar a las personas a hacer el trabajo, son tópicos de la Actividad de la Web Semántica.
10. XML es gratuito, independiente de la plataforma y bien soportado
Al elegir XML como la base de un proyecto, usted gana acceso a una comunidad grande y creciente de herramientas (¡una de las cuales podría ya hacer lo que usted necesita!) e ingenieros experimentados en la tecnología. Optar por XML es un poco como elegir SQL para bases de datos: usted todavía tiene que construir su base de datos y sus propios programas y procedimientos que la manipulen, y hay muchas herramientas disponibles y mucha gente que puede ayudarlo. Y como XML es gratuito, usted puede construir su propio software alrededor de él sin pagar nada a nadie.