DI02.- Elaboración de interfaces mediante documentos XML.
1.- Lenguajes basados en XML.
Caso práctico
Tal y como tenía planeado, Ada reúne a su equipo para comunicarle sus planes. El primer punto a tratar es hacer un pequeño estudio del origen y características del lenguaje XML que permita a su equipo trabajar con los documentos de interfaz que tendrán que generar. El equipo debe estar preparado para poder editarlos y modificarlos, por lo que deben conocer bien cuál es la estructura interna de un documento XML y las reglas para su creación.
Ada pone a su equipo manos a la obra, y comienzan a buscar información en Internet y libros especializados, llegando a estas conclusiones...
¿Qué es XML?
XML (eXtensible Markup Languaje o Lenguaje de Marcado eXtensible) es un lenguaje basado en texto de definición de documentos, que permite representar información estructurada de gran variedad de documentos.
Al estar puramente basado en texto, un documento XML será un archivo plano en el que, a través de una serie de elementos propios se definen aspectos del documento a generar, pero no de su diseño propiamente dicho, sino de su estructura.
Orígenes
Hacer independiente la estructura de un documento de la constante evolución de las herramientas que se usan para visualizarlo ha sido, desde hace tiempo, foco de interés de los desarrolladores y desarrolladoras de aplicaciones informáticas. En los años sesenta, Charles F. Goldfab, por encargo de IBM desarrolló el lenguaje GML, Generalized Markup Languaje, cuyo objetivo era describir la estructura de los documentos de forma que el resultado no dependiese de una determinada plataforma o una aplicación específica. De la evolución de GML surgió SGML que se convirtió en el estándar internacional ISO 8879. Sin embargo, tuvo difusión tan sólo en medios académicos y de la administración, pero no tuvo demasiado éxito entre los usuarios medios debido a su dificultad.
El hito que supuso la amplia difusión de las tecnologías de la comunicación y la circulación de documentos electrónicos entre cualquier punto del mundo fue la creación de la World Wide Web (Tim Berners-Lee, en 1990), y, asociado a ello la aparición de HTML, lenguaje de descripción de documentos basado en SGML para la web.
HTML es un lenguaje que permite combinar en un solo documento el contenido con el formato, por ejemplo:
Si en un documento HTML se añade el siguiente código: "El padre del lenguaje <b>GML</b> fue <b>Charles F. Golfab</b>, que lo desarrolló por encargo de <b>IBM</b>."
Conseguiré algo parecido a esto: El padre del lenguaje GML fue Charles F. Golfab, que lo desarrolló por encargo de IBM.
Ya que encerrar un texto entre <b> y </b> equivale a aplicar el formato negrita. Estos elementos de HTML como <b> y </b> se denominan etiquetas, cada etiqueta tiene un significado en el diseño del documento final o en su estructura.
XMLsin embargo, no incluye ninguna orientación al diseño es puramente un lenguaje estructural cuyo objetivo es definir cómo se organiza la información en un documento, el diseño se definirá después, de esta forma se hace independiente al documento de la plataforma, e incluso de la aplicación con la que se va a visualizar (Web, impreso, como documento de texto, y más). Por ejemplo, si definimos una página web con XML podremos verla fácilmente en un navegador web, en un teléfono móvil, o, incluso, en un lector Braille, sin modificar el documento de base. Lo que cambia es la forma en que se interpreta el contenido.
XML nace con el objetivo de convertirse en un estándar para el intercambio de información estructurada entre diferentes plataformas: Windows, Android, Linux, iOS, etc. Se puede utilizar en bases de datos, editores de texto, cálculos, dispositivos móviles, etc... Actualmente es la base para la creación de interfaces gráficas de muchos generadores de códigos o IDEs como Visual Studio, Android Studio, NetBeans y Eclipse.
Reflexiona
XML no incluye ninguna orientación al diseño. Esto quiere decir que no vamos a hacer referencia a ningún aspecto relativo a la aplicación final en la que visualicemos el documento. Entonces ¿cómo crees que podemos usar el mismo archivo para ver en un navegador que en un teléfono móvil? ¿Qué necesitaremos para visualizar ese contenido de formas diferentes?