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

692 views

Published on

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

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

  • Be the first to like this

No Downloads
Views
Total views
692
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  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. Sumário  XSD  Schemas  XSL  Origem  Definição  Aplicação  XPATH
  4. 4. Documento XML <?xml version="1.0" encoding="UTF-8"?> <recado>   <para>João</para>   <de>Maria</de>   <assunto>Aviso</assunto>   <mensagem>Sua mãe ligou.</mensagem> </recado>
  5. 5. Schema <xs:element name="recado"> <xs:complexType> <xs:sequence> <xs:element name="para" type="xs:string"/>   <xs:element name="de" type="xs:string"/>   <xs:element name="assunto" type="xs:string"/>   <xs:element name="mensagem" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
  6. 6. Associando Schema ao XML <?xml version="1.0"encoding="UTF-8"?> <recado xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:schemaLocation="http://www.w3schools.com recado.xsd">   <para>João</para> ...   <mensagem>Sua mãe ligou.</mensagem> </recado>
  7. 7. Associando Schema ao XML xmlns="http://www.w3schools.com"  Especifica a declaração do namespace padrão  Todos os elementos usados no XML original estão declarados no namespace da URL  Tendo o namespace disponível: xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance"  Declara-se o namespace a ser usado  E o Schema xsi:schemaLocation="http://www.w3schools.com recado.xsd"
  8. 8. Restrições  Elementos do Schema que restringem a definição de  simpleType  simpleContent  complexContent
  9. 9. Elementos Simples  São elementos compostos apenas por texto  Não possuem atributos nem outros elementos  No entanto o texto pode ser de diferentes tipos  Boolean, string, date  É possível restringir seu conteúdo
  10. 10. Elementos Simples  São definidos assim <xs:element name="x" type="y">  Tipos  xs:string  xs:decimal  xs:integer  xs:boolean  xs:date  xs:time
  11. 11. Exemplos <nome>Maria</nome> <idade>16</idade> <nascimento>1993-02-27</nascimento> <xs:element name="nome" type="xs:string"/> <xs:element name="idade" type="xs:integer"/> <xs:element name="nascimento" type="xs:date"/>
  12. 12. Valores Padrão e Fixo  É possível especificar um valor fixo ou padrão para elementos simples <xs:element name="sexo" type="xs:string" default="M"/>  O valor padrão é usado caso nenhum outro seja definido  Já o valor fixo não pode ser alterado <xs:element name="cor" type="xs:string" fixed="azul"/>
  13. 13. Exemplo de Atributo  Exemplo <nome prefixo="Sr">Smith</nome>  Declaração <xs:attribute name="prefixo" type="xs:string"/>  Opções  Valor padrão ou constante  Opcional ou Requerido  Conteúdos Restritos
  14. 14. Atributos  São definidos assim <xs:attribute name="x" type="y">  Tipos  xs:string  xs:decimal  xs:integer  xs:boolean  xs:date  xs:time
  15. 15. Atributo  Elemento Vazio <aluno id="01" />  Declaração <xs:element name="aluno" type="xs:string"> <xs:complexType name="aluno"> <xs:attribute name="id" type="xs:string"/> </xs:complexType>
  16. 16. Ocorrências  Quantidade de elementos  DTD: *, ?, +  Schema: minOccurs, maxOccurs <xs:element name="cel" type="xs:string" minOccurs="1" maxOccurs="2"/>  Valor especial  maxOccurs="unbounded"  Sem limites
  17. 17. Tipos de Dados  É possível criar tipos de dados próprios <xs:element name="nomecompleto"> <xs:complexType> <xs:sequence> <xs:element name="nome" type="xs:string"/> <xs:element name="sobrenome" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
  18. 18. Ordem dos elementos  Há três opções  Sequence: atribui uma ordem fixa aos elementos  All: qualquer ordem é possível  Choice: um elemento da lista aparece
  19. 19. Exemplo  Para escolha: choice <xs:element name="setor"> <xs:complexType> <xs:choice> <xs:element name="venda" type="xs:string"/> <xs:element name="caixa" type="xs:string"/> </xs:choice> </xs:complexType> </xs:element>
  20. 20. Tipo Simples  Enumeration  Opções de conteúdo <xs:simpleType name="cor"> <xs:restriction base="xs:string"> <xs:enumeration value="branco"/> <xs:enumeration value="azul"/> <xs:enumeration value="verde"/> </xs:restriction> </xs:simpleType>
  21. 21. Parsing  Análise  É feita uma leitura integral do documento  A informação é estrutura de acordo com a definição de seus elementos
  22. 22. Parsers  Lêem o documento XML  Analisam a formatação e gramática  Convertem em um objeto DOM  Para ser acessado via JavaScript  Expat  Desenvolvido em C  XML4J  Suporta DOM e SAX
  23. 23. SAX (Simple API for XML)  É um conjunto de interfaces Java  Permite criação de aplicativos para ler dados em um documento XML  Parsing
  24. 24. DOM (Document Object Model)  Define um modo padrão para acessar e manipular documentos XML  Interpreta como estrutura em árvore  Permitindo acesso, alteração, criação e remoção de nós  Armazena o documento todo na memória  Não recomendado para arquivos grandes
  25. 25. DOM  Para navegação e manipulação de conteúdo  Adição de modelos de folhas de estilo  Visualização da formatação dos documentos  Método para recuperar dados  getElementsByTagName()
  26. 26. Linguagens Derivadas  XHTML última versão do HTML  SVG formato de imagens  SMIL para descrever multimídia na web  WSDL para descrever webservices  WAP linguagem de marcação para PDAs  RSS para feeds  RDF e OWL para descrever recursos e ontologias  MathML, CML
  27. 27. SVG  Scalable Vector Graphics  Especificação para gráficos  Escaláveis  Interativos  Padrão W3C
  28. 28. SMIL (smile)  Synchronized Multimedia Integration Language  Descreve o tempo em uma apresentação  Descreve o layout da apresentação na tela  Associa links aos objetos de mídia
  29. 29. MathML  Mathematical Markup Language  Recomendação W3C  Linguagem para descrições matemáticas  Provê acessibilidade  E consultas mais precisas
  30. 30. MathML  Usa a notação pré-fixa (6+2) <math> <apply> <plus/> --> Operador vem antes. <cn>6</cn> --> 1º operando <cn>2</cn> --> 2º operando </apply> </math>
  31. 31. CML – H2O <?xml version="1.0"?> <cml xmlns="http://www.xml-cml.org/schema/cml2/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.xml- cml.org/schema/cml2/core cmlCore.xsd"> <molecule title="Water"> <atomArray> <atom id="a1" elementType="H" hydrogenCount="0"/> <atom id="a2" elementType="O" hydrogenCount="2"/> <atom id="a3" elementType="H" hydrogenCount="0"/> </atomArray> <bondArray> <bond atomRefs2="a1 a2" order="1"/> <bond atomRefs2="a2 a3" order="1"/> </bondArray> </molecule> </cml>
  32. 32. Considerações Importantes  XML: Extensible Markup Language  Não substitui o HTML  DTD: Document Type Definition  XSL: Extensible Stylesheet Language  <?xml version="1.0"?>  Documentos válidos x bem-formados
  33. 33. XSL Extensible Stylesheet Language
  34. 34. Definição de XSL  XSL: Extensible Stylesheet Language  Transforma o XML adicionando folhas de estilo a ele  Usa linguagem de transformação e de formatação  XSL  É um conjunto de recomendações para definir a transformação e a apresentação de um documento XML
  35. 35. Transformação do XML  Reorganiza o conteúdo  Adicionando  Movendo ou  Excluindo elementos  XSL  Associa regras de formatação aos elementos
  36. 36. Folhas de Estilo  Arquivos que descrevem a formatação de documentos XML  Consistem em:  XPATH  Transformações ou XSLT  XSL-FO
  37. 37. Comparação  CSS  Folhas de estilo para apresentar conteúdo HML  XSL  Folhas de estilo para apresentar conteúdo XML
  38. 38. X-PATH
  39. 39. XPATH  Sintaxe para navegar por conteúdo XML  Possui uma biblioteca de funções padrão  É o principal elemento de XSLT  É um recomendação da W3C
  40. 40. XPATH  Linguagem para acesso ao conteúdo de um documento XML  Manipula strings, números, booleanos  Navega pela estrutura hierárquica de um documento XML  Classifica os nós em 5 tipos  Pai, filho, irmão, ancestral e descendente
  41. 41. Nós em XPATH  São de 7 tipos diferentes  Elemento  Atributo  Texto  Namespaces  Instruções de processamento  Comentários  Raiz  Documentos XML são sempre tratados como árvores
  42. 42. Nós em XPATH  Valores Atômicos  São nós sem filhos ou sem pais  Ex: <nome>Maria</nome>  Nós Pais  Todo elemento e atributo possui um pai  Filhos  Elementos podem ter zero, um ou mais filhos
  43. 43. Nós em XPATH  Irmãos  Nós com o mesmo pai  Nó Ancestral  O pai, ou avó ... de um nó  Nós Descendentes  Os filhos, ou netos ... de um nó
  44. 44. Expressões em XPATH  São utilizadas para  Selecionar nós e conjuntos de nós em um documento XML  Sua sintaxe é similar à de navegação por sistemas de arquivos
  45. 45. Expressões em XPATH seleciona os atributos do nó@ seleciona o pai do nó atual.. seleciona o nó atual. seleciona nós do documento a partir do nó atual// seleciona do nó raiz/ seleciona todos os nós filhos do nó correspondentenome do nó DescriçãoExpressão
  46. 46. Exemplos de expressões XPATH todos os elementos telefone que tenham um atributo tipo de valor celular //telefone[@tipo='celular'] o primeiro elemento nome que é filho de agenda /agenda/nome[1] todos os elementos telefone que tenham um atributo tipo //telefone[@tipo] os dois primeiros elemento nome que é filho de agenda /agenda/nome[position() < 3] o penúltimo elemento nome que é filho de agenda /agenda/nome[last() - 1] o último elemento nome que é filho de agenda /agenda/nome[last()] o primeiro elemento nome que é filho de agenda /agenda/nome[1] SeleçãoExpressão
  47. 47. Expressões Genéricas  *  Seleciona qualquer elemento  @*  Seleciona qualquer atributo de qualquer elemento  node()  Seleciona qualquer nó de qualquer tipo  |  Seleciona mais de um caminho  Ex://agenda/nome | //agenda/telefone
  48. 48. Eixos em XPATH  Definem um conjunto de nós relativos todos os atributos do nó atualattribute todos os filhos do nó atualchild e ele própriodescendant-or-self todos os descendentesdescendant e ele próprioancestor-or-self todos os ancestraisancestor
  49. 49. Eixos em XPATH  Definem um conjunto de nós relativos todos os nós de namespaces do nó atualnamespace todos os filhos do nó atualchild tudo no documento que está antes do nó atual preceding o pai do nó atualparent todos os irmão após o nó atualfollowing-sibling tudo no documento que vier na sequência do nó atual following
  50. 50. Operadores em XPATH divisãodiv subtração- igual= multiplicação* adição+ processa dois conjuntos de nós|
  51. 51. Operadores em XPATH maior que> menor ou igual a<= maior ou igual a>= menor que< diferente!=
  52. 52. Operadores em XPATH módulo (resto da divisão)mod eand ouor
  53. 53. Expressão de local  Um caminho de localização pode ser  Absoluto ou  Relativo  Caminhos absolutos são iniciados por um barra  /nome  Caminhos relativos não  nome
  54. 54. Funções Padrão  XPATH possui uma biblioteca com mais de 100 funções padrão para  Comparação de strings, valores numéricos, booleanos, e tempo  Manipulação de nós e de sequências  XPATH é usada em XSLT
  55. 55. Considerações Importantes  XSL  Transforma os elementos usando XSLT  Formata os elementos usando XSL-FO  XPATH  Linguagem para seleção e manipulação de nós XML
  56. 56. Considerações Finais  XML é uma linguagem dependente, portanto é necessário  XSD para validar um documento (ou DTD)  XSL para transformar e formatar  XPATH para navegar pelo documento fonte
  57. 57. Referências [XPath, 1999] Definição de XPath disponível em: http ://www.w3.org/TR/xpath [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

×