XPath e XSLT. Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida )

Documentos relacionados
extensible Stylesheet Language (XSL) XSL descreve como fazer o display de um documento XML. XSL é uma espécie de style sheets para XML...

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

GERÊNCIA DE DADOS SEMI ESTRUTURADOS - XQUERY. Prof. Angelo Augusto Frozza

XSL - extemsible Stylesheet Language. Prof. Antonio Almeida de Barros Jr.

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

DOM (Document Object Model)

Notas sobre XSLT. O modo correcto para declarar um documento xsl é:

XML - DTD - XSL Exemplos de Exercícios TWEB II

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

XPath. Resumo Descrever um esquema específico XML (XPath) para identificar subestruturas

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) XML Origens. HTML Problemas

Folhas de estilo. Jomi Fred Hübner (XSL e XPath) FURB / DSC

Linguagens e Programação XPATH / XSLT. Paulo Proença

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

GERÊNCIA DE DADOS SEMIESTRUTURADOS - XSLT. Prof. Angelo Augusto Frozza, M.Sc.

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML NAMESPACES. Prof. Angelo Augusto Frozza, M.Sc.

XML extensible Markup Language. Prof. Fellipe Aleixo

Programação Web Prof. Wladimir

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

Exame de Época Especial / 1º Semestre / 2007/2008. Todas as folhas devem ser identificadas, de forma legível, com o nome e número do aluno.

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Uma Abordagem Alternativa para o Armazenamento Electrónico de Dados: O Papel da Norma XML

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Bases de dados semi-estruturadas, XML

EMML Enterprise Mashup Markup Language. Jesús Martín Talavera Portocarrero

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML

QUEM FEZ O TRABALHO?

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Guia de Consulta Rápida. PHP com XML. Juliano Niederauer. Terceira Edição. Novatec

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Roteiro 2: Conceitos de Tags HTML

TUTORIAL: LINGUAGENS XSL E XSLT

XSLT e recursividade estrutural. Gestão e Tratamento de Informação DEI IST

Este relatório tem por objetivo, abordar a sintaxe XML.

Programando em PHP. Conceitos Básicos

O que são Bancos de Dados?

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Introdução ao XML. Extensible Markup Language

RICARDO TERRA NUNES BUENO VILLELA XSLT:

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Série Rações Semanais Xpath e XSLT Rogério Araújo

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Capítulo 9: XML! Database System Concepts! Silberschatz, Korth and Sudarshan (modificado)!

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

DWEB. Design para Web. CSS3 - Fundamentos. Curso Superior de Tecnologia em Design Gráfico

Introdução. Definição. Validação. Universo XML. Apresentação. Processamento. Prof. Enzo Seraphim. Banco de Dados

GESTÃO DA CADEIA DE SUPRIMENTOS FORMAS DE TROCA DE INFORMAÇÃO: EDI E XML

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

7. Cascading Style Sheets (CSS)

Transformação de documentos XML

Alinhamento Prático Ferramenta ARIS Operação Básica

NOME SEXO CPF NASCIMENTO SALARIO

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

CAPÍTULO 35 Como utilizar os componentes ColdFusion

Linguagem algorítmica: Portugol

Leiaute-IMPORTAÇÃO-Plano de Contas - XML

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Introdução ao SQL. Aécio Costa

Programação de Servidores CST Redes de Computadores

XSLT. Sub-linguagens. Processamento Estruturado de Documentos 2003 By jcr XSL XSLFO XSLT. XPath. 11 de Setembro de 2003 jcr - ped2003-1

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN

AULA 17 KML Manager. Nessa aula serão apresentadas as funcionalidades do KML Manager.

FEUP Faculdade de Engenharia da Universidade do Porto XSL. Porto, Maio de Gabriel David FEUP, Maio 2002 XML/XSL

Webdesign HTML. Introdução a HTML e as principais tags da linguagem. Thiago Miranda dos Santos Souza

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conhecendo o BrOffice.org Calc. Por: Paulo Garcez Leães

Sistema para aprendizado de Álgebra Relacional e Linguagem SQL

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS (GRUPO INFORMÁTICA) Ano Letivo de 2014/2015 MÓDULO 1 FOLHA DE CÁLCULO

Banco de Dados. Conversão para o Banco de Dados SisMoura

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Desenvolvedor Web Docente André Luiz Silva de Moraes

Desenvolvimento em Ambiente Web. HTML - Introdução

Documentação Usando o Javadoc

Sintaxe XML. César Vittori Outubro de Resumo Introdução à sintaxe XML. Marcação tradicional x marcação de documentos

Desenvolvimento de Sites com PHP e Mysql Docente André Luiz Silva de Moraes

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

Bruno Ribeiro de F. Machado DESENVOLVIMENTO DE UMA FERRAMENTA PARA DOCUMENTAÇÃO DE CÓDIGOS-FONTE BASEADA EM XML

Professor: Paulo Macos Trentin Escola CDI de Videira 4/6/2011 1

XPath. Vanessa Braganholo. Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo

Um documento XML possui Unidade lógica - os elementos Usuário "inventa" as marcas através de DTDs

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

HTML: Listas, Tabelas e Formulários CST Sistemas para Internet

css Cascading Style Sheets CSS CASCADING STYLE SHEETS

Servidor de Documentos XML Usando Java

TIC Tecnologias da Informação e Comunicação 10º Ano

Tarefa Orientada 13 Agrupamento e sumário de dados

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

Mini-curso de PHP. Aulas ministradas por: André Luis de Paula Arthur Kalsing Diego Silva

Transcrição:

XPath e XSLT Ferramentas para Internet Marx Gomes Van der Linden ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida )

XSL XSL Extensible Stylesheet Language Uma família de linguagens que especifica métodos de transformação e manipulação de documentos escritos em linguagens baseadas em XML http://marx.vanderlinden.com.br 2

XPath Linguagem especialmente criada para acessar partes de um documento XML Surgiu da necessidade de se acessarem os documentos XML como se fossem árvores Não é baseada em XML Fácil incorporação em documentos XML Usada pela XSLT http://marx.vanderlinden.com.br 3

XPath XPath não é uma linguagem comum... Não se escreve documentos XPath XPath é usada dentro de folhas de estilo XSL a fim de auxiliar a transformação de documentos XML Linguagem de consulta baseada em árvores http://marx.vanderlinden.com.br 4

<videoteca> <filme cod="cla-1112"> <titulo> E o vento levou </titulo> <diretor> Victor Fleming </diretor> <elenco> <ator> Clark Gable </ator> <atriz> Vivian Leigh </atriz> </elenco> </filme> <filme cod="fic-0001"> <titulo> Matrix </titulo> <diretor> Andy Wachowski </diretor> <diretor> Larry Wachowski </diretor> <elenco> <ator> Keanu Reeves </ator> <atriz> Laurence Fishburne </atriz> </elenco> </filme> </videoteca> http://marx.vanderlinden.com.br 5

Visão de Árvore videoteca filme filme titulo diretor elenco titulo diretor diretor elenco E o vento levou ator atriz Matrix Andy Fleming ator atriz Victor Fleming Clark Gable Vivian Leigh Larry Wachowski Laurence Fishburne http://marx.vanderlinden.com.br 6 Keanu Reeves

Caminho de Localização Define como cada elemento de uma árvore XML pode ser localizado Definido através de uma seqüência de passos de localização separados por barra ( /") Localização é indicada de modo semelhante a uma estrutura de diretórios Também chamado de Expressão de Caminho ( path ) http://marx.vanderlinden.com.br 7

videoteca 1 2 E o vento levou titulo filme diretor elenco ator atriz titulo Matrix filme diretor diretor elenco Andy Fleming ator atriz Victor Fleming Clark Gable Vivian Leigh Larry Wachowski Laurence Fishburne Keanu Reeve Caminho 1 /videoteca/filme/diretor Caminho 2 http://marx.vanderlinden.com.br 8 /videoteca/filme/elenco/ator

Caminho de Localização Símbolos /: raiz do documento.: próprio elemento (elemento de contexto) *: substitui qualquer elemento em um determinado nível capítulo/seção/parágrafo capítulo/introdução/parágrafo capítulo/*/páragrafo http://marx.vanderlinden.com.br 9

Caminho de Localização Símbolos //: substitui múltiplos * capítulo/parágrafo capítulo/introdução/parágrafo capítulo/tópicos/introdução/parágrafo capítulo//páragrafo http://marx.vanderlinden.com.br 10

Caminho de Localização Cada nodo que resulta da avaliação de um passo é utilizado como contexto para a avaliação do próximo filme titulo elenco titulo diretor elenco diretor http://marx.vanderlinden.com.br 11

Predicados Expressões booleanas utilizadas para encontrar um determinado elemento @ indica um atributo Devem ser satisfeitos para que a instrução correspondente seja processada Agem como filtros de itens indesejados em uma lista /filme[@cod='001'] /livro/seção[@idsec='a12'] http://marx.vanderlinden.com.br 12

<?xml version="1.0"?> <bookstore specialty="novel"> <book style="autobiography"> <author> <first-name>joe</first-name> <last-name>bob</last-name> <award>trenton Literary Review Honorable Mention</award> </author> <price>12</price> </book> <book style="textbook"> <author> <first-name>mary</first-name> <last-name>bob</last-name> <publication>selected Short Stories of <first-name>mary</first-name> http://marx.vanderlinden.com.br 13 (...)

Exemplos(1/3) author Todos os autores no contexto atual //author Todos os autores no documento /bookstore Tag bookstore na raiz author/* Todos os filhos de author *[@specialty] Todas as tags que contém o atributo speciality book[@style] Todas as tags book que contém o atributo style http://marx.vanderlinden.com.br 14

Exemplos (2/3) book/@style Todos os atributos style pertencentes a uma tag book book[@style=/bookstore/@specialty] Todas os atributos specialty pertencentes à tag livro, cujo valor seja igual ao valor de specialty da tag bookstore, na raiz. @* Todos os atributos do contexto atual author[1] O primeiro autor no contexto atual http://marx.vanderlinden.com.br 15

Exemplos (3/3) author[first-name][3] O terceiro autor que tem um first-name (filho) bookstore//title Todos os elementos title descendentes de bookstore bookstore/*/title Todos os elementos title que são netos de bookstore http://marx.vanderlinden.com.br 16

XSLT Um documento XML por si só não apresenta muitas vantagens É apenas um contêiner de informações Como visualizá-lo? Qual aplicação irá processá-lo? Como utilizá-lo? http://marx.vanderlinden.com.br 17

Motivação Por que transformar um documento? Armazenar em um formato, exibir em outro Converter para um formato mais útil Tornar o documento mais compacto Usar o documento como front-end para consultas a BD http://marx.vanderlinden.com.br 18

Processo de Transformação DECLARAÇÕES XSLT (XSL) ARQUIVO DE ENTRADA (XML) Processador XSLT ARQUIVO DE SAÍDA (XML ou não) http://marx.vanderlinden.com.br 19

Processo de Transformação Observações Documento original não é modificado Formato resultante pode ser serializado ou não O resultado pode ser outro arquivo XML, XHTML, HTML, texto plano, etc. http://marx.vanderlinden.com.br 20

Transformação Uma especificação de transformação é composta de um conjunto de regras que combinam elementos Cada regra é aplicada de acordo com uma busca ou seleção no documento fonte Cada regra descreve o que deve ser gerado com base nos dados de entrada Funciona como um filtro http://marx.vanderlinden.com.br 21

Transformação Documentos XML são representados como árvores Cada parte da estrutura é representada como um nó e acessada através de pesquisas Utilização de XPath http://marx.vanderlinden.com.br 22

Folha de Estilo Toda Folha de Estilo XSLT deve estar armazenada em um arquivo.xsl O arquivo XML deve referenciar a folha de estilo usando uma instrução de processamento <?xml-stylesheet href="folha.xsl" type="text/xsl"?> http://marx.vanderlinden.com.br 23

Folha de Estilo: Formato <?xml version="1.0"> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/format"> <!-- CONTEÚDO --> </xsl:sylesheet> http://marx.vanderlinden.com.br 24

Comandos Templates São utilizados para descrever como uma determinada parte de um documento XML deve ser transformada. Uma Folha de Estilo XSL deve ser composta por um ou mais templates. Semelhante à definição de uma função em uma linguagem de programação. Pode ter um comportamento recursivo. http://marx.vanderlinden.com.br 25

Comandos Templates Sintaxe <xsl:template match="nó de referência"> [diretiva de processamento] [texto] </xsl:template> http://marx.vanderlinden.com.br 26

Comandos Templates O atributo match é utilizado para identificar a associação de um estilo com um documento ou parte de um documento em especial. Define o nó de referência, ou seja, onde começa a busca pelo elementos a serem transformados. Semelhante ao where em uma cláusula select de SQL http://marx.vanderlinden.com.br 27

Comandos Para processar todo o documento XML a busca deve iniciar pelo elemento raiz <xsl:template match="/">... </xsl:template> <xsl:template match="videoteca">... </xsl:template> <xsl:template match="*">... </xsl:template> http://marx.vanderlinden.com.br 28

value-of value-of Imprime o conteúdo de um elemento dentro da árvore de resultados. Elemento é escolhido através do atributo select. Relativo ao contexto atual <xsl:value-of select="elemento corrente" /> <xsl:template match="diretor"> <xsl:value-of select="." /> </xsl:template> http://marx.vanderlinden.com.br 29

apply-templates Insere na posição especificada o processamento associado ao nó especificado Análogo à chamada de uma função em uma linguagem de programação <xsl:template match="/"> <b> Filmes: </b> <xsl:apply-templates /> </xsl:template> http://marx.vanderlinden.com.br 30

Processamento Seletivo Permite selecionar certos elementos filhos mediante uma determinada condição Utilização do comando select em applytemplates http://marx.vanderlinden.com.br 31

Processamento Seletivo <xsl:template match="videoteca"> <xsl:apply-templates select="filme[@cod='001']"/> </xsl:template> <xsl:template match="filme"> <xsl:apply-templates select="diretor"/> </xsl:template> http://marx.vanderlinden.com.br 32

Exemplo - XML <?xml version="1.0"?> <arquivo> <cliente cat="a"> <nome>fulano de Tal</nome> <end>rua XYZ, 123</end> </cliente> <cliente cat="b"> <nome>beltrano Segundo</nome> <end>av. ABC, 2345</end> <tel>3222-2223</tel> </cliente> <produto cod="proda"> <nome>produto A</nome> <preco>50.00</preco> </produto> (...) http://marx.vanderlinden.com.br 33

XSLT Completo (1/4) <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transfor m" version="1.0" > <xsl:output method="html" /> <xsl:template match="/"> <html><body> <h1> Clientes - Categoria A </h1> <xsl:apply-templates select="arquivo/cliente[@cat='a']"/> http://marx.vanderlinden.com.br 34

XSLT Completo (2/4) <h1> Clientes - Categoria B </h1> <ul> <xsl:apply-templates select="//cliente[@cat='b']"/> </ul> <h1> Produtos </h1> <table> <tr><th>código</th><th>nome</th><th>preço</th> </tr> <xsl:apply-templates select="//produto"/> </table> </body></html> http://marx.vanderlinden.com.br 35 </xsl:template>

XSLT Completo (3/4) <xsl:template match="cliente[@cat='a']"> <h2> <xsl:value-of select="nome"/> </h2> <p> Endereço: <xsl:value-of select="end"/> </p> <p> Telefone: <xsl:value-of select="tel"/> </p> </xsl:template> <xsl:template match="cliente[@cat='b']"> <li> <xsl:value-of select="nome"/>, <xsl:value-of select="end"/>, <xsl:value-of select="tel"/> </li> </xsl:template> http://marx.vanderlinden.com.br 36

XSLT Completo (4/4) <xsl:template match="produto"> <tr> <td><xsl:value-of select="@cod"/></td> <td><xsl:value-of select="nome"/></td> <td><xsl:value-of select="preco"/></td> </tr> </xsl:template> </xsl:stylesheet> http://marx.vanderlinden.com.br 37

Saída (1/2) http://marx.vanderlinden.com.br 38

Saída (2/2) http://marx.vanderlinden.com.br 39