Transformación de XML a HTML usando XSLT

Temas relacionados con el examen del caso práctico
Cerrado
Avatar de Usuario
gabiotillo
Usuario registrado
Mensajes: 387
Registrado: 18 Mar 2006, 19:52
Agradecido: 0
Agradecimiento recibido: 0

Transformación de XML a HTML usando XSLT

Mensaje por gabiotillo »

He visto que una manera de independizar contenido de dispositivo que se usa en todos los plantillazos es generar el HTML a partir de XML usando plantillas XSLT. Hasta aquí lo entiendo, pero mi pregunta es si la transformación se la curra el contenedor de servlets/JSP directamente o si hay que incluir algún producto específico (en el segundo caso, si ese producto específico es parte del contenedor de servlets/JSP o del gestor de contenidos)

Avatar de Usuario
AXiS
PreparaTIC XVIII
Mensajes: 327
Registrado: 08 Feb 2007, 00:45
Agradecido: 0
Agradecimiento recibido: 0

RE: Transformación de XML a HTML usando XSLT

Mensaje por AXiS »

Hasta donde yo sé, la transformación la puede hacer perfectamente el propio navegador (al menos el Internet Explorer y el Firefox la hacen).

Al XML se le pone una línea como esta:

<?xml-stylesheet type='text/xsl' href='plantilla.xsl'?>

y junto a ese fichero se adjunta el susodicho "plantilla.xsl".

El navegador, al intentar abrir el XML, se da cuenta de que tiene esa plantilla asociada, así que transforma el fichero en ese momento y muestra la versión final.

Sería equivalente a una hoja de estilos CSS asociada a un HTML. Es el navegador el que, al encontrarse con ambos ficheros, "los combina" y muestra la versión final.

Un buen ejemplo de esto, fácil de ver para todos los que usen Windows, es el historial de conversaciones del MSN Messenger (llamado ahora Windows Live Messenger). Dentro de la carpeta "Mis archivos recibidos" se tiene otra carpeta con el Historial de conversaciones. Esas conversaciones son todas archivos XML, y en la misma carpeta hay una plantilla XSLT: "MessageLog.xsl". Pues bien, si se intenta abrir un XML con el navegador, no se muestra dicho XML, sino la conversión que se hace usando la plantilla...

Si queréis jugar un poco, moved la plantilla temporalmente a otra carpeta, ya veréis como al intentar abrir otro XML el navegador protesta y dice que no lo puede mostrar porque no encuentra la plantilla. :wink:

En cualquier caso, seguro que hay simples "transformadores" que hacen innecesario el envío de la plantilla XSLT al navegador, generando simplemente el HTML correspondiente (por ejemplo, creo que esto lo hace el programa XMLSpy).

Bueno, pues nada, perdón por el rollo, espero que se me haya entendido...

Saludos!

Avatar de Usuario
Lord Wilmore
Usuario registrado
Mensajes: 172
Registrado: 22 Abr 2007, 22:47
Agradecido: 0
Agradecimiento recibido: 0

RE: Transformación de XML a HTML usando XSLT

Mensaje por Lord Wilmore »

Yo la idea que tenía era más próxima a la de Gabiotillo, y se basaba en este papel. Lo que me pareció entender, es que si hacías uso del framework Cocoon con Apache el tema era automático, y el navegador no tenía nada que hacer

http://www.csi.map.es/csi/tecnimap/tecn ... enidos.pdf

apachito
PreparaTIC 24
Mensajes: 297
Registrado: 23 Jul 2004, 07:57
Agradecido: 0
Agradecimiento recibido: 0

RE: Transformación de XML a HTML usando XSLT

Mensaje por apachito »

Yo creo que hay varias posibilidades dependiendo de lo que se necesite exactamente.
Si quieres tener cosas complejas (como ademas de transformaciones de xml, autentificación, data warehouse y un montón de cosas puedes usar frameworks como Cocoon, con un montón de opciones, incluida la transformación de xml a varios formatos de salida (ver este ejemplo).

Si quieres algo más sencillo puedes utilizar APIS de java como JAXP:
Fíjate en este otro ejemplo donde en función de como se accede a la página (un navegador web o un navegador WAP, por ejemplo) se devuelve html o wml.

Avatar de Usuario
AXiS
PreparaTIC XVIII
Mensajes: 327
Registrado: 08 Feb 2007, 00:45
Agradecido: 0
Agradecimiento recibido: 0

Re: RE: Transformación de XML a HTML usando XSLT

Mensaje por AXiS »

Lord Wilmore escribió:Yo la idea que tenía era más próxima a la de Gabiotillo, y se basaba en este papel. Lo que me pareció entender, es que si hacías uso del framework Cocoon con Apache el tema era automático, y el navegador no tenía nada que hacer

http://www.csi.map.es/csi/tecnimap/tecn ... enidos.pdf
Sí, casi seguro que es así, lo normal sería enviar al cliente sólo el HTML final.

El messenger lo hará de la otra forma porque "ya es el cliente", no hay nada que enviar, y además esos XML se modifican continuamente. A la hora de mostrar la conversación delegan en el Internet Explorer que, dicho sea de paso, no deja de ser otro producto de Microsoft...

Saludos.

apachito
PreparaTIC 24
Mensajes: 297
Registrado: 23 Jul 2004, 07:57
Agradecido: 0
Agradecimiento recibido: 0

RE: Transformación de XML a HTML usando XSLT

Mensaje por apachito »

En mi opinión tal y como lo comenta AXIS, el navegador recibe el XML y lo procesa basándose en una plantilla XSLT, eso está muy bien, pero que pasa si mañana alguien intenta acceder a esa información desde un navegador que no procese XML (no tienen porque hacerlo), por ejemplo el navegador del ipod, pues que recibiría el XML y no sabría como tratarlo.

En cambio teniendo la lógica del procesado en el lado del servidor, este sabría que ha de mandar la información en el formato adecuado (sea html, pdf, wml, rtf o cualquier otro)

Avatar de Usuario
AXiS
PreparaTIC XVIII
Mensajes: 327
Registrado: 08 Feb 2007, 00:45
Agradecido: 0
Agradecimiento recibido: 0

Re: RE: Transformación de XML a HTML usando XSLT

Mensaje por AXiS »

apachito escribió:En cambio teniendo la lógica del procesado en el lado del servidor, este sabría que ha de mandar la información en el formato adecuado (sea html, pdf, wml, rtf o cualquier otro)
Sí apachito, completamente de acuerdo, esa sería la forma lógica de hacerlo... Nada que objetar.

Comenté lo del navegador y el ejemplo del messenger porque era algo que conocía perfectamente y era un ejemplo fácil incluso de probar en 2 minutos por cualquiera, pero habiendo un servidor por medio lo lógico es que sea éste el que transforme el XML al formato que espera el cliente (el problema es que yo desconozcía un producto/API concreto que hiciera esto, pero ahora ya sé que con JAXP se podría hacer...).

Saludos.

Avatar de Usuario
gabiotillo
Usuario registrado
Mensajes: 387
Registrado: 18 Mar 2006, 19:52
Agradecido: 0
Agradecimiento recibido: 0

RE: Transformación de XML a HTML usando XSLT

Mensaje por gabiotillo »

Muchas gracias a todos. La verdad es que lo que más me ha sorprendido es la ocurrencia de JAXP, lo tenía "emplantillado" para WebServices y no se me había ocurrido la aplicación.

Cerrado

Volver a “CUARTO EXAMEN 2007”