Potencia y flexibilidad en XML

El formato XML se ha vuelto un estándar de gran aceptación para estructurar e intercambiar datos. Combina potencia y flexibilidad, dos cualidades que suelen competir entre sí, pero que en XML han logrado un buen equilibrio.

El formato en sí mismo es engañosamente sencillo: etiquetas bien anidadas sin significado predefinido y con atributos opcionales, que pueden tener cualquier nombre. Una etiqueta típica (con su contenido) es así:

<arbitraryName arbitraryAttribute=”hello”>Texto</arbitraryName>

Cuando los datos que se manipulan llevan en sí mismos formato de etiquetas entre paréntesis angulares (por ejemplo HTML, XHTML o XML mismo) tenemos un problema. ¿Cómo distinguimos entre la estructura y los datos de XML? Para solucionar esto, las comillas angulares que corresponden a los datos se transforman en su código de entidad html: < se transforma en &lt; y > en &gt; (son abreviaturas de “menor que” y “mayor que”, una forma fácil de recordarlo). XML conoce el significado de estas dos entidades, y los documentos que las contienen se consideran válidos.

Cuando deseamos traducir estos archivos con herramientas de traducción asistida, es conveniente convertirlas. De esta manera, las etiquetas se interpretan como tales en vez de mostrarse como parte del texto a traducir. La segmentación es mejor, la concordancia por contexto es mejor y no las etiquetas aparecen en las oraciones como texto para traducir. En la traducción final, es necesario convertirlas nuevamente en entidades para mantener la estructura original.

Antes de importar los segmentos traducidos, por ejemplo en un sistema de gestión de contenidos, deben procesarse una vez más para convertir las entidades de html en sus caracteres correspondientes, para que el navegador interprete correctamente las etiquetas. Por lo general, la cantidad y los nombres de las etiquetas codificadas del documento original coinciden con las del documento traducido. Sin embargo, tuvimos una situación en la que las etiquetas se introdujeron en campos donde no había etiquetas originalmente. “Siglo XIX” se traduce en francés por “XIXe siècle”. En HTML esto se marca con la etiqueta «sup». “XIX<sup>e</sup> siècle”. El sistema de gestión de contenidos del cliente no estaba preparado para las entidades en estos campos, y se veían en el texto. Por lo tanto, era necesario procesar más los archivos XML para eliminar las etiquetas “sup” en campos sin soporte de conversión de entidades.

Esta anécdota sirve para ejemplificar que la gran potencia y flexibilidad también acarrean la posibilidad de escollos. No es suficiente validar los archivos XML; también es necesario revisar el producto terminado y ajustar los detalles sutiles en proyectos de traducción que incluyan XML.

Traducción del original de Pablo A.