Introducción a XML

Introducción a XML

Hola a todos y bienvenidos a un nuevo artículo del blog de Espai: Introducción a XML.

Bajo esas 3 letras se esconde una tecnología que ha revolucionado la informática en los últimos tiempos.

Es el acrónimo de “eXtensible Markup Language”, lo que traducido a nuestro bonito idioma sería “Lenguaje de Marcas Extensible”. Sigue sin entenderse un pimiento, pero si os digo que permite la comunicación entre aplicaciones escritas en CUALQUIER lenguaje de programación (Java, C, Visual Basic…) y en cualquier plataforma (Windows, MAC, LINUX) quizás la cosa cambia.

Seguro que has oído frases como: “¡El inglés es el nuevo idioma universal! Si lo hablas, todos podrán entenderte” Bien, pues XML es el inglés de los lenguajes (descartemos el acento tejano, no se entienden ni entre ellos)

 

Introducción a XML

Repite conmigo: “eXtensible Markup Language!!”

 

Por si esto fuera poco, es un lenguaje extensible como su nombre indica. Podemos utilizar notaciones que ya existan, como XHTML para web o MathML para matemáticas, o inventar las nuestras propias (como el ejemplo a continuación). Todas estas cualidades lo convierten en un Imprescindible para cualquier programador que quiera crecer en su profesión.

 

Introducción a XML

Bueno ya basta de literatura, vamos a ver un ejemplo:

 


 

Coleccion.XML

 

<COLECCION>

<DISCO>

<TITULO>Born in the USA</TITULO>

<AUTOR>Bruce Springsteen</AUTOR>

<IDIOMA>Ingles</IDIOMA>

</DISCO>

<DISCO>

<TITULO>Songs from the west coast</TITULO>

<AUTOR>Elton John</AUTOR>

<IDIOMA>Ingles</IDIOMA>

</DISCO>

<DISCO>

<TITULO>Live from Paris</TITULO>

<AUTOR>Diana Krall</AUTOR>

<IDIOMA>Ingles</IDIOMA>

</DISCO>

<DISCO>

<TITULO>Number Ones</TITULO>

<AUTOR>Michael Jackson</AUTOR>

<IDIOMA>Ingles</IDIOMA>

</DISCO>

</COLECCION>

 


 

Como podéis ver, se entiende incluso a simple vista y  es fácilmente legible tanto por un programa como por una persona.

Si alguno conocéis el lenguaje HTML, veréis que es muy parecido. En realidad HTML se podría definir como un pariente de XML, igual que nosotros hemos definido nuestro propio fichero “Colección” en el que hablamos de DISCOS, HTML habla de imágenes <IMG>, capas <DIV> y así sucesivamente.

 

Introducción a XML
Hablando de la familia, XML viene de SGML y de los 2 derivan
importantes formatos como HTML y XHTML (su evolución)

XML bien formados y válidos


A diferencia de un fichero de texto plano, un XML puede estar en 4 estados:

  1. Puede estar bien formado, es decir cada etiqueta correctamente abierta y cerrada, contenida en otro elemento padre, y a su vez un solo elemento raíz que los contiene a todos (entre otras reglas, estas son las más importantes)
  2. Puede estar mal formado, que es ignorar alguna de las reglas expresadas anteriormente.
  3. Puede ser válido, es decir nuestro XML CUMPLE con las reglas definidas en un fichero DTD.
  4. Y por último, puede ser inválido si se ignora alguna regla del fichero DTD.

 

Así tenemos una doble comprobación. La primera de ellas (bien o mal formado) es obligatoria, siempre. Un XML no es tal, si no está bien formado.

La segunda de ellas (el DTD, que hablaremos a continuación) es opcional, es decir podemos decidir validar o no nuestro XML, ya depende de la aplicación y de nuestras necesidades.

 

Introducción a XML

Pon orden en tu vida: Usa XML

 

Ejemplo de DTD:


 

Colección.dtd

 

<!DOCTYPE COLECCION [

<!ELEMENT DISCO (TITULO, AUTOR, IDIOMA)>

<!ELEMENT TITULO (#PCDATA)>

<!ELEMENT AUTOR  (#PCDATA)>

<!ELEMENT IDIOMA (#PCDATA)>

]>


 

El formato es bastante intuitivo, como veis COLECCIÓN es el elemento raíz, y puede contener elementos DISCO. A su vez, DISCO puede tener elementos TITULO, AUTOR, IDIOMA. Cada uno de estos últimos ya no contiene más elementos, sino #PCDATA es decir texto plano, sin etiquetas. Si comparáis el XML con el DTD veréis que el primero cumple las reglas a la perfección, por lo que nuestro fichero XML es “Válido” y ya se presume bien formado.

El sentido de estos estados, es eliminar errores en el formato o en el contenido y asegurarnos que la información que circula entre las aplicaciones es coherente. Si fuera un texto plano no habría manera de saber si es correcto o no, y si nuestro programa espera algo como esto

Born in the USA;Bruce Springsteen;Inglés

Y le pasamos esto

“soy programador, y por eso sé arreglar vídeos y neveras”

Tendremos un error difícil de detectar.

 

Introducción a XML

Tío de google Típico programador a punto de reparar una nevera


Uso en una aplicación real


A continuación veremos como sería el funcionamiento de una aplicación Android integrada con otra aplicación (de tipo web, como un supermercado online)


  1. La aplicación Android se conecta a la web a través de la dirección “superonline.com/listaProductos”
  2. La aplicación PHP genera un XML y lo envía como respuesta.
  3. La aplicación Android recibe ese XML y usando esa información, genera una pantalla con un listado de productos. Cuando tocamos 1 de ellos, se añade a la lista de la compra (en el móvil)
  4. Cuando queremos finalizar la compra, tocamos en el botón “finalizar” en el móvil, esto genera un fichero XML que se envía a la aplicación PHP a la dirección “superonline.com/finalizarCompra”. La aplicación PHP recibe esta información, los graba en la base de datos y realiza el envío.
  5. Tu mujer (o marido) te grita porque tas olvidao los “garbanzos con Omega3”

 

Bueno esto último ya no, pero es que no existen todavía (o en Mercadona no están, osea que no existen)

 

Este proceso será exactamente el mismo para cualquier combinación de tecnologías, aplicaciones o plataformas que se utilicen, en cualquiera de los 2 lados. Podría ser una aplicación para IPhone, o para Windows Mobile, o una web hecha en otra tecnología diferente de PHP, incluso entre 2 webs, o 3, o  2 aplicaciones de 2 móviles diferentes… Las combinaciones son infinitas, y lo mejor del caso fácilmente extensibles.

 

Hasta aquí el artículo sobre tecnología XML. Espero que os haya parecido interesante, aunque es solo una breve Introducción a XML y hay muucho más que hablar sobre el tema.

Si os habéis quedado con ganas de más y queréis profundizar, os recomiendo una visita al sitio oficial de XML en estas 3 direcciones

 

http://www.w3.org/XML/

www.w3c.es/Divulgacion/GuiasBreves/TecnologiasXML

http://www.w3schools.com/dtd/default.asp

 

¡Feliz viernes!