Transcript
Page 1: Aplicando Transformação em XML usando XSLT e XSL-FO - 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Terminologia Referências a entidades

Caracteres reservados como < devem ser substituídos por um equivalente &lt;

aspas duplas"&quot;

apóstrofe'&apos;

e comercial&&amp;

maior>&gt;

menor<&lt;

Page 16: Aplicando Transformação em XML usando XSLT e XSL-FO - 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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/


Top Related