Daniel Prado Rodríguez - Página Personal - Presentación
Daniel Prado Rodríguez Visita: Sacarse el carnet de conducir por libre DGT
  Viernes, 13 de Diciembre de 2024 Inicio | Contactar
Añadir a favoritos | Imprimir 
 
» Bienvenidos a mi página web

Daniel Prado Rodríguez En primer lugar quisiera presentarme, mi nombre es Daniel Prado Rodríguez y vivo en Lugo de Llanera (Asturias - España).

Actualmente trabajo en Sermicro, como progamador Senior para el proyecto del portal del principado de Asturias. Los motivos que me han llevado a realizar está página son en primer lugar la de ofrecer mi Curriculum Vitae siempre actualizado y un medio para contactar conmigo. No obstante también tendrán cabida otros contenidos como recursos paraa programadores o información sobre mi tierra natal.

No obstante no deja de asombrarme este medio, que permite que tú, que has llegado aquí posiblemente por azar, quizá solo con la intención de curiosear, me conozcas un poco mejor. Así que, si algo te interesa, si quieres preguntar o comentar algo, no dudes en contactar conmigo. Mi dirección de correo y el libro de visitas de esta web están a tu entera disposición.


» Viajes Destacados

Viaje a Roma

Visitar Londres

Guía de Nueva York

Visitar la Riviera Maya

Visitar Túnez

Viaje a Tenerife

Viaje a Benidorm

Visitar Florencia

Guía de Milán

Guía de Boston

Visitar Washington DC

Viajar a Philadelphia


» Programacion » XSL-XSLT » Introducción a XSL - XSLT Ver
26 de Diciembre de 2005 (Daniel P.)

XSLT Características:

  • XSL: eXtensible Style Language
  • XSL es la especificación que desarrolla el lenguaje de formateo.
  • XSL consiste en tres partes:
    • XSLT – lenguaje para la transformación de documentos XML.
    • XPath – lenguaje para la navegación en documentos XML.
    • XSL-FO – lenguaje para el formateo de documentos XML.
  • XSLT es la especificación que desarrolla el lenguaje de transformación. Hace uso de la especificación XPath. Ha sido diseñada para ser utilizada de forma independiente aunque es utilizada desde la especificación XSL.
  • XSLT es un lenguaje de programación de hoja de estilos para la transformación de documentos XML en otros documentos XML, HTML, XHTML, WML o incluso PDF.

  • XPath es la especificación que desarrolla el lenguaje para acceder a los elementos de un documento XML. Ha sido desarrollada para ser utilizada desde la especificación XSLT y XPointer.

  • XSLT, XSL, XSL-FO y XPath están definidos en XML
  • XSLT, XSL, XPath y XSL-FO son recomendaciones del W3C.

XSLT permite:

  • Formatear los elementos fuente basados en relaciones de ancestro/descendiente, posición y unicidad.
  • La creación de construcciones de formato sofisticadas incluyendo texto generado e imágenes
  • La definición de macros de formateo reutilizables
  • Estilos independices de la dirección en que se escriba el lenguaje
  • Conjunto de objetos de formato extensible
  • Una manera de describir el proceso de transformación es decir que las XSLT  transforma un árbol XML de entrada e otro árbol XML de salida.

Árboles

  • El documento original se traduce a un árbol que representa el documento original:
    • raíz del árbol -> elemento raíz
    • hijos de un nodo -> elementos contenidos en él
  • El estilo convierte este árbol en un árbol de objetos de flujo.
  • La conversión se hace a través de reglas de construcción
  • Una regla de construcción de se compone de:
    • patrón, que especifica a que elementos de árbol fuente se aplica
    • acción, que indica como se traduce un subárbol a otro
    • el estilo se procesa recursivamente

Ejemplo

Para empezar, vamos a tratar de presentar una hoja XML lo más simple posible (ejemplo0.xml):

 

<?xml version="1.0" encoding='ISO-8859-1'?>

<?xml-stylesheet href="pagina0.xsl" type="text/xsl"?>

<pagina_web>

   <nombre>CocinaTusRecetas</nombre>

   <url>http://www.cocinatusrecetas.com</url>

</pagina_web>

 

Para convertirlo en HTML, usaremos la siguiente hoja de estilo (pagina0.xsl):

1 <?xml version="1.0" encoding="UTF-8"?>

2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

3 <xsl:template match='/'>

4 <html>

5 <head><title>Ejemplo</title></head>

6 <body>

7 <h1> <xsl:apply-templates /> </h1>

8 </body>

9 </html>

10 </xsl:template>

11 </xsl:stylesheet>

 

El resultado sería el siguiente documento HTML:

<html>

<head><title>Ejemplo</title></head>

<body>

<h1> CocinaTusRecetas http://www.cocinatusrecetas.com </h1>

</body>

</html>

 

Explicación del código

Para empezar, el código del documento XML contiene una etiqueta pagina_web, que incluye otras dos etiquetas nombre y url, que contienen el texto que queremos que aparezca en la página web. En el resto, la primera línea simplemente describe que el resto del documento es XML y asocia la hoja de estilo XSLT (pagina0.xsl) al documento.

Esta segunda línea se usa en entornos de publicación tales como el Cocoon; algunos procesadores de XSLT la usan para tomar el nombre de la hoja de estilo que se va a usar; también lo suelen usar navegadores como el Mozilla/Netscape/Firefox o el Internet Explorer. Cada una de estas etiquetas se denominan elementos; y en principio, un documento puede tener tantas etiquetas como queramos.

El XML original, como se ve, es simplemente XML bien formado no usa un DTD ni lo necesita. Basta con que haya una etiqueta raíz (pagina_web, en nuestro caso), las etiquetas estén emparejadas correctamente y los atributos entre comillas. Diferentes documentos XML podrían ser procesados con la misma hoja de estilo, y darían diferente resultado salvo por el hecho de que es una forma de mantener una apariencia común.

La primera hoja de estilo con la que nos enfrentamos es relativamente simple. El "esqueleto" es un documento HTML normal, al cual tenemos que añadir "contenido dinámico", es decir, contenido generado a partir del XML original.

Para empezar, se incluyen una serie de instrucciones, de la línea 1 a la 3: no son instrucciones en sí, sino que modifican el aspecto de la salida. La primera declara el documento XML y el tipo de codificación (que podría ser ISO-8859-1 en vez de UTF-8 si quisiéramos incluir acentos y demás caracteres idiosincrásicos) y la segunda es la etiqueta raíz de la hoja de estilo (cerrada en la última línea; recordemos que una hoja de estilo XSL es también un documento XML y por tanto tiene que seguir todas sus convenciones), que declara la versión de XSLT que se está usando y el espacio de nombres (namespace) que vamos a usar, es decir, el prefijo que usarán todas las instrucciones propias de XSLT; en este caso, usamos xsl, pero cambiando esta instrucción podríamos usar otro cualquiera.

Ese esqueleto está organizado en "templates", que son partes de la hoja que se "disparan" cuando encuentran una etiqueta que corresponda a lo que hay en su atributo match. El primer y único template comienza en la línea 3, y, en este caso, el template que corresponde a la etiqueta raíz genera un esqueleto de página HTML. La "orden" en la línea 7 cede el control a los otros templates, es decir, trata de aplicar todos los demás templates que haya en el documento, incluyendo el resultado de aplicarlos precisamente en ese punto (es decir, entre las etiquetas h1. En este caso no hay más templates, salvo los llamados los templates por defecto, que lo único que hacen es incluir el contenido de las etiquetas en el documento de salida. Es decir, en la práctica lo que hemos hecho es decirle dónde tiene que incluir en el esqueleto los valores del documento original, sin procesarlos más.

La orden <xsl:apply-templates /> podría haberse sustituido, en este caso, por <xsl:value-of select='pagina_web' /> y habría tenido exactamente el mismo efecto, es decir, incluir el contenido de la etiqueta pagina_web (y todas las que descienden de ella). 

 


» Publicidad

  
» Programacion Ver
Lunes, 26 de Diciembre de 2005

XSL-XSLT

Introducción a XSL - XSLT


» Programacion Ver
Lunes, 26 de Diciembre de 2005

XSL-XSLT

Introducción a XSL - XSLT

En este artículo se introduce al lector a la tecnología XSL – XSLT y nos proporciona las nociones básicas para la realización de transformaciones de documentos XML a otro tipo de documentos: XML, HTML, XHTML, WML, PDF, etc.
 
Mapa web |  Página principal  | Blog de Recetas | Recetas de Pescado | | Política de privacidad | Política de cookies
www.daniel.prado.name - Página Personal - © Copyright