aplicando transformação em xml usando xslt e xsl-fo - 1

Post on 21-Dec-2014

262 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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 &lt;

aspas duplas"&quot;

apóstrofe'&apos;

e comercial&&amp;

maior>&gt;

menor<&lt;

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/

top related