Nota:

la interfaz de usuario se ha simplificado en Dreamweaver CC y versiones posteriores. Como resultado, es posible que no encuentre algunas de las opciones que se describen en este artículo en Dreamweaver CC y versiones posteriores. Para obtener más información, consulte este artículo.

Uso de XML y XSL con páginas web

El lenguaje de formato ampliable (XML) es un lenguaje que permite al usuario estructurar la información. Al igual que ocurre con HTML, XML permite estructurar la información con ayuda de etiquetas; pero las etiquetas XML no están predefinidas como en HTML. XML permite crear las etiquetas que mejor definan la estructura de datos (esquema). Las etiquetas se anidan unas dentro de otras para crear un esquema de etiquetas padre e hijo. Al igual que ocurre con la mayoría de las etiquetas HTML, todas las etiquetas de un esquema XML deben tener una etiqueta de apertura y otra de cierre.

El siguiente ejemplo muestra la estructura básica de un archivo XML:

<?xml version=“1.0”> 
<mybooks> 
    <book bookid=“1”> 
        <pubdate>03/01/2004</pubdate> 
        <title>Displaying XML Data with Adobe Dreamweaver</title> 
        <author>Charles Brown</author> 
    </book> 
    <book bookid=“2”> 
        <pubdate>04/08/2004</pubdate> 
        <title>Understanding XML</title> 
        <author>John Thompson</author> 
    </book> 
</mybooks>

En este ejemplo, cada etiqueta padre <book> contiene tres etiquetas hijo: <pubdate>, <title> y <author>. Pero cada etiqueta <book> también es una etiqueta hijo de la etiqueta <mybooks>, que ocupa un nivel superior en el esquema. No hay restricciones para nombrar y estructurar las etiquetas XML, siempre y cuando se aniden correctamente unas dentro de otras y cada etiqueta de apertura tenga su correspondiente etiqueta de cierre.

Los documentos XML no tienen formato alguno: son simples contenedores de información estructurada. Una vez conseguido el esquema XML, se puede utilizar el lenguaje XSL (Lenguaje de hojas de estilo ampliable) para mostrar la información. Del mismo modo que las hojas de estilos en cascada (CSS) permiten dar formato al HTML, el lenguaje XSL permite dar formato a los datos XML. Puede definir estilos, elementos de página, el diseño, etc., en un archivo XSL y adjuntarlo a un archivo XML de tal modo que, cuando un usuario visualice los datos XML en un navegador, éstos estén formateados según lo que haya definido en el archivo XSL. El contenido (los datos XML) y la presentación (definida por el archivo XSL) son totalmente independientes, y proporcionan un mayor control sobre el modo en que aparece la información en una página Web. Esencialmente, XSL es una tecnología de presentación para XML, en la que el resultado principal es una página HTML.

XSLT (Transformaciones de lenguaje de hojas de estilo ampliable) es un subconjunto del lenguaje XSL que permite mostrar los datos XML en una página web y “transformarlos” (junto con los estilos XSL) en información legible y con estilos en formato HTML. Puede usar Dreamweaver para crear páginas XSLT que permitan realizar transformaciones XSL mediante un servidor de aplicaciones o un navegador. En una transformación XSL en el lado del servidor, éste realiza el trabajo de transformación de XML y XSL y muestra los datos en la página. En una transformación que se produce en el lado del cliente, todo el trabajo corre a cargo del navegador (por ejemplo, Internet Explorer).

El método adoptado en última instancia (transformaciones en el lado del servidor o en el lado del cliente) depende de lo que se intente obtener como resultado final, de la tecnología disponible, del nivel de acceso a los archivos de origen XML y de otros factores. Los dos métodos presentan sus propias ventajas y limitaciones. Por ejemplo, las transformaciones en el lado del servidor funcionan en todos los navegadores, mientras que las transformaciones en el lado del cliente están limitadas solamente a los navegadores más modernos (Internet Explorer 6, Netscape 8, Mozilla 1.8 y Firefox 1.0.2). Las transformaciones en el lado del servidor permiten mostrar los datos XML dinámicamente desde su propio servidor o desde cualquier otra ubicación de la red, mientras que las transformaciones en el lado del cliente deben utilizar datos XML alojados localmente en su propio servidor Web. Por último, las transformaciones en el lado del servidor requieren el desarrollo de las páginas en un servidor de aplicaciones configurado, mientras que las transformaciones en el lado del cliente solo requieren acceso a un servidor Web.

Para ver un tutorial sobre el lenguaje XML, consulte www.adobe.com/go/vid0165_es.

Transformaciones XSL en el lado del servidor

Dreamweaver proporciona métodos para crear páginas XSLT que admitan transformaciones XSL en el lado del servidor. Cuando un servidor de aplicaciones lleva a cabo la transformación XSL, el archivo que contiene los datos XML puede residir en su propio servidor o en cualquier otro lugar de la red. Además, los datos transformados se pueden visualizar en cualquier navegador. Sin embargo, la implementación de las páginas para transformaciones en el lado del servidor es relativamente compleja y requiere el acceso a un servidor de aplicaciones.

Al trabajar con transformaciones XSL en el lado del servidor, se puede usar Dreamweaver para crear páginas XSLT que produzcan documentos HTML completos (páginas XSLT completas) o fragmentos de XSLT que generen porciones de un documento HTML. Una página XSLT completa es parecida a una página HTML normal. Contiene una etiqueta <body> y una etiqueta <head>, y permite visualizar una combinación de datos HTML y XML en la página. Un fragmento de XSLT es una porción de código (utilizada por un documento independiente) que muestra los datos XML formateados. Al contrario de lo que sucede en una página XSLT completa, los fragmentos son archivos independientes que no contienen etiquetas <body> ni <head>. Si quiere mostrar datos XML en una página propia, debe crear una página XSLT completa y vincular los datos XML. Por el contrario, si quiere mostrar datos XML en una sección concreta de una página dinámica existente (por ejemplo, una página de inicio dinámica para una tienda de productos deportivos, con información de la clasificación de resultados desde un agregador RSS que se muestren en un lado de la página) deberá crear un fragmento de XSLT e insertar una referencia a él en la página dinámica. La creación de fragmentos de XSLT y su uso en combinación con otras páginas dinámicas para mostrar datos XML es el caso más habitual.

El primer paso en la creación de estos tipos de páginas es crear el fragmento de XSLT. Se trata de un archivo independiente que contiene el diseño, el formato, etc., de los datos XML que desea mostrar en la página dinámica. Una vez creado el fragmento de XSLT, se inserta una referencia a él en la página dinámica (por ejemplo, una página PHP o de ColdFusion). El comportamiento de la referencia insertada en el fragmento de XSLT es muy similar al de un Server-Side Include (SSI): los datos XML con formato (el fragmento) se ubican en un archivo independiente, mientras que en la vista de Diseño aparece un marcador de posición en la propia página dinámica. Cuando un navegador solicita la página dinámica que contiene la referencia al fragmento, el servidor procesa la instrucción incluida y crea un nuevo documento en el que aparece el contenido del fragmento con formato, no el marcador de posición.

Transformaciones XSL en el lado del servidor
A. El navegador solicita la página dinámica B. El servidor web localiza la página y la envía al servidor de aplicaciones C. El servidor de aplicaciones busca instrucciones en la página y obtiene el fragmento XSLT D. El servidor de aplicaciones realiza la transformación (lee el fragmento XSLT, obtiene los datos xml y les aplica formato) E. El servidor de aplicaciones inserta el fragmento transformado en la página y la devuelve al servidor web F. El servidor web envía la página finalizada al navegador 

El comportamiento de servidor Transformacion XSL se utiliza para insertar la referencia en un fragmento de XSLT en una página dinámica. Al insertar la referencia, Dreamweaver genera una carpeta llamada includes/MM_XSLTransform/ en la carpeta raíz del sitio, que contiene un archivo de biblioteca de tiempo de ejecución. El servidor de aplicaciones utiliza las funciones definidas en el archivo al transformar los datos XML especificados. El archivo es el responsable de tomar los datos XML y los fragmentos de XSLT, realizar la transformación XSL y mostrar los resultados en la página Web.

Tanto el archivo que contiene el fragmento de XSLT como el archivo XML que contiene los datos y el archivo de biblioteca de tiempo de ejecución generado deben estar en el servidor para que la página se muestre correctamente. (Si se selecciona un archivo XML remoto como fuente de datos —por ejemplo, desde un agregador RSS—, evidentemente dicho archivo deberá residir en cualquier ubicación de Internet).

También puede usar Dreamweaver para crear páginas completas XSLT para su uso con transformaciones en el lado del servidor. Una página completa XSLT funciona exactamente del mismo modo que un fragmento de XSLT: solo al insertar la referencia en la página completa XSLT con el comportamiento de servidor Transformación XSL se insertará todo el contenido de una página HTML. De este modo, se debe borrar todo el HTML de la página dinámica (la página .cfm, .php o .asp que funciona como página contenedora) para poder insertar la referencia.

Dreamweaver admite transformaciones XSL para páginas de ColdFusion, ASP y PHP.

Nota:

El servidor debe estar configurado correctamente para realizar transformaciones en el lado del servidor. Para más información, póngase en contacto con el administrador del servidor.

Transformaciones XSL en el lado del cliente

Es posible llevar a cabo transformaciones XSL en el cliente sin necesidad de utilizar un servidor de aplicaciones. Se puede usar Dreamweaver para crear una página XSLT que realice el proceso, pero es necesario manipular el archivo XML que contiene los datos que desea mostrar para las transformaciones en el lado del cliente. Además, las transformaciones en el lado del cliente solo funcionan en navegadores modernos (Internet Explorer 6, Netscape 8, Mozilla 1.8, y Firefox 1.0.2). Para obtener más información sobre los navegadores que no admiten transformaciones XSL, consulte www.w3schools.com/xsl/xsl_intro.asp.

En primer lugar, cree una página completa XSLT y adjunte una fuente de datos XML. (Dreamweaver le pedirá que adjunte la fuente de datos al crear la página nueva). Puede crear una página XSLT desde cero, o bien convertir una página HTML existente en una página XSLT. Al convertir una página HTML existente en una página XSLT, debe adjuntar una fuente de datos XML a través del panel Vinculaciones (Ventana > Vinculaciones).

Una vez creada la página XSLT, debe vincularla al archivo .xml que contiene los datos XML insertando una referencia a la página XSLT en el propio archivo XML (al igual que se inserta una referencia en una hoja de estilos CSS externa en la sección <head> de una página HTML). Los visitantes del sitio deben ver el archivo .xml (y no la página XSLT) en un navegador. Cuando los visitantes del sitio visualizan la página, el navegador lleva a cabo la transformación XSL y muestra los datos XML formateados por la página XSLT vinculada.

Conceptualmente, la relación existente entre las página XSLT vinculada y la página XML es similar, aunque no coincide con el modelo de la página CSS/HTML externa. Si se dispone de una página HTML con contenido (por ejemplo, texto), puede utilizar una hoja de estilos externa para dar formato al contenido. La página HTML determina el contenido y el código CSS externo (invisible para el usuario) determina la presentación. Con XSLT y XML, la situación cambia. El archivo XML (que el usuario nunca ve en un forma original) determina el contenido, mientras que la página XSLT determina la presentación. La página XSLT contiene las tablas, formato, gráficos, etc., que suele contener el HTML estándar. Cuando un usuario visualiza el archivo XML en un navegador, la página XSLT da formato al contenido.

Transformaciones XSL en el lado del cliente
A. El navegador solicita el archivo XML B. El servidor responde con el envío del archivo XML al navegador C. El navegador lee la directiva XML y llama al archivo XSLT D. El servidor envía el archivo XSLT al navegador E. El navegador transforma los datos XML y los muestra en el navegador 

Si usa Dreamweaver para vincular una página XSLT a una página XML, Dreamweaver inserta el código necesario en la parte superior de la página XML. Si dispone de acceso a la página XML a la que se va a vincular (es decir, si el archivo XML reside exclusivamente en su servidor web), lo único que necesita hacer es usar Dreamweaver para insertar el código correspondiete que vincule las dos páginas. Si dispone de acceso al archivo XML, las transformaciones XSL realizadas por el cliente son totalmente dinámicas. Esto quiere decir que, siempre que se actualicen los datos en el archivo XML, cualquier información HTML que utilice la página XSLT vinculada se actualizará automáticamente con la nueva información.

Nota:

Los archivos XML y XSL que se utilizan para las transformaciones en el lado del cliente deben estar en el mismo directorio. De lo contrario, el navegador leerá el archivo XML y buscará la página XSLT para la transformación, pero no podrá encontrar los activos (hojas de estilos, imágenes, etc.) definidos por los vínculos relacionados en la página XSLT.

Si no dispone de acceso a la página XML a la que está vinculando (por ejemplo, si quiere utilizar los datos XML desde un agregador RSS ubicado en algún lugar de la red), el flujo de trabajo se complica un poco más. Para llevar a cabo transformaciones en el lado del cliente con datos XML de una fuente externa, en primer lugar debe descargar el archivo de origen XML en el mismo directorio en el que reside la página XSLT. Cuando la página XML está en el sitio local, puede usar Dreamweaver para añadir el código adecuado que la vincule a la página XSLT y publicar ambas páginas (el archivo XML descargado y la página XSLT vinculada) en el servidor web. Cuando el usuario visualiza la página XML en un navegador, la página XSLT da formato al contenido, exactamente igual que en el ejemplo anterior.

El inconveniente de realizar transformaciones XSL en el lado del cliente con datos XML procedentes de una fuente externa es que los datos XML son parcialmente “dinámicos”. El archivo XML descargado y modificado es únicamente una “instantánea” del archivo que reside en la red. Si el archivo XML original de la red cambia, debe descargarlo de nuevo, vincularlo a la página XSLT y volver a publicar el archivo XML en el servidor Web. El navegador solo mostrará los datos que reciba del archivo XML del servidor Web, no los datos contenidos en el archivo de origen XML.

Datos XML y elementos repetidos

El objeto XSLT Repetir región permite mostrar elementos repetidos de un archivo XML en una página. Cualquier región que contenga un marcador de posición de los datos XML puede convertirse en una región repetida. Sin embargo, las regiones más habituales son una tabla, una fila o una serie de filas de tabla.

El siguiente ejemplo ilustra el modo en que se aplica el objeto XSLT Repetir región a una fila de la tabla que muestra la información del menú de un restaurante. La fila inicial muestra tres elementos distintos del esquema XML: artículo, descripción y precio. Cuando el objeto XSLT Repetir región se aplica a la fila de la tabla (y el servidor de aplicaciones procesa la página), la tabla se repite con datos exclusivos insertados en cada nueva tabla.

Aplicación del objeto XSLT Repetir región

Cuando se aplica un objeto XSLT Repetir región a un elemento en la ventana de documento, aparece un contorno delgado delimitado con tabulaciones de color gris alrededor de la región repetida. Al obtener una vista previa de su trabajo en un navegador (Archivo > Vista previa en el navegador), el contorno gris desaparece y la selección se amplía para mostrar los elementos repetidos especificados del archivo XML, tal como se muestra en la ilustración anterior.

Cuando añada el objeto XSLT Repetir región a la página, se acortará la longitud del marcador de posición de datos XML en la ventana de documento. Esto se debe a que Dreamweaver actualiza la expresión XPath (lenguaje de ruta XML) del marcador de posición de datos XML para que esté relacionado con la ruta de acceso del elemento repetido.

Por ejemplo, el código siguiente está ideado para una tabla que contiene dos marcadores de posición dinámicos, sin un objeto XSLT Repetir región aplicado a la tabla:

<table width="500" border="1"> 
    <tr> 
        <td><xsl:value-of select="rss/channel/item/title"/></td> 
    </tr> 
    <tr> 
        <td><xsl:value-of select="rss/channel/item/description"/></td> 
    </tr> 
</table>

El código siguiente es para la misma tabla con el objeto XSLT Repetir región aplicado:

<xsl:for-each select="rss/channel/item"> 
    <table width="500" border="1"> 
        <tr> 
            <td><xsl:value-of select="title"/></td> 
        </tr> 
        <tr> 
            <td><xsl:value-of select="description"/></td> 
        </tr> 
    </table> 
</xsl:for-each>

En el ejemplo anterior, Dreamweaver ha actualizado la sintaxis XPath de los elementos de la región repetida (title y description) para que estén relacionados con la sintaxis XPath de las etiquetas <xsl:for-each>, en vez de todo el documento.

Dreamweaver también genera expresiones XPath relativas al contexto en otros casos. Por ejemplo, si arrastra un marcador de posición de datos XML a una tabla que ya tenga un objeto XSLT Repetir región aplicado, Dreamweaver muestra automáticamente la sintaxis XPath relativa a la que ya existe en las etiquetas <xsl:for-each>.

Vista previa de datos XML

Al utilizar Vista previa en el navegador (Archivo > Vista previa en el navegador) para obtener la vista previa de los datos XML que ha insertado en un fragmento de XSLT o en una página completa XSLT, el motor que lleva a cabo la transformación XSL cambia según las distintas situaciones. En el caso de páginas dinámicas que contienen fragmentos de XSLT, el servidor de aplicaciones siempre realiza la transformación. En otras ocasiones, es Dreamweaver o el navegador quien puede realizar la transformación.

En la tabla siguiente, se resumen los distintos casos de uso de Vista previa en el navegador, así como los motores que llevan a cabo cada una de las transformaciones:

Tipo de página previsualizada en el navegador Transformación de datos llevada a cabo por
Página dinámica con fragmento de XSLT Servidor de aplicaciones
Fragmento de XSLT o página completa XSLT Dreamweaver
Archivo XML con vínculo a página completa XSLT Navegador

En los temas siguientes se proporcionan pautas para que pueda decidir qué métodos de vista previa son los más adecuados en función de sus necesidades.

Obtención de vista previa de páginas para transformaciones en el lado del servidor

En el caso de las transformaciones en el lado del servidor, el contenido que el visitante ve en última instancia es transformado por el servidor de aplicaciones. Al crear páginas XSLT y páginas dinámicas para su uso con transformaciones en el lado del servidor, siempre es preferible obtener la vista previa de la página dinámica que contiene el fragmento de XSLT en vez de ver el propio fragmento de XSLT. En la situación anterior, se utiliza el servidor de aplicaciones para garantizar que la vista previa es coherente con lo que verán los visitantes que accedan a la página. En este caso, Dreamweaver lleva a cabo la transformación y puede provocar pequeñas incoherencias. Puede usar Dreamweaver para obtener la vista previa del fragmento de XSLT mientras lo crea, pero podrá ver los resultados más precisos de la visualización de datos si usa el servidor de aplicaciones para obtener la vista previa de la página dinámica una vez insertado el fragmento de XSLT.

Obtención de vista previa de páginas para transformaciones en el lado del cliente

En el caso de las transformaciones en el lado del cliente, el contenido que el visitante ve en última instancia es transformado por un navegador. Para realizar esta tarea, se añade un vínculo desde el archivo XML a la página XSLT. Si abre el archivo XML en Dreamweaver y obtiene una vista previa en un navegador, obligará al navegador a cargar el archivo XML y llevar a cabo la transformación. De este modo se consigue el mismo resultado que experimentan los visitantes del sitio.

Sin embargo, este método dificulta la depuración de la página, ya que el navegador transforma los datos XML y genera HTML internamente. Si selecciona la opción del navegador que permite ver el código fuente para depurar el HTML generado, solo verá el XML original recibido por el navegador, no todo el HTML (etiquetas, estilos, etc.) responsable de la visualización de la página. Para ver todo el HTML al ver el código fuente, debe obtener la vista previa de la página XSLT en un navegador.

Obtención de vista previa de páginas XSLT y fragmentos de XSLT

Al crear páginas completas XSLT y fragmentos de XSLT, se obtiene una vista previa del trabajo para verificar que los datos se muestran correctamente. Si usa la opción Vista previa para mostrar una página completa XSLT o un fragmento de XSLT, Dreamweaver lleva a cabo la transformación mediante un motor de transformaciones incorporado. Este método ofrece resultados rápidos y facilita la creación y la depuración de la página. También permite visualizar todo el HTML (etiquetas, estilos, etc.) seleccionado la opción de visualización del código fuente del navegador.

Nota:

Este método de vista previa se utiliza habitualmente al comenzar a crear páginas XSLT, con independencia de si se utiliza el cliente o el servidor para transformar los datos.

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea