Gracias al uso de XSL vamos a transformar un XML para lo que nos convenga.
Lo primero, la utilidad, una aplicación en PHP o Java o cualquier otro lenguaje, como por ejemplo un juego o un TPV, una tienda, un portal…, cualquier tipo de aplicación puede compartir datos como hemos visto en los cursos y talleres de servicios web, pero podemos avanzar un poco más: si comprendemos el uso de una plantilla XSLT que transforme un fichero XML, siendo este la salida de nuestra aplicación, en un fichero XHTML que el navegador interpreta, sea en un móvil, un ordenador de escritorio o cualquier otro formato que necesitemos…entonces, las posibilidades son ilimitadas.
Para nosotros como webmasters, programadores, diseñadores…, un XSLT es un fichero que sirve para dar formato HTML a un fichero XML.
http://es.wikipedia.org/wiki/Extensible_Stylesheet_Language_Transformations
¿Cómo?
En español, si abres un fichero .XML con el navegador, éste lee la cabecera buscando de qué manera interpretarlo, aquí entra en juego el esquema XSLT, donde la T es de template, o sea, plantilla, en nuestro caso, una plantilla XHTML.
Bueno, vamos a los ejemplos, éste en concreto es de la W3C:
http://www.w3schools.com/xml/simplexsl.xml
como ves, es una dirección .XML que interpreta el navegador, incluso el IE6 :-).
Esto lo hace gracias a que en la cabecera aparece:
<?xml-stylesheet type=”text/xsl” href=”simple.xsl” ?>
entonces, usa la hoja de estilos o plantilla para dar formato que está en la misma dirección pero con distinta extensión:
http://www.w3schools.com/xml/simple.xsl
como ves, este fichero se basa en un esquema de TRANSFORMACIÓN
, lo que quiere decir que va a tomar el contenido del fichero inicial .XML y usando las reglas del XSL va a convertir las etiquetas con nombres comunes, en el ejemplo, son elementos del desayuno, ej.) “<breakfast_menu>” , en divisiones del tipo:
——-
<div style=”..”>
<span>
<!–etc.–>
</span>
</div>
——-
En concreto, esta regla es :
________________________________
<xsl:for-each select=”breakfast_menu/food”>
[CODIGO XHTML]
</xsl:for-each>
________________________________
para extraer los valores de un elemento de un nodo xml, se utiliza <xsl:value-of select=”RUTA/NOMBRE_NODO”/>
que es lo que se utiliza en el ejemplo para el precio, nodo <price> (que está dentro de <food>, que está dentro del menú <breakfast_menu>, que es la raíz o root del documento).
Para mostrar el valor de un atributo, por ejemplo,si a cada nodo <price> le añadimos la moneda:
<price currency=”dollar”>8.50</price>
en la plantilla xslt ,el valor se sacaría, así:
<xsl:value-of select=”price/@currency”/>
ya que estamos dentro de un bucle (o loop) que recorre todos los elementos del tipo
breakfast_menu/food
es decir, todos los <food>, dentro tienen un <price> y sacamos el atributo currency con la @.
La lista completa de referencias de XSL con templates está en:
http://www.w3schools.com/XSL/xsl_w3celementref.asp
Este es un ejemplo sencillo porque no incluye ningún DTD o definición de datos (en lenguaje XTiger), este se suele utilizar para hacer las cosas bien como ingenieros, …este DTD es un fichero que está por debajo del XML y es el que determina cómo se debe construir el árbol DOM completo, es decir, si no se siguen las reglas del DTD base, el fichero XML no es válido. Pero esto ya es pa nota jeje…hace unos años escribí un generador de código php+xhtml+jscript+css en php-gtk que creaba el esqueleto de una web en función a un xml ,el vídeo está aquí:
Resumiendo, podemos tener una aplicación que genere el mismo código XML para todas las plataformas pero cambiando sólo el esquema XSLT le diremos a la aplicación final que interpreta dicho XML cómo ha de hacerlo. Para el caso de móviles utilizaremos su lenguaje propio, al igual que si fuera una aplicación externa que necesitamos conectar/adaptar con nuestra aplicación, pudiendo usar servicios web como ya vimos en otros tutoriales si necesitamos algo más avanzado.
Para editar XSLT tienes editores a patadas :] ( Amaya )
Más tutoriales:
y más cosas habrá por ahi…
¿Quién está usando XML y XSLT hoy en día?: Blizzard lo utilizó en su primera versión de su web de Starcraft 2 ( XML , XSL -en este caso usan un script PHP que define el idioma y lo coloca en el atributo lang que se interpreta en la plantilla XSL- ), supongo que mantenía una base de datos interna en la empresa y quería reutilizarla por lo que le dió una salida xml y creó un esquema xslt bastante chulo, no me extrañaría que fuera la misma aplicación que usaran para gestionar el trabajo de los empleados… Otras empresas lo utilizan, Microsoft para su Office, OpenOffice también,…las universidades quieren pasar todo a XML, en Sun, digo, Oracle, todo se quiere hacer en función a XML para poder traspasar todas las fronteras y si no pueden usar un xslt para transformar de un lado a otro con facilidad.
Las ventajas de usar XML como código fuente es que podremos ocultar un poco mejor el XHTML final de posibles plagios e intentos de ataque, la información mostrada es muy fácil de leer, esto es bueno para la web semántica (web 3.0!), bueno para el posicionamiento (SEO),claro, de hecho Google anunció que una página en XML y XSLT iría a la cabeza antes que otra en XHTML, las arañas, webbots ,spiders, como queráis llamarlas, graban mejor información en XML y hacen las transformaciones a XHTML…además es un buen reto construir una web en XML,
¿O no?
Realizo servicios de formateo de código XHTML embebido en PHP arreglando todos los errores que lance el validador de la W3C tanto XHTML como su CSS asociado así como Scripts de JAVASCRIPT y optimizo el SQL para que las consultas sean más rápidas.
Además hago un análisis del rendimiento y posicionamiento general de un sitio, analizando todas las condiciones de carga extrema, compruebo que la información esté bien estructurada y que la jerarquía del árbol DOM sea fácilmente indexable. Compruebo que los apartados clave para posicionamiento (SEO) estén bien colocados.
En este vídeo muestro cómo se van arreglando los errores de un sitio web con OsCommerce, cuya plantilla ha sido construida a base de tablas, para arreglar un error de validación del HTML con el validador de la W3C hace falta modificar tanto el código PHP como el HTML así como la configuración de la tienda y de los módulos instalados, poco a poco se van solucionando errores como la falta de comillas o atributos caducados en etiquetas HTML, para ello hago uso de búsquedas en ficheros con expresiones regulares, las cuales son del tipo
Gracias a estas reglas solucionaremos cientos de errores en más de dos docenas de ficheros PHP.
Ya hemos visto en el Curso de Arquitectura Web cómo las empresas se decantan por Java y los servicios web para sus negocios, es más ,como socio de la Asociación de Técnicos de Informática me ha llegado un correo con la siguiente invitación:
“…te invitamos a la sesión informativa que tendrá lugar en Barcelona el próximo martes 16 de marzo de las 18.30 a las 20.00 horas…”
de un curso online de e-business para empresas, casualmente con los Módulos Propuestos:
Aquí he hablado de e-business, servicios web, privacidad y métodos de pago electrónico, es a lo que me dedico habitualmente, a construir tiendas online con pasarelas de pago, gestores documentales con acceso por grupo de usuario y distintos privilegios asi como a diseñar diversos servicios web que ofertan a los clientes operaciones para que puedan integrarlos en sus aplicaciones ya sean para móbiles, web o de escritorio.
Entre los temas que se ha abordado en este blog aún no aparecen los micropagos por sms de lo que hablaré pronto (uno de cada cuatro internautas usa su móvil para acceder a algún servicio de pago según el AECEM-FECEMD). Pero por ahora vamos a centrarnos en las herramientas para empresas, recursos software de los que se dispone actualmente, quizás, primero debamos echar un vistazo al
Y ahora veamos, todos estamos acostumbrados a usar desde los tiempos de las UseNet, grupos de noticias como el de webmasters de la UGR, y ahora ,más o menos recientemente, blogs como WordPress, redes sociales para relaciones entre empresas como Linked in, pero quizás las compañías estén menos en contacto con herramientas como Skype para comunicarse con los comerciales, en definitiva esta es una lista que nos hace ver Internet como una herramienta empresarial:
En este punto y antes de continuar, el esquema que debemos tener en mente es el siguiente:
Para comprender mejor el esquema necesitamos conocer algunos conceptos, pero ¿para qué necesitamos software avanzado de empresas para hacer e-business?…es decir…
¿Para qué sirven las herramientas de software avanzado de e-business?
- CRM -> mejora la rentabilidad. Es la Combinación de Acciones Estratégicas orientadas a fortalecer las relaciones con los Clientes. Es un proceso integrado de marketing, ventas y servicios dentro de una organización orientado a gestionar el Principal ACTIVO de la Empresa: “La Información de sus Clientes”; con el fin de Retenerlos y Rentabilizarlos; y todo soportado en la Tecnología de la Información. La Tecnología hace posible este Objetivo, colaborando en mejorar los Procesos Comerciales de Ventas y Servicios al Cliente. Ejemplo.
SugarCRM.
Ahora pasaremos a explicar un poco mejor esto de los niveles del punto 5
Resumen de herramientas e-business:
¿Cómo influye la cadena de valor en el e-business?
Porter propuso esta cadena como principal herramienta para identificar fuentes de generación de valor para el cliente, es decir, actividades estratégicas en la empresa ,ya sean:
Por ejemplo, las intranets proporcionan una infraestructura y un significado de las actividades secundarias…
Las empresas pueden crear valor a través de la recogida, organización, selección, resumen y distribución de la información, por lo que pueden aumentar su eficacia si trasladan actividades de la cadena de valor real a la cadena de valor virtual presentada:
Las cuatro fuentes potenciales de creación de valor en el e-business son: la eficacia->aumento de simetrías de información, las sinergías -> verticales(servicios postventa) u horizontales (hardware) conjuntos que proporcionan más valor, la retención -> encontrar motivaciones de compra, innovación -> nuevas formas de estructurar procesos.
Seguramente hay muchas herramientas más disponibles, algún comentario?
Base: OsCommerce con una plantilla comprada en Internet. Se instalaron contribuciones SEO, lightbox y otras.
Se añadieron animaciones en Flash configurables con XML que se generan automáticamente a partir de las imágenes de los productos subidas.
Se creó una serie de módulos para comerciales para que puedan trabajar cómodamente: un generador de PDF’s con el contenido del catálogo, un gestor de pedidos para añadir series con comentarios y diferentes valores de atributos en una sóla línea de pedido, varios formularios con campos requeridos para enviar a la empresa ,un importador de datos por CSV/Excel con fotografías para exportar los datos de cualquier programa e importarlos en la base de datos del catálogo, formularios a medida con validaciones en AJAX que se envían por correo y se almacenan en la parte “VIP” al igual que los pedidos de los comerciales al por mayor, etc.
La web sigue en desarrollo, se añaden nuevos formatos para la realización de pedidos a medida, por correo y en HTML para la administración desde la interfaz de la cuenta de un usuario o de un administrador…
Al darse de alta un usuario, el administrador le asigna un grupo, dependiendo del grupo que sea, aparecerán unas opciones u otras, sobre las imágenes aparece el stock con una alarma, un script realizado en PHP que comprueba el número de elementos disponible y permite configurar los parámetros con los que se genera
Las imágenes de la animación principal se configuran usando un fichero XML, se usa un módulo SEO : URL amigables, títulos, meta-tags, módulo de transporte a medida configurable por medio de una tabla de valores para cada zona, etc. además de scriptacoulous para mostrar imágenes de los productos, se pueden usar más de las que trae por defecto,etc.
Ver vídeo en youtube con explicaciones
El diseño está realizado por Agencia Q4.
Se puede ver que este OsCommerce está implementado con una plantilla a medida usando AJAX (web 2.0) y módulos que se ajustan a las necesidades del cliente: SEO, Cupones de descuento, grupos de clientes, tarjetas de crédito, etc. Lo poco que se ve de la administración muestra un editor wysiwyg (editor online html con estilos) para los productos asi como la selección de precios por grupos de clientes, información SEO y un largo etc.
Ver vídeo en youtube con explicaciones
El diseño corre a cargo de la empresa Agencia Q4.