aplicando transformação em xml usando xslt e xsl-fo - 1
DESCRIPTION
Minicurso em 4 módulos apresentado durante o ERBASE em 2009.TRANSCRIPT
![Page 1: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/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 - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/2.jpg)
Objetivo do Curso Apresentar
XML com exemplos Transformações
• XPATH• XSLT• XSL-FO
Aplicações Considerações sobre a linguagem
![Page 3: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/3.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 4: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/4.jpg)
XML: Sumário Origem Definição Aplicação Vantagens x Limitações Conceitos Fundamentais
Terminologia Sintaxe Estrutura Hierárquica
![Page 5: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/5.jpg)
Origem SGML
Standard Generalized Markup Language Linguagem Padronizada de Marcação
Genérica Permite descrever diversos tipos de dados Facilita o compartilhamento de informações
via Internet Poderosa mas complexa
![Page 6: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/6.jpg)
Definição XML: Extensible Markup Language Linguagem de Marcação padrão
Descreve Armazena Transporta Manipula
• Dados estruturados
Recomendação da W3C• Em 10 de fevereiro de 1998
![Page 7: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/7.jpg)
Objetivos Manter a flexibilidade da SGML E a simplicidade do HTML
Separação de conteúdo e apresentação Legibilidade Criação de tags Estruturação semântica de informação Portabilidade
![Page 8: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/8.jpg)
Aplicação Criação de documentos estruturados
Criação de linguagens Textos formatados Imagens vetoriais Banco de Dados Fórmulas Químicas Equações Matemáticas
![Page 9: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/9.jpg)
Diferenças HTML x XML XML não substitui HTML
XML • Transporta dados• XML armazena dados• XML descreve dados
HTML• Formata e apresenta dados
São complementares
![Page 10: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/10.jpg)
Exemplo de Documento
<?xml version="1.0" encoding="ISO-8859-1"?><recado> <para>João</para> <de>Maria</de> <assunto>Aviso</assunto> <mensagem>Sua mãe ligou.</mensagem></recado>
Elementos: declaração e tipo de codificação do XML, raiz e filhos
![Page 11: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/11.jpg)
Codificação Para evitar erros com documentos XML que
têm caracteres especiais é necessário Especificar a codificação adequada Ou salvar o arquivo como unicode (double bit
unicode ou UTF-16) Tipos de Codificação
Windows-1252 ISO-88-59-1 UTF-8 Não recomendadas para caracteres não ASCII
![Page 12: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/12.jpg)
Codificação Recomendações
Sempre coloque o atributo encoding Use um editor que suporte codificação Certifique-se qual a codificação usada pelo
editor Utilize a mesma codificação do editor no
atributo do arquivo
![Page 13: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/13.jpg)
Estrutura Hierárquica Aninhamento em Árvore Todo documento deve ter raiz (pai
dos elementos restantes)
livro
título autor assunto
nó pai
filhos
irmãos
preço
moeda
atributo
![Page 14: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/14.jpg)
Regras de Sintaxe Simples e Lógicas
Todo elemento possui uma tag de fechamento: <nome>Maria</nome> • Exceto a declaração do XML
As tags são sensíveis à capitalização O aninhamento deve estar correto Todo documento tem nó raiz Valores de atributos devem estar entre
aspas
![Page 15: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/15.jpg)
Terminologia Referências a entidades
Caracteres reservados como < devem ser substituídos por um equivalente <
aspas duplas""
apóstrofe''
e comercial&&
maior>>
menor<<
![Page 16: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/16.jpg)
Terminologia Comentários
<!– iguais em HTML --> Um documento XML é composto por
elementos Elementos podem conter
Texto (conteúdo) Outros elementos Ambos Atributos
![Page 17: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/17.jpg)
Elementos Simples
Sem atributos Sem filhos
Complexos Têm ao menos um atributo Ou um filho
![Page 18: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/18.jpg)
Atributo Provê informação adicional sobre um
elemento Informações que não sejam parte do
dado Irrelevantes ao dado Mas importantes para manipular o
elemento<arquivo formato="gif">logo.gif</arquivo>
![Page 19: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/19.jpg)
Elementos x Atributos Atributos detalham informação
sobre o elemento <preço moeda="R$">30,00</preço>
Todo valor de atributo deve estar entre aspas Simples ou duplas
Não existem regras de uso, mas recomendações
![Page 20: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/20.jpg)
Elementos x Atributos Atributos
• Não podem ter múltiplos valores• Não possuem estrutura em árvore• Não são facilmente expandidos• São mais difíceis para ler
Portanto Use elementos para dados E atributos para informações menos relevantes
Exemplo: <recado id="01">...</recado>
![Page 21: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/21.jpg)
Tags Regras de nomes
Contêm letras, números e outros caracteres
Não começam com números nem pontuação
Não começam com XML (nem Xml, xml...)
Não contêm espaços Não há palavras reservadas
![Page 22: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/22.jpg)
Boas Práticas Nomes devem ser descritivos Curtos e simples Evitar hífens (sinal de subtração) Evitar ponto (propriedades de objeto) Evitar dois pontos (reservados para
namespaces) Acentos podem ser usados, mas nem
todos os softwares têm suporte a eles
![Page 23: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/23.jpg)
Vantagens O próprio autor define as tags
E a estrutura do documento (que é extensível)
Separação do conteúdo e da apresentação
Dados armazenados em formato texto Independente de hardware e software Permite transporte e compartilhamento
![Page 24: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/24.jpg)
Vantagens Buscas facilitadas
Pela semântica no armazenamento dos dados
Múltiplas formas de apresentação Compressão
Devido à natureza repetitiva das tags
![Page 25: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/25.jpg)
Desvantagens Informações repetidas Linguagem verbosa Dependente Não tem suporte a tipos de dados
![Page 26: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/26.jpg)
Limitações XML é informação pura em tags
auto-descritivas São necessários outros documentos
para• Enviar• Receber ou• Apresentar a informação
![Page 27: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/27.jpg)
Namespaces Permitem que elementos e atributos
sejam únicos Para cada vocabulário é criado um
namespace Resolve a ambiguidade entre elementos
e atributos com mesmo nome mas semântica diferentes
![Page 28: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/28.jpg)
Namespaces Qualificam nomes de elementos e
atributos do XML São identificados por referências URI Nome expandido
Nome do namespace + nome local Um nome qualificado está sujeito à
interpretação por namespace Pré-fixado ou não-pré-fixado
![Page 29: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/29.jpg)
Namespaces
<?xml version="1.0" encoding="UTF-16"?><livro> <nome>Introdução à XML</nome> <editora>O'Reilly</editora> <tipo>Técnico</tipo> <tipo>Impresso</tipo></livro>
![Page 30: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/30.jpg)
Namespaces
<?xml version="1.0" encoding="ISO-8859-1"?><livro xlmns:midia="http://www.modos.org"> <nome>Introdução à XML</nome> <editora>O'Reilly</editora> <tipo>Técnico</tipo> <midia:tipo>Impresso</tipo></livro>
![Page 31: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/31.jpg)
Documentos Bem-Formados Iniciam com a declaração do XML Obedecem à sintaxe do XML
Têm um único elemento raiz Todo elemento tem tag de fechamento Tags são sensíveis à capitalização Elementos são aninhados corretamente Valores de atributos entre aspas (' ou ") Usam entidades para caracteres especiais
![Page 32: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/32.jpg)
Editores XML Para criação, edição, validação,
documentação, visualização e debug de documentos XML Xeena Oxygen XMLSpy
Versão gratuita para teste
![Page 33: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/33.jpg)
Validação Além de bem-formado o documento
XML deve estar de acordo com regras do DTD Document Type Definition Define a estrutura e os elementos do
documento XML Ao invés do DTD, pode-se usar um
Schema
![Page 34: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/34.jpg)
Validação Um documento válido foi verificado
Sua estrutura, seus elementos e seus atributos estão consistentes com as declarações
Declaração de Tipo de Documento DTD
Schema
![Page 35: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/35.jpg)
Documento XML
<?xml version="1.0" encoding="UTF-16"?><recado> <para>João</para> <de>Maria</de> <assunto>Aviso</assunto> <mensagem>Sua mãe ligou.</mensagem></recado>
![Page 36: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/36.jpg)
DTD<!DOCTYPE recado[<!ELEMENT recado ( para,de,assunto,mensagem)><!ELEMENT para(#PCDATA)><!ELEMENT de (#PCDATA)><!ELEMENT assunto (#PCDATA)><!ELEMENT mensagem (#PCDATA)>]>
![Page 37: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/37.jpg)
DTD !DOCTYPE define o elemento raiz
recado !ELEMENT recado
Define que o elemento recado é composto por 4 elementos nesta ordem
!ELEMENT de (#PCDATA) Define que o elemento de é do tipo
caractere
![Page 38: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/38.jpg)
Declarações DTD Elementos vazios
<!ELEMENT br EMPTY> Elementos compostos
<!ELEMENT recado (para,de,assunto,mensagem)> No mínimo 1 ocorrência
<!ELEMENT recado (para+)> Zero ou mais ocorrências
<!ELEMENT recado (assunto*)>
![Page 39: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/39.jpg)
Declarações DTD Zero ou uma ocorrência
<!ELEMENT recado (assunto?)> Alternativa
<!ELEMENT recado(de,para,assunto,(msg|img))> Conteúdo misto
<!ELEMENT recado(#PCDATA|de|para|assunto)*>
![Page 40: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/40.jpg)
Declaração de atributos<!ATTLIST pagamento tipo CDATA "cheque"> Tipos possíveis
CDATA: caractere (1|2|3...): lista enumerada ID: identificador único
Valor Padrão #REQUIRED: não pode ser vazio #IMPLIED: pode ser vazio #FIXED valor: define uma constante
![Page 41: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/41.jpg)
Entidades São variáveis que definem
constantes, abreviações para textos ou caracteres especiais
No DTD <!ENTITY max "100"> <!ENTITY min "5">
No XML <de>&min;</de> <ate>&max;</ate>
![Page 42: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/42.jpg)
DTD Document Type Definition Define a estrutura de um documento
XML Verifica se a estrutura de um
documento XML está válida Pode ser declarado dentro ou como
uma referência externa em um documento XML
![Page 43: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/43.jpg)
Associando o DTD
Como referência externa No documento original Após a declaração do xml <!DOCTYPE recado SYSTEM "recado.dtd">
Interno ao documento XML original Após declaração do XML Antes do conteúdo XML
![Page 44: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/44.jpg)
DTD Permite 5 itens em um documento
XML Elementos Atributos Entidades PCDATA (parsed character data) CDATA (character data)
![Page 45: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/45.jpg)
PCDATA x CDATA PCDATA
As tags são tratadas como marcação As entidades são expandidas
CDATA O texto não será analisado pelo parser
do XML
![Page 46: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/46.jpg)
DTD Valida o XML Limitado
Todos os dados são interpretados como texto
Não tem suporte a namespaces Exigem sequência fixa dos elementos
![Page 47: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/47.jpg)
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>
![Page 48: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/48.jpg)
XSD (XML Schema Definition) Esquemas
Baseados em XML Definem regras de validação São uma alternativa ao DTD Definem a estrutura de um documento XML Recomendação da W3C desde 2001 Permitem construir tipos de dados próprios E relacionamentos entre elementos
![Page 49: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/49.jpg)
XSD (XML Schema Definition) Declaração dos elementos Declaração dos atributos Tipos de dados
44 possíveis Grupos de modelos
![Page 50: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/50.jpg)
Schemas Definem
Elementos e atributos possíveis Relação entre elementos Ordem dos elementos filhos Quantidade de elementos filhos Elementos vazios Tipos de dados para elementos e atributos Valores padrão e fixo
![Page 51: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/51.jpg)
Schemas x DTD Schemas são extensíveis Fornecem mais opções São escritos em XML Têm suporte a
Tipos de dados Namespaces
![Page 52: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/52.jpg)
Considerações Finais XML permite
Buscas mais precisas Apresentações diferentes de um mesmo
documento Transferência de dados Tornar documentos mais acessíveis
Aplicações em diferentes domínios
![Page 53: Aplicando Transformação em XML usando XSLT e XSL-FO - 1](https://reader033.vdocuments.mx/reader033/viewer/2022051818/549a1f77b4795927538b4d06/html5/thumbnails/53.jpg)
Referências
DTD: http://www.w3schools.com/DTD/dtd_examples.asp XSD: http://www.w3.org/XML/Schema XML: http://www.slideshare.net/yht4ever/introduction-to-xml?
src=related_normal&rel=86621 XSD: http://www.w3.org/TR/xmlschema-2/ Namespaces: http://www.w3.org/TR/REC-xml-names/