42
Aplicando Transformações em XML usando XSLT e XSL-FO Ms Vivian Genaro Motti Profª Drª Maria da Graça Pimentel Prof Dr Rudinei Goularte Ilhéus, maio de 2009. ERBASE

Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Embed Size (px)

DESCRIPTION

Minicurso em 4 módulos apresentado durante o ERBASE em 2009.

Citation preview

Page 1: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Aplicando Transformações em XML usando XSLT e

XSL-FO

Ms Vivian Genaro MottiProfª Drª Maria da Graça Pimentel

Prof Dr Rudinei Goularte

Ilhéus, maio de 2009.

ERBASE

Page 2: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Parte I: XML, conceitos e definições Parte II: XSD, XSL, X-PATH Parte III: CSS, XSL-T, XSL-FO Parte IV: XSL-FO (Formatting

Objects)

Page 3: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

XSL-FO: Sumário Definição XSL-FO x CSS Vocabulário Ferramenta Exemplos Referências

Page 4: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

FOP Aplicação Java de código aberto Provê vários formatos de saída: PDF,

PostScript, SVG... Lê FOs e os renderiza A área delimitada por fo:root é

renderizada pelo FOP

Page 5: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Processamento FOP

Page 6: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Arquivo XSL-FO Instrução padrão de processamento

de XML<?xml version="1.0" encoding="utf-8"?><fo:root>

Conjunto principal do layout descrição dos tipos de páginas sequências nas quais estes formatos de

páginas podem ocorrer As páginas e seus conteúdos

Page 7: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Layout das Páginas

Quais tipos de páginaso documento pode ter?

3 exemplos capa esquerda direita

Especificar: altura largura margens

Page 8: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Layout das Páginas (I)

Page 9: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Layout das Páginas (II)

Page 10: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Layout das Páginas (III)

Page 11: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Resultado

Page 12: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Layout das PáginasUnidades px pt mm cm em in

Especificação simple-page-master

Referência master-name

Margens Regiões sem saída impressa

Áreas de conteúdo da página

Page 13: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Layout das PáginasDireções FO considera que uma página é composta por 2 elementos:

Elementos Block: parágrafos que começam em uma nova linha

Elementos Inline: negrito, itálico

Block progress direction Ordem na qual os parágrafos se posicionam na página

Independente de linguagem

Page 14: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Layout das PáginasEstrutura FO fo:root tem um fo:layout-master-set e um fo:page-sequence fo:layout-master-set tem fo:simple-page-master fo:simple-page-master descreve o layout da página master-name define o nome do layout fo:page-sequence tem fo:flow e indica como colocar conteúdo em um master page master-reference indica a master page a ser utilizada fo:flow tem elementos fo:block (neste exemplo), que indicam conteúdo a ser colocado na página

Page 15: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Layout das Páginas

As margens do region-body devem ser maiores ou iguais aos extents do region-before e region-after para evitar sobreposições do tipo:

Page 16: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Page Sequences Especificar a ordem de uso dos tipos de páginas Dois tipos

Capa Conteúdo: alternância esquerda, direita

Page 17: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Page Sequences Documentos sem ser frente-e-verso com restrição de páginas

Capa Conteúdo: alternância esquerda, direita

Atributo maximum-repeats também pode ser aplicado em repeatable-page-master-alternatives Função: limitar o número de páginas geradas pela sequência

Page 18: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Capa Especificar

qual sequência de páginas será usada em qual região a informação deve estar

Page 19: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Capa

40) Especifica a sequência de páginas para o conteúdo41) O conteúdo seguinte vai para a área xsl-region-body da página42-44) Este conteúdo vai em uma nova linha conforme especificações45-48) Outro bloco para a mensagem de copyright (com fonte diferente e space-after)49) Outro bloco: informação da publicação52-53) Fim do conteúdo desta página

Page 20: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Gerando o PDF Para renderizar a página para impressão

Download do software da Apache FOP (Formatting Objects Processor)

(

Formatador para XSL-FO, aplicação Java que renderiza a página gerando a saída especificada

http://xmlgraphics.apache.org/fop/

Page 21: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Gerando o PDF Saídas

PDF, PS, XML, PNG, RTF, SVG, AWT, MIF, TXT

Vantagem do XSL-FO• a entrada é um arquivo XML que pode ser criado

de várias fontes

Método mais comum Converter XML semântico para XSL-FO

usando XSLT

Page 22: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Requisitos Java 1.1x Parser XML que suporte SAX ou DOM Parser XSLT Biblioteca SVG (do arquivo w3c.jar do FOP)

B

Script Fop livro.fo livro.pdf Produz o arquivo PDF

Visualizador de PDF

Page 23: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Adicionando Gráficos O comando external-graphic tem o

atributo src com a URI da imagem

Page 24: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Adicionando Linha e Paginação

O objeto leader tem o atributo leader-pattern e leader-length com o tipo e o tamanho O objeto page-number exibe o número de página

Page 25: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Adicionando texto em bloco O objeto block tem os atributos font-size e font-family com o tamanho e a fonte, text-align com o alinhamento do texto e line-heigth e space-after.optimum

Page 26: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Adicionando lista de itens

Page 27: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Listas XSL-FO List Blocks

Quatro elementos fo:list-block (contém a lista toda) fo:list-item (contém cada item da lista) fo:list-item-label (contém o rótulo para o

item da lista – em geral um <fo:block> com número ou caractere)

c

fo:list-item-body (com o conteúdo do item da lista – em geral um ou mais objetos <fo:block>)

Page 28: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Adicionando bordas ao bloco

O objeto fo-block tem os atributos para configuração da borda

Page 29: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Adicionando link e cor ao fundo

O objeto fo-block tem os atributos para cor de fundo e fo:basic-link para links

Page 30: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Adicionando tabela

Page 31: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Tabelas: fo:table-and-caption

Nove objetos do XSL-FO são usados para criar tabelas: fo:table-and-caption fo:table fo:table-caption fo:table-column * fo:table-header * fo:table-footer * fo:table-body * fo:table-row fo:table-cell

* elementos opcionais

Page 32: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Adicionando nota de rodapé

Page 33: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Adicionando coluna dupla

Page 34: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Formatting Objects

fo:basic-link fo:bidi-override fo:block fo:block-container fo:character fo:color-profile fo:conditional-page-master-reference fo:declarations fo:external-graphic fo:float fo:flow fo:footnote fo:footnote-body fo:initial-property-set fo:inline fo:inline-container fo:instream-foreign-object fo:layout-master-set fo:leader fo:list-block

fo:list-item fo:list-item-body fo:list-item-label fo:marker fo:multi-case fo:multi-properties fo:multi-property-set fo:multi-switch fo:multi-toggle fo:page-number fo:page-number-citation fo:page-sequence fo:page-sequence-master fo:region-after fo:region-before fo:region-body fo:region-end fo:region-start fo:repeatable-page-master-alternatives fo:repeatable-page-master-reference

fo:retrieve-marker fo:root fo:simple-page-master fo:single-page-master-reference fo:static-content fo:table fo:table-and-caption fo:table-body fo:table-caption fo:table-cell fo:table-column fo:table-footer fo:table-header fo:table-row fo:title fo:wrapper

Page 35: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Considerações Importantes XSL-FO

Especifica o layout de apresentação de um documento XML

Permite diferentes formatos de saída Diferenciais

Configurar direção do texto Especificar modelos de layout

Page 36: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Considerações Finais XML é uma linguagem relativamente

simples Permite intercâmbio de dados entre

diferentes plataformas e tecnologias XSL-FO é um recurso para

estruturas a apresentação e gerar aplicações XML

Page 37: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Referências[AH, 1996] Antenna House. Disponível em: http://www.

antennahouse.com/[DOM, 2005] Especificação W3C do XML DOM. Disponível

em: http://www.w3.org/DOM/ [DOM, 2009] Tutorial sobre XML DOM. Disponível em: http://

www.w3schools.com/dom/default.asp[FO, 2001] Disponível em:

http://www.xml.com/pub/a/2001/01/24/xsl-fo/index.html ?page=1

[FO, 2002] Printing from XML: An Introduction to XSL-FO. Disponível em: http://www.xml.com/pub/a/2002/10/09/xslfo.html

Page 38: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Referências[FO, 2009] Tutorial da W3C sobre XSL-FO. Disponível em

http://www.w3schools.com/xslfo/[FOP, 2009] Processador de FO. Disponível em: http://

xmlgraphics.apache.org/fop/[FO W3C, 2000] Formatting Objects W3C Candidate

Recommendation. Disponível em: http://www.w3.org/TR/2000/CR-xsl-20001121/slice6.html#fo-section

[Goldfarb and Prescod, 1998] Goldfarb, C. and Prescod P. The XML handbook. Prentice Hall. 1998.

[Namespaces, 2006] Namespaces in XML 1.0. Disponível em: http://www.w3.org/TR/xml-names/

Page 39: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Referências[PT, 1999] Passive Tex. Disponível em: http://www.ibiblio.org/

bosak/conf/xmldev99/rahtz/passivetex.html[Pitts-Moultis and Kirk, 2000] Pitts-Moultis, N. and Kirk, C.

XML Black Book. Makron Books. 2000.[RenderX, 2005] RenderX. Disponível em: http://www.renderx

.com/

[SAX, 2000] Projeto SAX. Disponível em: http://www.saxproject.org/

[Schema, 2001] XML Schema. Disponível em: http://www.w3.org/XML/Schema

Page 40: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Referências[Schema, 2001] Tutorial sobre XML Schema. Disponível em:

http://www.w3schools.com/schema/ [SMIL, 1998] SMIL (Standard Multimedia Integration

Language), disponível em: http://www.w3.org/TR/1998/TR/1998/PR-smil-19980409/

[Spencer, 1999] Spencer, P. XML Design and Implementation. Wrox Press Ltda. 1999.

[XML, 2009] Tutorial sobre XML da W3C. Disponível em:http://www.w3schools.com/xml/

[XPath, 1999] Definição de XPath disponível em: http://www.w3.org/TR/xpath

Page 41: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Referências[XPath, 2009] Tutorial sobre XPath disponível em: http

://www.w3schools.com/xpath/[XSL, 2009] Tutorial sobre XSL da W3C. Disponível em:http

://www.w3schools.com/Xsl/xsl_languages.asp[XSL-FO, 2001] Using XSL Formatting Objects. Disponível em:

http://www.xml.com/pub/a/2001/01/17/xsl-fo/index.html[XSL W3C, 2009] Definição de XSL disponível em: http

://www.w3.org/Style/XSL/ [XSLT, 2009] Tutorial da W3C sobre XSLT. Disponível em:

http://www.w3schools.com/xsl/

Page 42: Aplicando Transformação em XML usando XSLT e XSL-FO - 4

Referênciashttp://www.xml.com/pub/a/2002/10/09/xslfo.html

http://www.xml.com/pub/a/2001/01/24/xsl-

fo/index.html ?page=1

http://www.w3schools.com/xslfo/xslfo_intro.asp

http://xmlgraphics.apache.org/fop/

http://www.w3.org/TR/2000/CR-

xsl-20001121/slice6.html#fo-section