Office 2000 y XML

Office 2000 no es solo una buena suite de aplicaciones informáticas, sino que también es una herramienta de gestión de documentos web muy avanzada. Sus opciones de XML permiten generar automáticamente los documentos web más avanzados del momento, además de permitir la interconexión de diferentes documentos provenientes de las distintas aplicaciones que forman Office 2000.

En este artículo se van a comentar algunas de las características de los "esquemas" que utiliza Office 2000 para trabajar con XML.

Notas: Para comprobar los ejemplos que siguen a continuación, es imprescindible disponer de Office 2000 y de Internet Explorer 5.

Introduccción

La versión anterior de Microsoft Office, o sea, la versión 97, ya incorporaba muchas opciones y herramientas para generar páginas web, aunque algunas de ellas no estaban muy depuradas, perdiéndose incluso alguna información importante cuando se convertía un documento Office al formato HTML.

La última versión de Microsoft Office, esto es, la versión 2000 (que internamente se define como versión 9), no solo ha mejorado sus posibilidades de creación y edición de páginas web, sino que ha incorporado verdaderas opciones avanzadas para la Web, tales como el funcionamiento en intranet, la utilización de CSS o la incorporación de XML y VML.

La idea de Microsoft ha sido utilizar el HTML en Office 2000 de forma similar a como se trabaja en los formatos propios de las diferentes aplicaciones, para lo cual, se ha visto obligada a perfeccionar el código que se genera cuando se trabaja como página web, auxiliándose especialmente de las normas CSS y XML, aunque también aprovecha algunas características propias del entorno que forman Office 2000-Internet Explorer 5. Todo esto hace posible que cuando se pasa del diseño en formato propio al Diseño Web, no se nota el cambio en las herramientas disponibles.

Cualquier usuario de Office 2000 que observe el código fuente (opción Ver > Código fuente HTML) que genera un documento cualquiera de Word 2000 abierto como página web (opción Archivo > Nuevo... > Página Web), observará que el código es bastante complejo, aunque no se haya escrito ni una palabra. Existen dos motivos principales.

Uno es que cualquier documento precisa cierta información extra que no tiene relación directa con su contenido, como es el nombre del autor, la fecha de creación, la empresa propietaria, etc. Esta información se guarda en formato XML y se distingue porque se incluye entre las etiquetas <xml> y </xml>.

El otro motivo es que es necesario definir algunos estilos de trabajo para poder empezar, como son el estilo de texto Normal o el estilo de definición de la página (tamaño, márgenes, encabezado y pie de página,...). Estos estilos se definen en formato CSS y se incluyen entre las etiquetas <style> y </style>.

Según se va creando el documento, no solo se van añadiendo las etiquetas HTML necesarias para soportar el contenido, sino que se van modificando los elementos XML de información extra y las descripciones CSS de los estilos.

Espacios de nombres

Lo primero que hay que tener en cuenta para entender el código que genera Word 2000 cuando trabaja como Diseño Web, son los espacios de nombres.

De una forma sencilla, se puede decir que los "espacios de nombres" (namespaces) es un sistema normalizado que permite trabajar con varios documentos integrados en un mismo documento. Podemos imaginar que es como si ciertas partes de un código se situan en una capa, mientras que otras partes del mismo código están en otras capas diferentes, de tal manera que dichas capas se pueden superponer y mezclar, conformando un único documento.

Esto permite, entre otras cosas, poder trabajar con diferentes especificaciones dentro del mismo documento, sin que las posibles coincidencias entre las distintas definiciones produzcan interferencias ente sí. Por ejemplo, se puede trabajar con una etiqueta <fin> que se refiera al final del documento y otra etiqueta <fin> que sirva para señalar la dirección del final de una carrera de bicicletas, pues si cada etiqueta pertenece a un espacio de nombre distinto, actuarán sin interferirse mutuamente.

En el código de un documento Office 2000 se declaran los espacios de nombres al principio del código. Si observamos el caso de un documento Word 2000 en blanco, veremos que empieza con:

<html xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:w="urn:schemas-microsoft-com:office:word" 
xmlns="http://www.w3.org/TR/REC-html40">

Podemos ver cómo se aprovecha la etiqueta HTML para incluir los tres espacios de nombre (atributo xmlns) correspondientes al espacio de nombre por defecto adjudicado a la especificación HTML 4 (xmlns="http://www.w3.org/TR/REC-html40"), al espacio de nombre correspondiente al esquema de Office 2000 (xmlns:o="urn:schemas-microsoft-com:office:office") y al espacio de nombre relacionado con Word 2000 (xmlns:w="urn:schemas-microsoft-com:office:word").

También hay que observar que a cada espacio de nombre se le adjudica un identificador: una o para el de Office 2000 y una w para Word 2000. En el caso del espacio de nombre por defecto (la norma HTML), que es el que más se va a utilizar, el sistema se ahorra el identificador.

Estos identificadores van a servir para controlar las etiquetas que se van añadiendo al código según se va creando el documento. Si se añaden opciones de Excel 2000, su identificador será x, para las opciones de Access 2000 se utiliza el identificador a, PowerPoint se identifica con p y los dibujos vectoriales se distinguen con el identificador v. Además de los posibles espacios de nombres mencionados, en los documentos de Office 2000 podemos encontrar otros menos usuales, como el correspondiente a "mecanografía de datos" (data-typing), que se identifica con dt.

Comentarios condicionales

Otra característica que hay que comentar para entender el código generado por Office 2000 cuando trabaja en formato HTML es lo que se conoce como "comentario condicional" o CC (Conditional Comment). Este procedimiento, en el momento de escribir este artículo, solo es soportado por Office 2000 y IE5.

El funcionamiento de los CCs es muy simple, pero muy potente. Se basa en aprovechar el sistema clásico de marcación de comentarios en el código HTML, que utiliza las marcas de principio <!-- y de final --> para ocultar cualquier texto incluido entre ellas.

Si en un código HTML se incluyen la siguiente línea:

<!-- Este comentario no se puede ver -->

el texto quedará oculto a los ojos del visitante de la página web.

Otra utilización típica de estas marcas es la que las utiliza para ocultar cierto código. Por ejemplo, si entre el código HTML de una página web nos encontramos con las siguientes líneas:

<script type="text/javascript"> 
<!-- 
document.write("Hola") 
--> 
</script>

Las marcas <!-- y --> sirven para que los visualizadores que no soportan JavaScript ignoren el código existente entre ellas, que será procesado solo por los navegadores que sí admitan esta tecnología.

El sistema Office 2000-IE5 soporta una variación de este proceso, ya que pueden añadir condiciones a estas marcas que les indican si el código que incluyen debe ser procesado o no.

Para utilizar CC hay que añadir [if X ] a la marca de principio y [endif] a la marca de final, donde X es la condición que se precisa para activar el código que se incluye entre las marcas de CC.

Por ejemplo, las siguientes líneas:

<!--[if IE 5]> 
Usted está navegando con Internet Explorer 5 
<![endif]-->

Permiten mostrar el mensaje solo si el navegador utilizado es el IE5.

Por el contrario, el código siguiente:

<![if ! IE 5]> 
Usted no está navegando con Internet Explorer 5 
<![endif]>

Hace que se muestre el mensaje solo si el navegador utilizado no es el IE5.

Office 2000 aprovecha el CC para incluir información especial que solo él puede utilizar. Así, el siguiente código:

<!--[if gte mso 9]> 
<xml> 
<o:DocumentProperties> 
<o:Author>Ramón Montero</o:Author> 
<o:Revision>1</o:Revision> 
<o:TotalTime>1</o:TotalTime> 
<o:Created>2000-05-04T18:29:00Z</o:Created> 
<o:Pages>1</o:Pages> 
<o:Company>RAMON.ORG</o:Company> 
<o:Lines>1</o:Lines> 
<o:Paragraphs>1</o:Paragraphs> 
<o:Version>9.2812</o:Version> 
</o:DocumentProperties> 
</xml> 
<![endif]-->

Es interpretado por Office 2000 (que es la versión 9) mediante [if gte mso 9] para que pueda trabajar con la información incluida como un documento XML que utiliza el espacio de nombre o (de office).

Cualquier otro programa o navegador que abra una página web con este código, ignorará la información XML.

Office 2000 utiliza los CCs en otras ocasiones diferentes a la comentada, siendo corriente encontrar CCs insertados en el código HTML.

Organización de recursos

Cuando se salva un documento HTML es necesario controlar perfectamente los archivos adicionales al documento, como los gráficos, los sonidos, los vídeos, los frames de los diseños con cuadros, etc.

Office 2000 realiza este control automáticamente, de forma similar a como actúa IE5 cuando se da la orden de guardar una página web "completa", o sea, creando una carpeta especial con el mismo nombre del archivo HTML (y el añadido _archivos), donde incluye todos los recursos necesarios para construir adecuadamente la página web correspondiente al archivo HTML.

En dicha carpeta, además de los archivos de los recursos, se encuentra un archivo XML denominado filelist.xml. En dicho archivo se incluye una relación de datos necesarios para gestionar los recursos de la página web.

Un ejemplo del contenido de filelist.xml puede ser:

<xml xmlns:o="urn:schemas-microsoft-com:office:office"> 
<o:MainFile HRef="../prueba.htm" /> 
<o:File HRef="image001.jpg" /> 
<o:File HRef="image002.jpg" /> 
<o:File HRef="image003.gif" /> 
<o:File HRef="image004.wmz" /> 
<o:File HRef="image005.gif" /> 
<o:File HRef="image006.gif" /> 
<o:File HRef="header.htm" /> 
<o:File HRef="filelist.xml" /> 
</xml>

No es complicado entender el contenido del archivo filelist.xml, y si el lector piensa que no parece tener ninguna utilidad, debe entender que soporta información única y adecuada para que Office 2000 pueda reconstruir perfectamente el documento cuando se vuelva a abrir la página web.

Controles ActiveX

En algunas ocasiones, no es suficiente con las restringidas posibilidades del HTML para mantener ciertas características especiales de gestión avanzada de documentos. En estos casos, Office 2000 recurre a la inserción de controles ActiveX, capaces de solucionar cualquier necesidad.

Pongamos el caso de una hoja de cálculo generada con Excel 2000, que se guarda en formato HTML, pero manteniendo la interactividad.

El código que se genera es similar al siguiente:

<div id="Libro1_1423" align=center x:publishsource="Excel"> 
<object id="Libro1_1423_WebCalc" 
codebase="file:F:msowc.cab#version=9,0,0,2710" 
classid="CLSID:0002E510-0000-0000-C000-000000000046"> 
<param name=DisplayTitleBar value=false> 
<param name=DataType value=HTMLData> 
...... 
...... 
</object> 
</div>

Se puede distinguir fácilmente la inclusión del control ActiveX (<object ...>) que controla la hoja de cálculo, pero ¿qué pasa con los navegadores que no soportan la tecnología ActiveX?.

Office 2000 resuelve esta cuestión incluyendo dentro de la etiqueta <object>el código:

<object ...> 
...... 
...... 
<param name=HTMLData 
value="<html xmlns:v="urn:schemas-microsoft-com:vml" 
xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns="http://www.w3.org/TR/REC-html40"> 
...... 
...... 
<p style='margin-top:100;font-family:Arial;font-size:8.0pt'> 
Para usar esta página Web interactivamente, 
debe utilizar Microsoft® Internet Explorer 4.0 o superior 
y Microsoft Office Web Components. Visite el 
<a HRef=
"http://officeupdate.microsoft.com/office/redirect/ 
fromOffice9/MSOWCPub.htm?&HelpLCID=3082">
 sitio Web de Microsoft Office</a> para obtener más información.</p> 
</object>

Otra vez nos encontramos referencias a los espacios de nombres, que si en principio se definieron para complementar el XML, Microsoft los utiliza en muchas y diversas ocasiones.

Diseño VML

Office 2000 puede trabajar con gráficos vectoriales desde cualquiera de sus aplicaciones, por lo que, para mantener en el diseño HTML las mismas posibilidades que en el diseño "normal", se ha visto obligado a incluir un lenguaje de diseño de gráficos para la web con capacidades vectoriales, y por supuesto, se ha basado en XML para ello.

VML (Vector Markup Language) es el desarrollo que permite el tratamiento de los gráficos vectoriales en las páginas web. Es un "lenguaje" de marcas con un funcionamiento similar al HTML, o sea, se soporta en una serie de etiquetas prefijadas de antemano capaces de permitir el dibujado en pantalla (rendering) de objetos gráficos, que al contrario de los gráficos de mapa de puntos, se basan en un soporte matemático controlado por fórmulas y sistema de ecuaciones.

Para hacernos una idea muy sencilla de cómo funciona el VML, es suficiente con observar las siguientes líneas de código:

<v:rect style="width:200px;height:50px" fillcolor="blue" /> 
<v:line from="50px 20px" to="350px 35px" 
        strokecolor="navy" strokeweight="3px"/>

En el código se puede intuir la descripción de dos figuras: un rectángulo de 200 pixels de ancho por 50 pixels de alto relleno de color azul y una línea que comienza en el punto de coordenadas 50,20 y finaliza en el punto definido por las coordenadas 350,35. La línea es de color azul oscuro y tiene un espesor de 3 pixels.

También se puede observar la utilización del espacio de nombre correspondiente al VML, definido por la v, y en el caso del rectángulo, el aprovechamiento del CSS para su descripción.

Los lectores interesados en el VML pueden ver el tutorial existente en RAMON.ORG sobre el tema.

Por supuesto que para ver en la pantalla de nuestro ordenador las figuras definidas en VML, hay que disponer de un visualizador que incluya un intérprete del VML, que además de Office 2000, puede ser el navegador Internet Explorer 5, siempre que se haya instalado la opción VML.

Aunque en principio hubo varias empresas que participaron en el desarrollo del VML, en la actualidad Microsoft se ha quedado casi solo en su aplicación, ya que la mayoría de las casas prefiere esperar a que se termine de desarrollar el SVG (Scalable Vector Graphics), también basado en el estándar XML y muy parecido al VML, pero con la ventaja de que está arropado por un grupo de trabajo del W3C.

Conclusiones

Más que ser una guía de referencia de la utilización del XML en Office 2000, este artículo pretende ser una introducción al sistema de utilización del XML por parte de Office 2000 que Microsoft ha implementado para conseguir que cualquier usuario pueda trabajar en modo Web-HTML desde las aplicaciones que integran Office 2000, sin perder sus principales características, cosa imposible de realizar sin el apoyo del XML.

Office 2000 es sin duda alguna el primer proceso que hace un uso intensivo y completo del XML, y que combinado con IE5, forma un sistema completo y avanzado de diseño web automatizado, haciendo muy fácil la utilización de sus documentos en las intranets.

La mayor pega que se le puede achacar al código HTML generado por Office 2000 es la gran cantidad de información que no pueden entender otras aplicaciones distintas del propio Office 2000 o IE5, por lo que algunas utilidades especializadas en el diseño web están incluyendo opciones de eliminación automática del código específico no estandarizado, pudiendo obtenerse estos filtros incluso de la propia página web de Microsoft.

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.