Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · www.captiva.es XSLT.

Slides:



Advertisements
Presentaciones similares
Juan Carlos Alonso Tecnet Consultores
Advertisements

Diseño de Bases de Datos
Repaso desde HTML a XHTML
Lenguaje PHP Capítulo 4.
CI-2413 Desarrollo de Aplicaciones para Internet
Leer y escribir datos XML
XML XQuery.
DEPARTAMENTO DE EDUCACI Ó N SECRETAR Í A AUXILIAR DE SERVICIOS ACAD É MICOS Y SERVICIOS EDUCATIVOS A LA COMUNIDAD UNIDAD DE TECNOLOGÍA Y CURRÍCULO PROYECTO.
XML y Servicios Web David Salgado MVP C#
Curso: XML, de los datos a la presentación CAPTIVA ·
Aprendizaje de Microsoft® Access® 2010
INTRODUCCION A CSS.
DOM ( Document Object Model) Prof. Franklin Cedeño.
Tema 2: Lenguaje PHP básico
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Álvaro Salido Fernández
Funciones en lenguaje C
Enriquecimiento de ERDs con información lingüística haciendo uso de XSLTs Proyectando Silvia Nieto Directores Germán Bordel Mikel Peñagarikano.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Ingeniero Anyelo Quintero
Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · Modelos de documento (Schema)
1 Las hojas de estilo en cascada Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal utilizado para definir la presentación.
OpenOffice Calc CURSO OpenOffice Calc.
HTML/CSS Marcas básicas.
Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · XPath.
OpenOffice Calc CURSO OpenOffice Calc.
SQL Server 2008 Integration Services
Oscar Bedoya. XSL. Una hoja de estilo es un documento XML que tiene como elemento documento... Todos los elementos xsl pertenecen.
Facultad I · Prof. Dr. Volkert Brosda 1 XQuery una herramienta para trabajar con XML Volkert Brosda.
Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · Modelos de documento (DTD)
XML no predefine la apariencia de los elementos. Se requiere una descripción aparte mediante una hoja de estilo. XSL (eXtensible Stylesheet Language) es.
Título Características y elementos fundamentales J.M. Morales-del-Castillo.
Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · eXtensible Stylesheet Language Formatting Objects.
Características y elementos fundamentales J.M. Morales-del-Castillo
Definition Type Document (DTD)
Lenguaje de Marcado.
Cenidet Mobile Cuernavaca, Morelos, México, marzo de Usando XML Ing. Juan Carlos Olivares Rojas Dr. Víctor Jesús Sosa Sosa.
 El primer navegador Web incluía un lenguaje de estilo interno que utilizaba dicho navegador para mostrar las páginas HTML.  Sin embargo estos primeros.
Laboratorio 1 Paginas Web y HTML Justiniano Junco B Curso: Computación Justiniano Junco Fecha: 23 de Mayo del 2012 Profesor:
ACIDE A C onfigurable I ntegrated D evelopment E nvironment (Un entorno integrado de desarrollo configurable)
Computación Aplicada Facultad de Ingeniería Universidad Autónoma de Querétaro Ma. Teresa García Ramírez 1.
XQuery. 2 Introducción De acuerdo al incremento en la cantidad de información que es almacenada, intercambiada y presentada usando XML, la habilidad para.
Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · Introducción al mundo XML.
EXPRESIONES Y SENTENCIAS
CONVERSIÓN Y ADAPTACIÓN DE DOCUMENTOS XML
Microsoft Office Project 2010 Curso Básico
Programación en C para electrónicos
MICROSOFT EXCEL Excel es una aplicación del tipo hoja de calculo, integrada en el entorno Windows, y desarrollada por Microsoft, en la cual se combinan.
X S L T Julio Pacheco.
Introducción a XML por Joel Candia C Universidad Técnica Federico Santa María Departamento de Electrónica ELO-330 Programación de Sistemas.
XML. La vida antes de XML ► Comunicación ► Persistencia ► Armado de Documentos.
Tel Microsoft Word Duración 25 hrs. XIV. TRABAJAR CON TÍTULOS Agregar títulos a una ilustración Agregar.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Mapeo de Estructuras XML a Bases de Datos Relacionales
HTML.
INSTRUCCIONES. El alumno, seguirá los pasos que se le va indicando a continuación. En el recuadro en blanco, debe ir añadiendo un pantallazo con la.
Se producen cuando una aplicación recibe datos no confiables y estos no han sido validados adecuadamente antes de procesarlos, lo cual puede llevar a que.
Unidad 2: Tareas básicas de InfoPath 2010
HTML HyperText Markup Language
ARREGLOS BIDIMENSIONALES MATRICES Son un espacio de almacenamiento continuo, que contiene una serie de elementos del mismo tipo de datos. Desde el punto.
MS ACCESS 2007 CONSULTAS.
Web y Multimedia II Integrantes: Piero Álvarez Mayra Atience Jhonney Bermeo Johanna Cabrera Gabriela Cango.
GML Geography Markup Language
CURSO DE FORMACIÓN AL PORTAL WEB DE LA UNIVERSIDAD CARLOS III DE MADRID ORACLE PORTAL Manual disponible en:
LENGUAJES DE MARCAS Y SISTEMAS DE GESTIÓN DE INFORMACIÓN Bloque XML: UD4: espacios de nombres.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
Excel 2013 Informática en los negocios lci. Excel 2013  ¿Qué es un RANGO en Excel?  Es un conjunto de celdas contiguas que pueden ser seleccionadas.
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · XSLT

¿Qué es XSLT?  Parte de XSL (eXtensible Stylesheet Language)  XSLT  XSL Transformations (Transformaciones)  XSL-FO  XSL Formatting Objects (Formato)  Aplicación XML  Lenguaje de programación en base a templates para transformar fichero XML en otro fichero XML  Se utiliza XPath para seleccionar partes del fichero de entrada

¿Con qué se procesan?  Procesadores XSLT  Procesador XSLT MSXML (IE6) (.Net)   Xalan del proyecto Apache (basado en LotusXSL de IBM) (Java)  Api y programa línea de comandos   Cocoon del proyecto Apache (Java)  Aplicación web para crear portales web multiformato  Hace uso de Xalan   Saxon (Java)  Versión comercial (soporta schema) y opensource  Versión estable (XSLT 1.0) y Saxon-B (XSLT 2.0 WD )   XT (Java)  Uno de los primeros pero descontinuado (2002)   4Suite (python)  Suite con procesamiento XML de todo tipo (DOM, RDF, XSLT, RELAX NG, …) 

¿Con qué se procesan? (II)  Los navegadores más conocidos tienen soporte XSLT (Explorer, Mozilla/Firefox).  Si creamos plantilla XSL que convierta a XHTML  ¡Podemos ver directamente nuestro XML en un navegador!  La instancia de documento XML debe apuntar a la plantilla necesaria con la PI <?xml-stylesheet type=“text/xml" href=“url-a-plantilla.xsl"?> <?xml-stylesheet type=“text/xsl" href=“url-a-plantilla.xsl"?>

Estructura mínima  Este es un ejemplo de fichero mínimo XSLT válido:  El elemento raíz es xsl:stylesheet o xsl:transform (son sinónimos)  Es obligatorio indicar el namespace y el atributo de versión  Ejemplo  Aplicar basica.xsl a carta.xml (directorio ejemplos)

La pieza clave: Template  Elemento básico de programación  template  Formato  Ejemplo. Consideremos el fichero XML de entrada libro.xml. Aplicamos la siguiente plantilla libro-template.xsd. Ejecutar transformación en JEdit. Sin noticias de Grub Eduardo Mendoza <xsl:stylesheet version="1.0" xmlns:xsl=" Un titulo Un autor

La pieza clave: Template (II)  ¿Cómo funciona procesador XSLT?  Documento coge nodo raíz (/)  Recorre nodo a nodo de arriba abajo pasando por todos hasta el final  Los templates para los padres se evalúan antes que los de sus hijos  Determina si hay reglas que seleccionen dicho nodo (match)  ¿Hay templates aplicables?  Deja en manos del template el procesado del nodo y descendientes  ¿No hay?  Regla por defecto.  Regla por defecto  Convertir a string el nodeset (o sea contenido textual del primer nodo elemento hijo) y seguir procesando la descendencia Un titulo Un autor

Extracción de texto   Convierte a texto una expresión XPath  Sintaxis:  Se evalúa dentro de un template.  Vamos a extraer el contenido de los nodos de libro.xml a través de la siguiente plantilla (libro-valueof.xsl): <xsl:stylesheet version="1.0" xmlns:xsl="

Aplicación de templates  Hemos visto el funcionamiento por defecto  Seleccionar nodo (empezamos por raíz)  ¿Se le aplica alguna regla de template?  Sí lo procesa la regla  No  Procesado por defecto (para nodos elemento mostrar primer nodo hijo textual y procesar nodos elemento hijos)  Los templates pueden alterar cómo se recorre el árbol   Si no se especifica expresión Xpath para el subgrupo se sigue procesando todos los hijos  Ejemplos. Coger fichero ejemplo-apply- templates.xml y aplicar ejemplo-apply- templates.xsd  Descomentar uno a uno y explicar lo ocurrido

Reglas por defecto  Había siete tipos de nodos en XML: nodo raíz, elementos, texto, atributos, namespaces, PI, comentarios  XSLT proporciona templates por defecto para cada tipo  Hemos visto la regla para el raíz y elementos:

Reglas por defecto (II)  Regla por defecto para atributos y texto  Aplicar una plantilla vacía ( basica.xsl ) a ejemplo-apply- templates.xml  ¿Por qué no salen los valores de los atributos?  XSLT considera a los elementos padres de los atributos pero no al revés ¿?  Solución  Seleccionar manualmente atributos   Ejemplo  Plantilla ejemplo-default-templates.xsl  Regla por defecto para PI y comentarios  No hace nada  Regla por defecto para namespaces  No hay  El procesador XSLT los agrega adecuadamente en caso de que sean necesarios.

Modos  Modo  Aplicación de templates diferentes a mismos elementos  diferentes salidas con misma entrada  ¿Cómo se usan? …  Ejemplo  ejemplo-base.xml y ejemplo-modos.xsl

Atributos  Esta forma no funciona  Forma correcta  {}  Alternativa  color:  Ejemplos: ejemplo-atributos.xml ejemplo-atributos.xsl

Prioridad  Es posible que existan diversos templates que sirvan para procesar el mismo nodo  ¿Cómo decide el procesador cuál coger?  El procesador computa un valor de prioridad (entre -0.5 y 0.5)  Las reglas más específicas tienen más prioridad  P.e. match=“AAA” antes que match=“*”  Si dos reglas dan la misma prioridad  puede dar error el procesador  Se puede especificar valor de prioridad (mayor a más grande)   Ejemplo  Aplicar hoja de transformación ejemplo-prioridad.xsd sobre ejemplo-base.xml  Comparar resultado si se eliminan prioridades

Bucles   Aplica patrón nodo a nodo consecutivamente del conjunto especificado con select  Ejemplo: id=  Ejemplo: Aplicamos ejemplo-bucle.xsl a ejemplo- base.xml

Ordenación   Se pueden ordenar los nodos cuando se procesan en y  select determina por el nodo por el se ordena (típicamente “.”)  Ejemplo. Aplicamos ejemplo-orden.xsl a ejemplo-orden.xml  Vemos que los nombres salen ordenados  Podemos abrirlo directamente con navegador

Condiciones   Se utiliza típicamente con  Si se verifica la condición se aplica el patrón contenido dentro  Ejemplo. Separamos una lista de valores con comas y si es el último no ponemos,

Numeración  Dentro de un for-each podemos hacer uso de:  Nos va dando una numeración consecutiva  Podemos numerar de forma múltiple de acuerdo al nivel:  Atributo level=“multiple”  Podemos usar cualquier formato (p.e. letras, números romanos, etc.)  Atributo format=“i.1.A”  Ejemplo ejemplo-numeracion.xml y ejemplo- numeracion.xsl  Probar con level=“multiple”  Probar distintos formatos: P.e.: “1” “a” “1.I-A”

Variables  Declaración de una variable (2 formas)  Ámbito de variable  Global  Si se declara fuera de cualquier template  Local  Si se declara dentro de un template.  Referencia de una variable  Ejemplo.  Ficheros ejemplo-variables.xml y ejemplo- variables.xsl

Variables (II)  Copiado de fragmentos de árbol  Es posible asignar a una variable un fragmento de documento (no una cadena)  Ejemplo. Ficheros ejemplo-copiado.xml y ejemplo-copiado.xsl  Cambiar alguno de los copy-of por value-of

Funciones  Declaración de la función  Esta es una función template de nombre “nombreFunc”  Los parámetros se referencian como si fueran variables  Llamada a la función de la función  Los nombres de los parámetros with-param y param deben coincidir  Ejemplo. Ficheros ejemplo-funcion.xml y ejemplo- funcion.xsl

Para saber más  Todo   Tutoriales  

Ejercicio (1/3)  Crear hoja de estilo XSLT que gane complejidad hasta que a partir de casino.xml obtengamos el XHTML salida-casino.html  Primera parte  Crear template para nodo “/” que sólo procese hijos (apply- templates)  Crear template para nodo “ casino ” que cree esqueleto HTML, imprima bienvenida y procese cada hijo “ mesa ”  Crear template para nodo “ mesa ” que imprima una tabla como la mostrada, con título “Mesa de juego ‘XXXX’” cada fila se procesará en base a un for-each para cada “ jugador ”. En cada jugador se aplicará template por cada “ carta ”  Crear template para “ carta ” se imprimirá sólo su valor entre corchetes  [As].

Ejercicio (2/3)  Segunda parte  Amplicar template “ carta ” con variable interna “ color ” que en base a del palo asigne un color que se usará como parámetro para [As de copas]  Evidentemente “As” y “copas” se extraen del elemento procesado en cuestión.  Añadir en template “ mesa ” la parte que suma todas las apuestas de la mesa, sacando los valores de € y $, tras la tabla. Sumar apuestas en € y $ por separado.

Ejercicio (3/3)  Tercera parte  Extraer del template “ mesa ” la parte que imprime la tabla a un template-funcion “ funcionMesa ” que es llamado desde “ mesa ” dos veces con un parámetro “ orden ” que toma cada vez los valores:  “ascending”  “descending”  El template-funcion en función de su parámetro de entrada “ orden ” imprimirá una tabla con cabecera “Mesa de juego ‘XXXX' en orden ‘Ascendente|Descendente' por Jugador”  Se aconseja crear variable local “ textoOrden ” que asocie un valor “ Ascendente ” ó “ Desdendente ” en función del parámetro de entrada “ orden ”  Comprobar que la hoja XSLT sigue funcionando con casino2.xml  salida-casino2.html