![Page 1: Aplicando Transformação em XML usando XSLT e XSL-FO - 4](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/5.jpg)
Processamento FOP
![Page 6: Aplicando Transformação em XML usando XSLT e XSL-FO - 4](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/8.jpg)
Layout das Páginas (I)
![Page 9: Aplicando Transformação em XML usando XSLT e XSL-FO - 4](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/9.jpg)
Layout das Páginas (II)
![Page 10: Aplicando Transformação em XML usando XSLT e XSL-FO - 4](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/10.jpg)
Layout das Páginas (III)
![Page 11: Aplicando Transformação em XML usando XSLT e XSL-FO - 4](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/11.jpg)
Resultado
![Page 12: Aplicando Transformação em XML usando XSLT e XSL-FO - 4](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/26.jpg)
Adicionando lista de itens
![Page 27: Aplicando Transformação em XML usando XSLT e XSL-FO - 4](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/30.jpg)
Adicionando tabela
![Page 31: Aplicando Transformação em XML usando XSLT e XSL-FO - 4](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/32.jpg)
Adicionando nota de rodapé
![Page 33: Aplicando Transformação em XML usando XSLT e XSL-FO - 4](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/33.jpg)
Adicionando coluna dupla
![Page 34: Aplicando Transformação em XML usando XSLT e XSL-FO - 4](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052522/549a1f5eac79591d2e8b5aa2/html5/thumbnails/42.jpg)
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