Pedro Pastor (Universitat d'Alacant)Curso XSL1 Curso de XSL Sistema para la visualización de documentos XML.

Slides:



Advertisements
Presentaciones similares
Herramientas informáticas
Advertisements

Internet y tecnologías web
Diseño de Bases de Datos
Rocío Contreras Águila Primer Semestre 2010
BASE DE DATOS OBJETO RELACIONAL
CI-2413 Desarrollo de Aplicaciones para Internet
XPath Versión: 1.0 Introducción:
Leer y escribir datos XML
MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz.
Pilas y Colas Fundamentos Estructuras de Datos (Programación 2)
XML XQuery.
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Lenguaje de definición
Curso: XML, de los datos a la presentación CAPTIVA ·
DOM ( Document Object Model) Prof. Franklin Cedeño.
Tema: Técnicas Básicas Excel (III) Trucos, opciones y personalización de Excel Índice: 1 Vínculos absolutos y relativos, conectando datos de Excel con.
XML Schema Curso de introducción Pedro Pastor (Universitat d'Alacant)
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
Introducción XML y WebServices.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Traducción dirigida por la Sintaxis
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Teoría de lenguajes y compiladores
Oracle, orientado a objetos
Analysis Service Expresiones
DOM. DOM = Document Object Model Permite acceder y manipular las páginas XHTML DOM transforma los documentos XHTML en un conjunto de elementos llamados.
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.
Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · XSLT.
Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · XPath.
Oscar Bedoya. XSL. Una hoja de estilo es un documento XML que tiene como elemento documento... Todos los elementos xsl pertenecen.
Java Server Faces.
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.
HTML HyperText Markup Language (Lenguaje de Marcas de Hipertexto)
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)
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
BASE DE DATOS BY: Julián Villar Vázquez.
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.
Unidad didáctica 6 Diseño de páginas Web.
Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · Introducción al mundo XML.
CONVERSIÓN Y ADAPTACIÓN DE DOCUMENTOS XML
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
DOM Document Object Model Fernando Rodrìguez. Que es DOM Dom es una plataforma o interfaz neutral que permite a los programas y scripts accesar o modificar.
X S L T Julio Pacheco.
Herramientas informáticas
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.
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
MIME EXTENSIONES DE CORREO INTERNET MULTIPROPÓSITO. SERIE DE ESPECIFICACIONES DIRIGIDAS AL INTERCAMBIO TRANSPARENTE DE TODO TIPO DE ARCHIVOS A TRAVÉS DE.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Términos algoritmo diseñar algoritmo implementar algoritmo
Profesora: Laura Patricia Pinto Prieto Ingeniera de sistemas Introducción a Programación 3.
Mapeo de Estructuras XML a Bases de Datos Relacionales
Ingeniería de Requisitos
Teoría de lenguajes y compiladores
ARBOLES GENERALIZADOS
SHUTTENBORG ACCESS CONOCE LOS PROGRAMAS. Cortés Gamboa Lizzeth
Unidad 1:introducción a las tecnología web.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
INTEGRANTE: FLORES GODOY JUAN E. Grupo:308. Una tabla es una colección de datos sobre un tema específico, como productos o proveedores. Al usar una tabla.
GML Geography Markup Language
ACCESO A DATOS EN ASP.NET Controles de origen de datos Controles enlazados a datos.
LENGUAJES DE MARCAS Y SISTEMAS DE GESTIÓN DE INFORMACIÓN Bloque XML: UD4: espacios de nombres.
Transcripción de la presentación:

Pedro Pastor (Universitat d'Alacant)Curso XSL1 Curso de XSL Sistema para la visualización de documentos XML

Pedro Pastor (Universitat d'Alacant)Curso XSL2 Arquitectura XSL XSLT: lenguaje para la transformación de documentos XML. XPath: lenguage de consulta en estructuras XML. XSLFO: lenguaje de definición de objetos de formato de presentación.

Pedro Pastor (Universitat d'Alacant)Curso XSL3 XSLT: definición eXtensible Stylesheet Language Tranformations. Diseñado para la transformación de documentos XML en otras estructuras XML y no-XML.

Pedro Pastor (Universitat d'Alacant)Curso XSL4 ¿ Por que transformar XML ? Conversión entre modelos de datos Aunque legible, XML está pensado para el intercambio de información entre aplicaciones. Es necesaria una capa de presentación para hacer amigable el acceso de los humanos a la información XML. XML produce separación entre el modelo de datos y presentación visual.

Pedro Pastor (Universitat d'Alacant)Curso XSL5 Cómo se construye una presentación 1. Una transformación estructural desde el documento con la estructura de datos original hacia una estructura que refleje la presentación gráfica deseada. 2. Formateo de la salida, utilizando los elementos de representación visual adecuados.

Pedro Pastor (Universitat d'Alacant)Curso XSL6 Proceso de publicación XML- XSL. Doc. XML original HTML, PDF,... Procesador de XSLT XSLT Nueva Estructura XML + FO Nueva Estructura XML + FO Nueva Estructura XML + FO Procesador De XSLFO

Pedro Pastor (Universitat d'Alacant)Curso XSL7 Cómo se realiza la transformación (1)

Pedro Pastor (Universitat d'Alacant)Curso XSL8 Cómo se realiza la transformación(2)

Pedro Pastor (Universitat d'Alacant)Curso XSL9 Cómo se realiza la transformación(3)

Pedro Pastor (Universitat d'Alacant)Curso XSL10 Lo que ve el procesador La raiz del documento. Elementos. Texto. Atributos. Espacios de nombres (Namespaces). Instrucciones de procesamiento (PI). Comentarios.

Pedro Pastor (Universitat d'Alacant)Curso XSL11 Como se implementa la transformación 1. Desarrollo de una aplicación a medida a partir de los parsers XML existentes (SAX, DOM). 2. Programación XSLT: lenguaje declarativo para definir reglas de transformación genéricas (dependientes de un contexto).

Pedro Pastor (Universitat d'Alacant)Curso XSL12 Procesamiento XSLT-Servidor XML Procesador XSLT XML XSL_FO HTML Navegador Web Visor de FO Fuente de contenidos

Pedro Pastor (Universitat d'Alacant)Curso XSL13 Procesamiento XSLT-Cliente XML Procesador XSLT IMAGEN HTML Navegador Web Visor de FO Fuente de contenidos

Pedro Pastor (Universitat d'Alacant)Curso XSL14 Dónde tiene lugar la transformación 1. En el cliente: Tanto el documento XML como el XSL son servidos al cliente y este los procesa. 2. En el servidor: Éste aplica la XSL al XML y genera un documento publicable que envía al cliente (servlet, ASP, CGI,...). 3. Un tercer programa hace la transformación.

Pedro Pastor (Universitat d'Alacant)Curso XSL15 Comparación XSLT - SQL XML: modelo de datos jerárquico (más rico que el relacional). Lenguaje de acceso a los datos: XSLT. Selección declarativa de los datos: XPath. XSLT manipula el resultado de la selección Modelo relacional: modelo de datos tabular. Lenguaje de query: SQL. Selección declarativa de los datos: SELECT.

Pedro Pastor (Universitat d'Alacant)Curso XSL16 Comparación XSLT - SQL Ambos aportan funciones adicionales para las queries: aritméticas, manejo de cadenas, operadores de comparación, etc. Ambos complementan la sintaxis declarativa con construcciones procedimentales que ayudan a la descripción de secuencias. Ambos son cerrados respecto del modelo de datos.

Pedro Pastor (Universitat d'Alacant)Curso XSL17 ¿ Por que XSL ? Está diseñado para integrarse en la arquitectura XML. Es mucho más potente que CSS. Aunque un poco menos potente que DSSSL es mucho más sencillo de usar. Cada vez hay más herramientas para XSL.

Pedro Pastor (Universitat d'Alacant)Curso XSL18 Composición de los documentos XSL. XSLT usa XML para describir las reglas: patrones y plantillas. Un documento XSL se construye a partir de una raiz:... Todos los elementos de XSL que son instrucciones pertenecen al espacio de nombres: xmlns:xsl=

Pedro Pastor (Universitat d'Alacant)Curso XSL19 Declaración de Hoja de Estilo El elemento raiz de la Hoja de Estilo debe tener al menos el atributo version=x.y *

Pedro Pastor (Universitat d'Alacant)Curso XSL20 Asociar una XSL a un XML Insertar una instrucción de procesamiento: El atributo type debe contener el valor fijo text/xsl. href debe contener la URL que localiza la hoja de estilo.

Pedro Pastor (Universitat d'Alacant)Curso XSL21 XSLT: Elementos Top-level. xsl:import xsl:include xsl:strip-space xsl:preserve-space xsl:output xsl:key xsl:decimal-format xsl:namespace-alias xsl:attribute-set xsl:variable xsl:param xsl:template El elemento puede contener como hijos cualquiera de los siguientes elementos (top-level):

Pedro Pastor (Universitat d'Alacant)Curso XSL22 Definición de <xsl:output method="xml" | "html" | "text" | qname-but-not-ncname version = nmtoken encoding = string omit-xml-declaration = "yes" | "no" standalone = "yes" | "no" doctype-public = string doctype-system = string cdata-section-elements = qnames indent = "yes" | "no" media-type = string />

Pedro Pastor (Universitat d'Alacant)Curso XSL23 Templates (Plantillas) Es el elemento más importante de la especificación XSL. Especifica la transformación que se aplicará a una parte concreta del documento origen. Cada hoja de estilo debe tener al menos un template. Un template seleccionado asocia una salida concreta con una entrada concreta.

Pedro Pastor (Universitat d'Alacant)Curso XSL24 Plantillas XSL Plantilla a aplicar (acción). Dispara una acción ante el patrón de búsqueda xpath. Una expresión XPath: lenguaje de query para localizar elementos en una estructura XML (~lenguaje regular de árboles).

Pedro Pastor (Universitat d'Alacant)Curso XSL25 apply-templates Para ir más allá de la raiz hay que dirigir al procesador en la búsqueda de elementos hijos del documento origen. El uso de indica dónde continuar recursivamente el proceso. En dicho punto se aplicarán los templates apropiados según los hijos del elemento activo

Pedro Pastor (Universitat d'Alacant)Curso XSL26 xsl:apply-templates En general, este elemento es vacío e indica el punto de inserción de contenidos. Cada nodo que cumple el patrón (match) es tratado como un árbol.

Pedro Pastor (Universitat d'Alacant)Curso XSL27 Cómo funcionan los templates......

Pedro Pastor (Universitat d'Alacant)Curso XSL28 Cómo funcionan los templates

Pedro Pastor (Universitat d'Alacant)Curso XSL29 Cómo funcionan los templates Esto es la salida Elemento = HijoA_1.1

Pedro Pastor (Universitat d'Alacant)Curso XSL30 Cómo funcionan los templates 1. La raiz del documento XML se compara con todos los patrones y casa con /. 2. Se imprime la marca:. 3. La instrucción induce el procesamiento de los hijos de la raiz. El primer hijo es una PI: : no casa con nada => no es procesado.

Pedro Pastor (Universitat d'Alacant)Curso XSL31 Cómo funcionan los templates El segundo hijo casa con la segunda regla: se imprime la marca. Se siguen aplicando reglas recursivamente gracias a que esta regla contiene la instrucción: El hilo de ejecución sigue con los hijos del elemento actual (nodo_contexto):

Pedro Pastor (Universitat d'Alacant)Curso XSL32 Cómo funcionan los templates Resultado: Esto es la salida Elemento=HijoA_1.1

Pedro Pastor (Universitat d'Alacant)Curso XSL33 El atributo select Restringe a un tipo de hijos (subárboles) la aplicación de la regla.

Pedro Pastor (Universitat d'Alacant)Curso XSL34 xsl:value-of Copia el contenido del nodo seleccionado en la salida. El valor de id_hijo es relativo al nodo fuente seleccionado en el template.

Pedro Pastor (Universitat d'Alacant)Curso XSL35 Regla por defecto para texto Concuerda con todos los nodos-texto y copia sus contenidos a la salida. Asegura que como mímimo se imprime el texto de todos los elementos seleccionados. Se puede sobrecargar esta regla para modificar el comportamiento por defecto.

Pedro Pastor (Universitat d'Alacant)Curso XSL36 Regla por defecto para elementos Situación: no queremos procesar un elemento pero si algunos de sus hijos. Asegura que todos los elementos serán procesados (visitados) recursivamente.

Pedro Pastor (Universitat d'Alacant)Curso XSL37 Regla por defecto para elementos (ejemplo-1) Esto es un párrafo Otro párrafo

Pedro Pastor (Universitat d'Alacant)Curso XSL38 Regla por defecto para elementos (ejemplo-2)

Pedro Pastor (Universitat d'Alacant)Curso XSL39 Modificar la regla por defecto Ejemplo: Evitar que se procese ningún hijo de un elemento que no tenga definido un template.

Pedro Pastor (Universitat d'Alacant)Curso XSL40 Ocultar contenidos Como consecuencia: es necesaria una regla vacía para que no se procese un subárbol que depende de un elemento concreto.

Pedro Pastor (Universitat d'Alacant)Curso XSL41 xsl:for-each otras reglas XSL Se aplica a colecciones de nodos. Si no hay select, se aplica a todos los hijos del nodo actual.

Pedro Pastor (Universitat d'Alacant)Curso XSL42 Manejo de tipos de nodos Text() Comment() Pi() Node()

Pedro Pastor (Universitat d'Alacant)Curso XSL43 Manipulación de espacios en blanco Indica el subárbol origen al cual hay que preservarle los espacios en blanco. Indica el subárbol origen al cual hay que preservarle los espacios en blanco.

Pedro Pastor (Universitat d'Alacant)Curso XSL44 Xsl:choose – xsl:when Primer capítulo: Capítulo siguiente:

Pedro Pastor (Universitat d'Alacant)Curso XSL45 xsl: element- attribute - text Insertan: un elemento, un atributo y un nodo hijo de tipo texto, respectivamente, en el árbol de salida. El Quijote Este libro es famoso. Este libro es famoso.

Pedro Pastor (Universitat d'Alacant)Curso XSL46 Templates con nombre Se parece a la definición y llamada a subrutina:

Pedro Pastor (Universitat d'Alacant)Curso XSL47 Variables y función document() Muy Importante: Una vez instanciadas NUNCA pueden cambiar de valor !!! <xsl:variable name=ficheroExt select=document(url)/XPath/>...

Pedro Pastor (Universitat d'Alacant)Curso XSL48 XPath Lenguaje de expresiones de localización

Pedro Pastor (Universitat d'Alacant)Curso XSL49 Expresiones XPath Parten una gramática formal especificación). Generan un lenguaje formal no-ambiguo. Expresiones de localización con doble funcionalidad en las operaciones: pattern matching -> devuelven un booleano. Evaluación de expresiones -> devuelven un conjunto de nodos.

Pedro Pastor (Universitat d'Alacant)Curso XSL50 Expresiones de localización(1) Seleccionan un conjunto de nodos del documento origen. Existe un punto absoluto de referencia para las localizaciones: /, la raiz del documento origen. Las expresiones que no comienzan con / son relativas a un nodo de contexto (normalmente el actual).

Pedro Pastor (Universitat d'Alacant)Curso XSL51 Expresiones de localización(2) El símbolo / a mitad de expresión sirve para incluir expresiones recursivamente (paso de localización), actuando como filtros sucesivos. Un paso de localización se compone de: Una base: Un eje de identificación (indicando dirección de localiz.). Un nodo de test (filtrando nodos de su tipo y nombre). Uno o más predicados (filtrando nodos).

Pedro Pastor (Universitat d'Alacant)Curso XSL52 Ejes de localización ancestor:: ancestor-or-self:: attribute:: child:: descendant:: descendant-or-self:: following:: following-sibling:: namespace:: parent:: preceding:: preceding-sibling:: self:: Hay trece ejes de localización:

Pedro Pastor (Universitat d'Alacant)Curso XSL53 Ejes XPath

Pedro Pastor (Universitat d'Alacant)Curso XSL54 Ejes de localización: abreviaturas Un nombre o tipo de nodo indica child:: Un indica attribute:: La secuencia // indica /descendant-or-self::node()/ La secuencia.. indica parent::node() La secuencia. indica self::node()

Pedro Pastor (Universitat d'Alacant)Curso XSL55 Nodos de test Determinan que nodos localizar en el eje indicado: Por nombre del nodo. Por tipo de nodo. Por valor de atributo.

Pedro Pastor (Universitat d'Alacant)Curso XSL56 Predicados Qualificadores opcionales de listas de nodos (la lista ordenada de nodos en un eje). El orden es en función de la proximidad al nodo actual. La concatenación de predicados se evalúa: de izda. a dcha. Contra todos los nodos del contexto. reduce la lista de nodos seleccionados, cambiando la posición (contexto) de la expresión XPath.

Pedro Pastor (Universitat d'Alacant)Curso XSL57 Ejemplos de expresiones y contextos Self::nomNodo, Indica el nodo actual si se llama nomNodo, si no da lista_vacía. nomNodo,./nomNodo, child::nomNodo, Conjunto de elementos-hijo del nodo actual que se llamennomNodo..//nomNodo, Elementos decendientes del actual (nombre=nomNodo). //nomNodo, Elementos decendientes del raiz (nombre=nomNodo).

Pedro Pastor (Universitat d'Alacant)Curso XSL58 Ejemplos de expresiones y contextos../nomNodo, Elementos hermano (y él mismo) = Nodos atributos asociados con Los nodos atributo del nodo-padre con Atributos atrib de los elementos-hermano=nomNodo. Atributos atrib de los elementos-hijo=nomNodo.

Pedro Pastor (Universitat d'Alacant)Curso XSL59 Ejemplos de expresiones y contextos nomNodo[position()=last()], El último elemento-hijo=nomNodo. nomNodo[position()=3], nomNodo[3], El tercer elemento-hijo=nomNodo. El tercer elemento-hijo=nomNodo que tiene un atributo=atrib. El tercer elemento-hijo=nomNodo SI tiene un atributo asociado=atrib, en caso negtivo da lista-vacía.

Pedro Pastor (Universitat d'Alacant)Curso XSL60 Ejemplos de expresiones y contextos ancestor::nomNodo, Conjunto de nodos antecesores=nomNodo. ancestor::nomNodo[1], El nodo antecesor más próximo=nomNodo. El nodo antecesor más próximo=nomNodo y atributo=atrib. El nodo antecesor más próximo=nomNodo SII tiene un atributo=atrib, si-no : lista vacía.

Pedro Pastor (Universitat d'Alacant)Curso XSL61 Ejemplos de expresiones y contextos Selecciona los atributos=atrib de todos los elementos- antecesores=nomNodo. El atributo=atrib del elemento-antecedente=nomNodo más próximo. El atributo=atrib del elemento que devuelve la función id() con parámetro el valor del atributo ref del elemento actual.

Pedro Pastor (Universitat d'Alacant)Curso XSL62 Dirección de procesamiento de los Ejes Los predicados se orientan por proximidad al nodo actual: Aplicados a antecesores actúan sobre conjuntos ordenados en forma inversa al orden del documento. Aplicados a sucesores actúan sobre conjuntos ordenados en el mismo orden del documento. Los conjuntos resultado que se procesen como colección, se hará en el orden del documento.

Pedro Pastor (Universitat d'Alacant)Curso XSL63 Dirección de procesamiento de ejes (ejemplo) Documento XML origen de transformación: A B C

Pedro Pastor (Universitat d'Alacant)Curso XSL64 Ejemplo (cont.) Hoja de estilo XSL: preceding-sibling::item[1]: &nl;(preceding-sibling::item)[1]: for-each preceding-sibling::item: &nl; Item:

Pedro Pastor (Universitat d'Alacant)Curso XSL65 Ejemplo: resultado preceding-sibling::item[1]: B (preceding-sibling::item[1]: A for-each proceding-sibling::item: Item: A Item: B