XML significa lenguaje de marcas generalizado (Extensible Markup Language). Es un lenguaje usado para estructurar información en cualquier documento que contenga texto, como por ejemplo documentos de configuración de un programa o una tabla de datos.
ML proviene del lenguaje GML (Generalized Markup Language) diseñado por IBM en los años setenta, que en 1986 fue normalizarlo por ISO, creando el SGML (Standard Generalized Markup Language). En 1989 con la aparición de la WWW, el Consorcio, W3C, en colaboración con un panel que incluyó representantes de las principales compañias productoras de software, creó el lenguaje HTML, el cual se definió en el marco de SGML y fue de lejos la aplicación más conocida de este estándar. El XML fue propuesto en 1996, y la primera especificación apareció en 1998. Desde entonces su uso ha tenido un crecimiento acelerado, que se espera que continúe durante los próximos años.
Los documentos XML son documentos de texto. Los símbolos "mayor que" y "menor que" se usan para delimitar las marcas que dan la estructura al documento. Cada marca tiene un nombre; veamos un ejemplo: la marca <figura>, que puede tener uno o más atributos: <figura documento=”foto1.jpg” tipo=”jpeg”> tiene dos atributos, “documento” y “tipo”. Los atributos toman valores que tienen que estar entre comillas o entre apóstrofes. ninguna marca se puede dejar abierta; o sea, por cada marca, <figura> por ejemplo, deberá existir una marca </figura>correspondiente que indica donde termina el contenido de la marca.
Las posibles marcas que pueden aparecer en un documento XML y los atributos que estas pueden tener, son definidos en un documento llamado “Definición del Tipo de Documento” (en inglés “Document Type Definition”) o simplemente DTD.
Cada documento XML debe indicar al comienzo el DTD usado por medio de una marca <!DOCTYPE> ; por ejemplo
<!DOCTYPE xbel
PUBLIC "+//IDN python.org//DTD XML Bookmark Exchange Language 1.0//EN//XML"
"http://www.python.org/topics/xml/dtds/xbel-1.0.dtd">
Esta marca indica que lo que viene a continuación en el documento es una marca “xbel” (con todas sus posibles sub-marcas). La creación de un DTD es una tarea complicada, no por la parte del código que se tiene que escribir, sino porque el diseño de la estructura jerárquica y las marcas usadas es crucial en el éxito de un DTD. en algunas aplicaciones se necesita mucha experiencia para tomar las decisiones acertadas sobre el diseño del DTD. Afortunadamente existen muchos grupos de expertos trabajando en la creación de DTDs públicos que pueden ser usados libremente.
a los documentos XML se les suele dar un nombre terminado en .xml para identificarlos como xml. Esto es simplemente una convención para los usuarios; el estándar XML 1.0 indica que para identificar un documento como XML es necesario que la primera línea tenga el siguiente contenido.
<?xml version="1.0" ?>
Dentro de esta marca puede ir otra información adicional. El alfabeto usado por defecto en los documentos XML es el Unicode; para documentos en español será mas conveniente usar el alfabeto latin-1, lo cual se logra usando el atributo encoding de la marca xml.
<?xml version="1.0" encoding="iso-8859-1" ?>
Han sido desarrollados dos métodos de analizar sintácticamente un documento XML.
El segundo método es obviamente más rápido y consume menos recursos, pero tiene la desventaja de que cada vez que aparece una marca se debe decidir que hacer con ella, y no se puede regresar para atrás en el documento.
SAX ha sido desarrollado con aplicaciones de servidor en mente; el servidor debe suministrar rápidamente el resultado de transformar un documento XML. DOM fue desarrollado con aplicaciones de cliente en mente; por ejemplo un editor de XML necesita poder navegar en cualquier dirección la estructura del documento; en este caso el método SAX no sería muy útil.