Upload
doanbao
View
216
Download
0
Embed Size (px)
Citation preview
XSL - eXtemsibleStylesheet LanguageProf. Antonio Almeida de Barros Jr.
Agenda
2
• Conceitos
• XSLT - XSL Transformations
• Iteração e Classificação
• Processamento Condicional
• Copiando Nodos
• Variáveis
• Estude de Caso: XSLT e Xpath
• Práticas
• XSL-FO
• Conceitos
XSL - Conceitos
3
• XML derivada de SGML;
• Padronizada pelo W3C;
• XSL derivada de DSSSL (Document Style Semantics and
Specification Language);
• Primeira proposta formal em 1997 pela W3C (jácontinha conceitos de XSLT, como uso de templates)
• Novembro de 1999 XSLT tornou-se umarecomendação da W3C;
• XSL-FO Vr. 1.1: Dezembro de 2006;
XSL - Conceitos
4
• Utiliza-se a Extensible StyleSheet Language (XSL) para formatar documentos XML;
• A XSL é dividida em duas partes:
1. XSL Transformation Language (XSLT)• Utiliza-se a XSLT para mudar a forma de um
documento XML;
• Utiliza X-Path para identificar nodos;
2. XSL-FO é uma linguagem para descrever folhas de estilo para documentos XML • Fornece uma alternativa às CSS para formatar um
documento de XML;
XSL TransformationLanguage (XSLT)Prof. Antonio Almeida de Barros Jr.
XSLT - XSL Transformation Language
6
• XSL usa XSLT para transformar uma árvore XML em outra;
• XSLT permite:
• transformar XML em XHTML;
• filtrar e ordenar componentes de XML;
• formatar um componente de XML com base no seu valor;
• formatar XML para exibição na tela, impressão ou saída em áudio;
XSLT - XSL Transformation Language
7
• O documento XSLT é um documento XML com um elemento raiz stylesheet;
• Em uma transformação XSL, há duas árvores de nodos:
• Árvore de origem• Os nodos nessa árvore correspondem ao documento
XML original ao qual a transformação é aplicada.
• Árvore de resultados• Contém todos os nodos produzidos pela transformação
XSL;
• Apresenta o documento produzido pela transformação.
XSLT - XSL Transformation Language
8
• Template simples
Apresenta o elemento raiz do documento XSLT (isto é, xsl:stylesheet) e seus atributos.
XSLT - XSL Transformation Language
9
• Template simples
Este elemento identifica nodos específicos do documento XML utilizando uma expressão Xpath
no atributo match.
XSLT - XSL Transformation Language
10
• Template simples
Quando um nodo do elemento myMessage é identificado na árvore de origem, o conteúdo do
elemento template é colocado na árvore de resultado.
XSLT - XSL Transformation Language
11
• Template simples
Utilizando o elemento value-of e uma expressão XPath no atributo select, o conteúdo do conjunto
de nodos retornado pela expressão XPath é colocado na árvore de resultado.
XSLT - XSL Transformation Language
12
• Template simples
Utilizando o elemento value-of e uma expressão XPath no atributo select, o conteúdo do conjunto
de nodos retornado pela expressão XPath é colocado na árvore de resultado.
XSLT - XSL Transformation Language
13
• Template simples• Documento XML de entrada
Uso do stylesheet para anexar uma folha de estilo a um documento XML. O atributo type define o
tipo de arquivo que está sendo anexado.
XSLT - XSL Transformation Language
14
• Template simples• Documento XML de entrada
XSLT - XSL Transformation Language
15
• Iteração e Classificação Exemplo 02
XSLT - XSL Transformation Language
16
• Iteração e Classificação Exemplo 02
Template XSLT que corresponde ao elemento book.
XSLT - XSL Transformation Language
17
• Iteração e Classificação Exemplo 02
Cria o título para o documento HTML. Foi utilizado o ISBN do livro a partir do atributo isbn e também o conteúdo do elemento title para criar
o string de título.
XSLT - XSL Transformation Language
18
• Iteração e Classificação Exemplo 02
Cria o um elemento header (cabeçalho) com o título do livro, selecionado a partir do elemento
title.
XSLT - XSL Transformation Language
19
• Iteração e Classificação Exemplo 02
Cria outro elemento header, exibindo o autor do livro. Utiliza-se a expressão Xpath
author/lastName para selecionar o sobrenome do autor.
XSLT - XSL Transformation Language
20
• Iteração e Classificação Exemplo 02
Mostra o elemento for-each de XSLT, que aplica o conteúdo do elemento a cada um dos nodos
selecionados pelo atributo select. Neste caso, foram selecionados todos os
elementos preface do elemento chapters.
XSLT - XSL Transformation Language
21
• Iteração e Classificação Exemplo 02
O elemento sort de XSLT, classifica os nodos selecionados pelo elemento for-each pelo campo
no atributo select, na ordem especificada no atributo order.
XSLT - XSL Transformation Language
22
• Processamento Condicional Exemplo 03
Mostra um condicional when do elemento choose. O atributo test fornece a instrução condicional a ser testada. Neste elemento,
testamos se o atributo time do elemento notetem um valor maior que 500 e menor que 1200.
XSLT - XSL Transformation Language
23
• Processamento Condicional Exemplo 03
O elemento otherwise é opcional, mas, se incluído, deve aparecer somente uma vez, depois
de todos os elementos when. Esse elemento é utilizado se nenhum elemento wen for
correspondido.
XSLT - XSL Transformation Language
24
• Processamento Condicional Exemplo 03
Diferente do elemento choose, utiliza-se o elemento if para fornecer um único teste
condicional, no atributo test.
XSLT - XSL Transformation Language
25
• Copiando nodos Exemplo 04
O elemento copy produz uma duplicata do nodo de contexto na árvore de resultado.
XSLT - XSL Transformation Language
26
• Copiando nodos Exemplo 04
Diferente do elemento copy, o elemento copy-ofduplica todos os filhos (Isto é, texto, instruções de processamento, comentários etc) e atributos do
nodo.
XSLT - XSL Transformation Language
27
• Variáveis Exemplo 05
Cria o elemento variable com o atributo name de sum, para armazenar a soma do número de
páginas no livro.
XSLT - XSL Transformation Language
28
• Variáveis Exemplo 05
O elemento value-of envia para a saída a variável sum que usa o sinal de cifrão ($) para fazer
referência à variável.
XSLT - XSL Transformation Language
29
• Estudo de caso: XSLT e XPath Exemplo 06
O caminho de localização /product seleciona todos os product filhos do nodo raiz.
XSLT - XSL Transformation Language
30
• Estudo de caso: XSLT e XPath Exemplo 06
Este elemento contém o caminho de localização completeTrainingCourses//node() em seu
atributo select. O caminho de localização seleciona o conjunto de
todos os nodos que são descendentes dos elementos completeTrainingCourses,
XSLT - XSL Transformation Language
31
• Estudo de caso: XSLT e XPath Exemplo 06
O elemento xsl:value-of com o caminho de localização recuperam o nodo pai de qualquer nodo no documento XML cujo valor de string é
igual ao string “C How to Program”.
XSLT - XSL Transformation Language
32
• Estudo de caso: XSLT e XPath Exemplo 06
Seleciona o nodo de elemento title do segundo elemento completeTrainingCourse no documento
e adiciona seu valor de string ao documento HTML.
XSLT - XSL Transformation Language
33
• Estudo de caso: XSLT e XPath Exemplo 06
Verifica se o elemento product é antepassado do nodo cujo valor de string é XML How to Program.
XSLT - XSL Transformation Language
34
• Estudo de caso: XSLT e XPath Exemplo 06
Neste exemplo, foi utilizado o caminho de localização para adicionar o valor de string do
elemento subject.1º. Seleciona o elemento subject com o valor de
string Programming COM+ with Visual Basic.2º. Utiliza o eixo preceding-sibling para selecionar
o elemento subject do primeiro irmão que é o eixo inverso, assim os nodos que ele seleciona
estão na ordem inversa do documento.
XSLT - XSL Transformation Language
35
• Estudo de caso: XSLT e XPath Exemplo 06
1º. Seleciona o nodo do elemento subject cujo valor de string é Introduction to Java
programming.
2º. Seleciona o primeiro elemento subject na ordem do documento no eixo following-sibling.
XSL – Práticas
36
• Prática 01
• Exemplo “Oi Mundo”: arquivo oi.xml
<?xml version="1.0"?>
<?xml-stylesheet href="oi.xsl" type="text/xsl" ?>
<oi>
Olá todos.
</oi>
XSL - Conceitos
37
• Prática 01
• Exemplo “Oi Mundo”: arquivo oi.xsl
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<body>
<h1> <xsl:value-of select="." /> </h1>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XSL - Conceitos
38
• Prática 02
• Exemplo: catalogo.xml
XSL - Conceitos
39
• Prática 02
• Exemplo: catalogo.xsl
XSL: objetos de formatação da Extensible StylesheeetLanguage
Prof. Antonio Almeida de Barros Jr.
XSLFO: objetos de formatação da ExtensibleStylesheeet Language
41
• Vantagens de separar apresentação de conteúdo:• Múltiplos formatos de saída: tamanhos diferentes, mídias
diferentes (papel, online), dispositivos diferentes (PDA,celular, PC);
• Interface voltada para usuário (ex.: acessabilidade), cores,fontes, etc;
• Uso de estilos padrões;
• Liberdade do autor não se preocupar com apresentação,que será tratada depois por um profissional.
XSLFO - Conceitos
42
• CSS versus XSL:
– CSS - Style Sheet para HTML• tags em HTML com sintaxe e semântica pré-definidas;
• CSS descreve como formatar tags de HTML.
– XSL - Style Sheet para XML• tags em XML não são pré-definidas;
• browser não tem informação para formatar umdocumento XML;
• XSL descreve como exibir documentos XML.
XSLFO - Conceitos
43
• Pode-se utilizar uma folha de estilo para transformar um documento XML em uma variedade de formatos.
Documento
XML
Documento
CSSDocumento
HTMLDocumento
XSLDocumento
XMLEtc.
XSLFO - Conceitos
44
• O documento XML é transformado em umdocumento XSL que marca os dados utilizandoobjetos de formatação;
• Esse documento XSL pode ser transformado emoutros formatos, incluindo Portable DocumentFormat (PDF);
XSLFO - Conceitos
45
• Formatting objects
• Usado para formatar documentos XML paraapresentação;
• Tipicamente usado quando o resultado datransformação é para mídia impressa;• livros, revistas, encartes, etc.
• FOP
• Ferramenta em Java da Apache;
• Transforma documentos XSL que contêmformatting objects;
• Download em xml.apache.org/fop.
XSLFO - Conceitos
46
• Exemplos de ferramentas:• http://xml.apache.org/fop - FOP para PDF
• http://www.unicorn-enterprises.com/ - TeX para PDF
• http://www.jfor.org/ - XSLFO para RTF
• http://www.xsmiles.org/ - browser XML que usa FOP
Referências
47
[1] Deitel, H. M.; Deitel, P. J.; Nieto, R.; XML: Como Programar. Ed. Bookman, 2003. ISBN: 8536301473.
[2] Casanova, M.A.; Processamento de documentos XML – XSL
(Tecnologias de Banco de Dados para a Web Semântica)
[3] Hübner, J.F.; Folhas de estilo (XSL e XPath).
[4] http://www.macoratti.net/xml.htm
[5]http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/xsl/index.html
[6] http://xml.apache.org/xalan-j/