Upload
vivian-motti
View
262
Download
0
Embed Size (px)
DESCRIPTION
Minicurso em 4 módulos apresentado durante o ERBASE em 2009.
Citation preview
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
Objetivo do Curso Apresentar
XML com exemplos Transformações
• XPATH• XSLT• XSL-FO
Aplicações Considerações sobre a linguagem
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)
XML: Sumário Origem Definição Aplicação Vantagens x Limitações Conceitos Fundamentais
Terminologia Sintaxe Estrutura Hierárquica
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
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
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
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
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
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
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
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
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
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
Terminologia Referências a entidades
Caracteres reservados como < devem ser substituídos por um equivalente <
aspas duplas""
apóstrofe''
e comercial&&
maior>>
menor<<
Terminologia Comentários
<!– iguais em HTML --> Um documento XML é composto por
elementos Elementos podem conter
Texto (conteúdo) Outros elementos Ambos Atributos
Elementos Simples
Sem atributos Sem filhos
Complexos Têm ao menos um atributo Ou um filho
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>
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
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>
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
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
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
Vantagens Buscas facilitadas
Pela semântica no armazenamento dos dados
Múltiplas formas de apresentação Compressão
Devido à natureza repetitiva das tags
Desvantagens Informações repetidas Linguagem verbosa Dependente Não tem suporte a tipos de dados
Limitações XML é informação pura em tags
auto-descritivas São necessários outros documentos
para• Enviar• Receber ou• Apresentar a informação
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
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
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>
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>
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
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
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
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
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>
DTD<!DOCTYPE recado[<!ELEMENT recado ( para,de,assunto,mensagem)><!ELEMENT para(#PCDATA)><!ELEMENT de (#PCDATA)><!ELEMENT assunto (#PCDATA)><!ELEMENT mensagem (#PCDATA)>]>
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
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*)>
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)*>
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
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>
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
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
DTD Permite 5 itens em um documento
XML Elementos Atributos Entidades PCDATA (parsed character data) CDATA (character data)
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
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
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>
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
XSD (XML Schema Definition) Declaração dos elementos Declaração dos atributos Tipos de dados
44 possíveis Grupos de modelos
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
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
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
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/