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

579 views
521 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
579
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×