Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Aplicando Transformações
em XML usando XSLT e
XSL-FO
Ms Vivian Genaro Motti
Profª Drª Maria da Graça Pimentel
Prof Dr Rudi...
 Parte I: XML, conceitos e definições
 Parte II: XSD, XSL, X-PATH
 Parte III: CSS, XSL-T, XSL-FO
 Parte IV: XSL-FO (Fo...
XSL-FO: Sumário
 Definição
 XSL-FO x CSS
 Vocabulário
 Ferramenta
 Exemplos
 Referências
FOP
 Aplicação Java de código aberto
 Provê vários formatos de saída: PDF,
PostScript, SVG...
 Lê FOs e os renderiza
 ...
Processamento FOP
Arquivo XSL-FO
 Instrução padrão de processamento
de XML
<?xml version="1.0" encoding="utf-8"?>
<fo:root>
 Conjunto prin...
Layout das Páginas
Quais tipos de páginas
o documento pode ter?
3 exemplos
capa esquerda direita
Especificar:

altura

l...
Layout das Páginas (I)
Layout das Páginas (II)
Layout das Páginas (III)
Resultado
Layout das Páginas
Unidades

px

pt

mm

cm

em

in
Especificação

simple-page-master
Referência

master-name
Marg...
Layout das Páginas
Direções
FO considera que uma página é composta por 2 elementos:

Elementos Block: parágrafos que come...
Layout das Páginas
Estrutura FO

fo:root tem um fo:layout-master-set e um fo:page-
sequence

fo:layout-master-set tem fo...
Layout das Páginas
 As margens do region-body devem ser
maiores ou iguais aos extents do region-
before e region-after pa...
Page Sequences
 Especificar a ordem de uso dos tipos de páginas
 Dois tipos
 Capa
 Conteúdo: alternância esquerda, dir...
Page Sequences
 Documentos sem ser frente-e-verso com
restrição de páginas
 Capa
 Conteúdo: alternância esquerda, direi...
Capa
 Especificar
 qual sequência de páginas será usada
 em qual região a informação deve estar
Capa
40) Especifica a sequência de páginas para o
conteúdo
41) O conteúdo seguinte vai para a área xsl-
region-body da pág...
Gerando o PDF
 Para renderizar a página para impressão
 Download do software da Apache FOP
(Formatting Objects Processor...
Gerando o PDF
 Saídas
 PDF, PS, XML, PNG, RTF, SVG, AWT, MIF,
TXT
 Vantagem do XSL-FO
• a entrada é um arquivo XML que ...
Requisitos
 Java 1.1x
 Parser XML que suporte SAX ou DOM
 Parser XSLT
 Biblioteca SVG (do arquivo w3c.jar do FOP)
 Sc...
Adicionando Gráficos
 O comando external-graphic tem o
atributo src com a URI da imagem
Adicionando Linha e Paginação
 O objeto leader tem o
atributo leader-pattern e
leader-length com o tipo e o
tamanho
 O o...
Adicionando texto em bloco
 O objeto block tem os
atributos font-size e font-family
com o tamanho e a fonte, text-
align ...
Adicionando lista de itens
Listas
XSL-FO List Blocks
 Quatro elementos
 fo:list-block (contém a lista toda)
 fo:list-item (contém cada item da lis...
Adicionando bordas ao bloco
 O objeto fo-block tem
os atributos para
configuração da borda
Adicionando link e cor ao fundo
 O objeto fo-block
tem os atributos para
cor de fundo e
fo:basic-link para
links
Adicionando tabela
Tabelas: fo:table-and-caption
Nove objetos do XSL-FO são usados para criar
tabelas:
 fo:table-and-caption
 fo:table
 fo...
Adicionando nota de rodapé
Adicionando coluna dupla
Formatting Objects
fo:basic-link
fo:bidi-override
fo:block
fo:block-container
fo:character
fo:color-profile
fo:conditional...
Considerações Importantes
 XSL-FO
 Especifica o layout de apresentação de
um documento XML
 Permite diferentes formatos...
Considerações Finais
 XML é uma linguagem relativamente
simples
 Permite intercâmbio de dados entre
diferentes plataform...
Referências
[AH, 1996] Antenna House. Disponível em: http://www.
antennahouse.com/
[DOM, 2005] Especificação W3C do XML DO...
Referências
[FO, 2009] Tutorial da W3C sobre XSL-FO. Disponível em
http://www.w3schools.com/xslfo/
[FOP, 2009] Processador...
Referências
[PT, 1999] Passive Tex. Disponível em: http://www.ibiblio.org/
bosak/conf/xmldev99/rahtz/passivetex.html
[Pitt...
Referências
[Schema, 2001] Tutorial sobre XML Schema. Disponível em:
http://www.w3schools.com/schema/
[SMIL, 1998] SMIL (S...
Referências
[XPath, 2009] Tutorial sobre XPath disponível em: http
://www.w3schools.com/xpath/
[XSL, 2009] Tutorial sobre ...
Referências
http://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
...
Upcoming SlideShare
Loading in …5
×

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

770 views

Published on

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

Published in: Technology
  • Be the first to comment

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

  1. 1. 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
  2. 2.  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)
  3. 3. XSL-FO: Sumário  Definição  XSL-FO x CSS  Vocabulário  Ferramenta  Exemplos  Referências
  4. 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
  5. 5. Processamento FOP
  6. 6. 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
  7. 7. Layout das Páginas Quais tipos de páginas o documento pode ter? 3 exemplos capa esquerda direita Especificar:  altura  largura  margens
  8. 8. Layout das Páginas (I)
  9. 9. Layout das Páginas (II)
  10. 10. Layout das Páginas (III)
  11. 11. Resultado
  12. 12. Layout das Páginas Unidades  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
  13. 13. Layout das Páginas Direçõ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
  14. 14. Layout das Páginas Estrutura 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
  15. 15. 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:
  16. 16. Page Sequences  Especificar a ordem de uso dos tipos de páginas  Dois tipos  Capa  Conteúdo: alternância esquerda, direita
  17. 17. 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
  18. 18. Capa  Especificar  qual sequência de páginas será usada  em qual região a informação deve estar
  19. 19. Capa 40) Especifica a sequência de páginas para o conteúdo 41) O conteúdo seguinte vai para a área xsl- region-body da página 42-44) Este conteúdo vai em uma nova linha conforme especificações 45-48) Outro bloco para a mensagem de copyright (com fonte diferente e space-after) 49) Outro bloco: informação da publicação 52-53) Fim do conteúdo desta página
  20. 20. 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 /
  21. 21. 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
  22. 22. Requisitos  Java 1.1x  Parser XML que suporte SAX ou DOM  Parser XSLT  Biblioteca SVG (do arquivo w3c.jar do FOP)  Script  Fop livro.fo livro.pdf  Produz o arquivo PDF  Visualizador de PDF
  23. 23. Adicionando Gráficos  O comando external-graphic tem o atributo src com a URI da imagem
  24. 24. 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
  25. 25. 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
  26. 26. Adicionando lista de itens
  27. 27. 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)  fo:list-item-body (com o conteúdo do item da lista – em geral um ou mais objetos <fo:block>)
  28. 28. Adicionando bordas ao bloco  O objeto fo-block tem os atributos para configuração da borda
  29. 29. Adicionando link e cor ao fundo  O objeto fo-block tem os atributos para cor de fundo e fo:basic-link para links
  30. 30. Adicionando tabela
  31. 31. 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
  32. 32. Adicionando nota de rodapé
  33. 33. Adicionando coluna dupla
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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/
  39. 39. 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
  40. 40. 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
  41. 41. 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/
  42. 42. Referências http://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

×