XML es un lenguaje de marcado que sigue siendo relevante por la versatilidad que posee. Es verdad que tiende a ser un tanto “verbose” pero cuando conoces a fondo las herramientas, la historia y las posibilidades que XML te ofrece, entiendes las ventajas que se presentan al incluirlo en proyectos que ameriten este tipo de lenguaje.

Existe un debate muy amplio entre la utilidad de XML y JSON. Ambas estructuras suelen ser utilizadas como formato de intercambio, sin embargo XML no fue originalmente pensado para usarse como un “DTO”. JSON en cambio, su finalidad es simplemente transportar datos y reducir el tamaño del response o request. Además de que JSON es muy útil cuando estas en proyectos donde javascript es el lenguaje principal, pero eso no lo hace exclusivo de javascript en Java o .NET existen “parsers” que facilitan la conversión de JSON a “POJO’s” o “POCO’s”.

XML es muy útil cuando necesitas manipular los datos o la semántica de un set de información. Existen tantas herramientas que son entandares de la W3C que incluso ha llegado a ser innecesario re-inventar la rueda como ocurre en JSON o YML. Por ejemplo:

  • En XML podemos separar (en un mismo documento) varios bloques de código utilizando “espacios de nombres” que representen dos cosas diferentes pero que posean los mismo nodos.
  • Otra ventaja que XML ofrece, es la manipulación con xpath y xquery para realizar la búsqueda de datos utilizando un lenguaje al estilo “SQL”.
  • Es muy fácil crear las validaciones de datos utilizando un validador DTD. Simplemente deberemos crear nuestro archivo DTD con las reglas que indiquen los elementos, el orden, los atributos y los tipos simples que deberá poseer el XML esperado. Todo lo demás son valores sin sentido y correspondería a un XML inválido.
  • Es fácil crear enlaces entre documentos con XLINK, de modo que puedas reutilizar estructuras XML de forma fácil sin tener que re-inventar la rueda.
  • Puedes realizar transformaciones de un XML a otro XML o de un XML cualquier otro tipo de documento, mediante la implementación de transformaciones XLST. Este último es un lenguaje de programación enfocado a XML. La versatilidad de XLST es muy grande y realmente útil.

XML al ser “verbose” podríamos pensar que el tamaño de transferencia es muy pesado, sin embargo por la forma de árbol que posee al implementarse un algoritmo de compresión (por ejemplo basado en zip) la reducción del tamaño es bastante bueno.

Algunas utilidades en sistemas con XML:

  • Es muy común encontrar XML como request/response en “web services” de tipo “SOAP”, puesto que la representación de los elementos de un objeto es muy sencilla al implementar un árbol de marcado como el ofrecido por XML.
  • En otros sistemas XML es utilizado para generar la presentación del sistema al combinarlo con XLST para generar html u otro formato.

Comments

Leave a Reply