88
XML a promessa, e a esperança ... José Carlos L. Ramalho [email protected] gEPL - DI - UM

XML a promessa, e a esperança... José Carlos L. Ramalho [email protected] gEPL - DI - UM

Embed Size (px)

Citation preview

Page 1: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XMLa promessa,

e a esperança ...

José Carlos L. Ramalho

[email protected]

gEPL - DI - UM

Page 2: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

O Velho ...O Mais Usado ...

O Novo ...

José Carlos L. Ramalho

[email protected]

gEPL - DI - UM

Page 3: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 3

Conteúdos

A obra prima

O que toda gente tem ...e a que está sempre aapontar defeitos ...

O que todos desejam ...Muitas vezes sem saber bemcomo, porquê e o quê.

Page 4: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 4

Conteúdos(2)

A obra prima

O que toda gente tem ...e aponta defeitos ...

O que todos desejam ...Muitas vezes sem saber bemcomo, porquê e o quê.

Page 5: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 5

Conteúdos ("the real thing")• Anotação

– O que é? Anotar para quê?

• SGML - a história e o passado– ciclo de vida dos documentos

• A Evolução forçada pela Web– HTML e SGML: Web SGML

• XML– Conceitos– Ciclo de vida e Aplicações

Page 6: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 6

O que é um documento?

• uma imagem• uma sequência de palavras• informação estruturada• um ser vivo (não no nosso caso)

Dublin Core - "Metadata Workshop"

Page 7: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 7

O que é que fazemos com eles?

• Eu quero imprimir o meu relatório• O meu chefe quer pô-lo na Internet (WWW)• O meu colega quer refazer alguns dos cálculos na folha de cálculo• Todos querem que fique seguramente arquivado

Começa a surgir um probema ...

Page 8: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 8

Que "suportes" utilizamos?

• Eu utilizo o LaTeX na minha NeXT• O meu colega usa o MSWinWord no seu PC• O nosso chefe ainda usa o WordPerfect no DOS• As nossas secretárias utilizam o Word no MacIntosh• Ainda há alguém no departamento a usar o troff

Temos um problema!!!

Page 9: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 9

O Problema:

O que é que necessitamos?

O que é que o mercado oferece?

Um suporte neutro para a nossa informaçãoIndependente de plataformas SW e HW

StandardGeneralized

MarkupLanguage

SGML

Page 10: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 10

Motivação• Maioria da informação em suporte digital:

tradicionalmente em MSWord, Wordperfect, Access, Excel, Acrobat.

• Transferência e manipulação de documentos entre plataformas dispendiosa

• Manutenção difícil implica uma baixa longevidade

• Normalização muito difícil

• Custos de distribuição podem ser altos

• A migração para a nova tecnologia que se vai apresentar pode não ser uma opção!...

Page 11: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 11

SGML: O que é?• Uma linguagem para definir linguagens

específicas de anotação: SMDL, HTML, EAD, DocBook, TEI.

• É independente do suporte (HW e SW).– Implica a separação do conteúdo e da forma.

• É um standard ISO– ideal para armazenamento e intercâmbio

Page 12: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 12

O que é a Anotação dum texto?

Um meio de tornar explícita uma interpretação desse texto.

Exemplo1: sinais de pontuaçãoOlá. Tudo bem.Olá! Tudo bem?

Exemplo2: anotações"O rei <nome>Afonso Henriques</nome>queria ..."

Page 13: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 13

Anotar um documento• A tarefa de anotar um documento num

sistema de processamento compreende as seguintes fases:– analisar a estrutura da informação e os

atributos que a caracterizam– determinar quais as funções de proces-

samento que produzirão o formato desejado para cada elemento

– inserir as etiquetas/anotações no texto

Page 14: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 14

Pausa para pensar• Exercício: anotar o poema

• Exercício: anotar o jornal

• Exercíco: anotar página de livro

Page 15: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 15

O Poema"Soneto Já Antigo"

(Álvaro de Campos)

Olha, Daisy: quando eu morrer tu hás-de

dizer aos meus amigos aí de Londres,

embora não o sintas, que tu escondes

a grande dor da minha morte. Irás de

Londres p'ra Iorque, onde nasceste (dizes

que eu nada que tu digas acredito),

contar àquele pobre rapazito

que me deu horas tão felizes,

em bora não o saibas, que morri...

Mesmo ele, a quem eu tanto julguei amar,

nada se importará... Depois vai dar

a notícia a essa estranha Cecily

que acreditava que eu seria grande...

Raios partam a vida e quem lá ande!

(1922)

Poema: título, autor, corpo, dataCorpo: quadra, quadra, terno,

terno.Quadra: verso, verso, verso,

versoTerno: verso, verso, versoVerso: (texto | nome)+Nome: texto

Page 16: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 16

Tipos de Anotação

Procedimental - define qual o processamento a ser realizado em determinados pontos do documento.

Caros senhores,.esp_vert 4Escrevo-vos a ... items:.indent 41. Qual a qualificação necessária.indent 42. Datas....esp_vert 4Obrigado

Page 17: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 17

Tipos de Anotação 2 (cont.)

Descritiva - utiliza etiquetas para apenas classificar as componentes do documento.

<abre>Caros senhores,</abre><corpo>Escrevo-vos a ... items:<listan><item> Qual a qualificação necessária<item> Datas</listan>...</corpo><fecha>Obrigado</fecha>

Page 18: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 18

Funções da Anotação• representar todos os caracteres de um

texto

• identificar a estrutura do texto

• reduzir o texto a uma ordem linear (árvore)

• representar informação contextual

• distinguir o que é texto do que é anotação

Page 19: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 19

Linguagem de Anotação• Especifica como distinguir a anotação do

texto

• Especifica que anotações são necessárias e quais são permitidas

• Especifica onde as anotações são neces-sárias e onde são permitidas

• Define o significado da anotação

O SGML tem estas características todas ... excepto a última

Page 20: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 20

Documentos• Tradicionalmente: um bloco indivisível

• Nesta abordagem: uma estrutura

Page 21: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 21

Documentação Estruturada• Vantagens (c/ anotação descritiva)

– Portabilidade e intercâmbio entre plataformas

– reutilização– armazenamento e consulta– baixos custos de distribuição– manutenção e acesso– longevidade– reconfiguração do aspecto visual

Page 22: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 22

Documentação Estruturada• Desvantagens

– grande investimento inicial• capital

• tempo

– o XML veio aligeirar estes parâmetros...

Page 23: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 23

SGML: premissa heurística• Os documentos têm estrutura que se quer

preservar e manipular:– na sua criação– no seu processamento– na sua interrogação (=> armazenamento)

• Select EXCERTO with NOME=“Ana*”

• Select TITULO with parent EXCERTO

Page 24: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 24

BD

Doc. SGML Válido

SGML: Ciclo de vida

DTD

Design Edição

Validação

OK / erros

Doc. SGML

Doc. SGMLVálido

FormataçãoTransformação

OUTPUTEditor Editor

Parser

Processador

EspecificaçãoEstilo

Armazenamento

Page 25: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 25

SGML: conceitos element - definição de tipo de um obje-

cto, componente estrutural do documento attribute - propriedade de um elemento entity - "stream" de dados notation - notação/formato externo document type - conjunto de objectos e

entidades, semelhante a uma gramática ou esquema de base de dados

Page 26: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 26

novela série de episódios televisivos, inventada no Brasil.

Os documentos têm estrutura!Uma definição contém um termo técnico

seguido dum texto descritivo

definição

texto descritivo

termo técnico

<!ELEMENT definicao - - (termo, descricao)><!ELEMENT definicao - - (termo, descricao)>

Page 27: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 27

. . .

cap .1

cab eça lh o p ará g ra fo

p ará g ra fo lis ta ...

secçã o 1

cap .2

...

cap .3

p arte 1

...

p a rte 2

livro

. . .

cap .1

cab eça lh o p ará g ra fo

p ará g ra fo lis ta ...

secçã o 1

cap .2

...

cap .3

p arte 1

...

p a rte 2

livro

O texto forma uma hierarquia ordenada

Page 28: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 28

Indicadores de estruturano texto...• espaço, fontes diferentes, gráficos...

• derivados da semântica: nomes, datas, lugares, ...

em SGML...• delimitadores explícitos

• inferida do contexto

Page 29: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 29

SGML: exemplo

<lista> <cabec>Os delimitadores podem ser: </cabec> <item> explícitos <item> inferidos do contexto</lista>

<lista> <cabec>Os delimitadores podem ser: </cabec> <item> explícitos <item> inferidos do contexto</lista>

O elemento do tipo LISTA é formado por um

elemento CABEC, seguido por dois elementos do

tipo ITEM.

Page 30: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 30

Ocorrência de um elemento

<lista>

<cabec> em SGML... <item> delimitadores explícitos <item> inferidos do contexto </lista>

etiqueta de inícioetiqueta de início

etiqueta de fimetiqueta de fim

No meio fica o CONTEÙDO do

elemento

Page 31: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 31

<!ELEMENT lista - - (cabec,item+) ><!ELEMENT item - o (#PCDATA) > <!ELEMENT lista - - (cabec,item+) ><!ELEMENT item - o (#PCDATA) >

Definição de um elemento

nome do elemento (GI)nome do elemento (GI)

definição do conteúdodefinição do conteúdo

omissãoomissão

Page 32: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 32

Definição do CONTEÚDO• outros elementos especificados

• ANY (qq elemento especificado)• EMPTY (nada, vazio)

• #PCDATA (texto)• uma mistura de elementos com #PCDATA

Page 33: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 33

Expressão de Conteúdo: sintaxe• sequência

a,b a seguido de b

a|b a ou b mas não ambos

a&b equivalente a (a,b) | (b,a)

• ocorrênciaa um e apenas um

a? opcionalmente um (0 ou 1)

a* zero ou mais

a+ um ou mais

Page 34: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 34

<lista tipo=bola id=L123> <item id=L123.1> delimitadores explícitos <item id=L123.2> inferidos do contexto </lista>

<lista tipo=bola id=L123> <item id=L123.1> delimitadores explícitos <item id=L123.2> inferidos do contexto </lista>

Um elemento pode ter atributos• para conter informação para além do tipo e do

contexto

• para identificação de ocorrências específicas de elementos

• para fazer algumas validações (poucas)

nome do atributonome do atributo valor do atributovalor do atributo

Page 35: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 35

Definição de um atributo

os identificadores de nomes e tipos devem ser únicos dentro dum elemento

<!ATTLIST lista id ID #IMPLIED tipo (simplea|bola) bola >

<!ATTLIST lista id ID #IMPLIED tipo (simplea|bola) bola >

nomenome tipotipo valor por defeitovalor por defeito

Page 36: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 36

Tipos de atributo

• ID um identificador único dentro o documento actual

• IDREF referência a um identificador definido algures no documento corrente

• CDATA texto

• NAME, NUMBER, NMTOKEN

• ENTITY o nome duma entidade definida no documento corrente

• uma enumeração/lista de valores específicos (não pode haver repetições na lista)

Page 37: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 37

Valores possíveis• #REQUIRED (obrigatório)

• #CURRENT (herdado da última utilização)

• #IMPLIED (opcional)

• valor explícito

Page 38: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 38

Instruções de Processamento• Indicações para processadores externos

<?xml version="1.0" encoding="ISO-8859-1"?>

<?Tex \newpage?>

<?HTML <HR>?>

Page 39: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 39

Notações

• Apenas se podem declarar

• Permitem suportar dados não-SGML

<!NOTATION TeX SYSTEM ""><!NOTATION GIF SYSTEM ""><!NOTATION TeX SYSTEM ""><!NOTATION GIF SYSTEM "">

Page 40: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 40

Secções Marcadas• Úteis para incluir exemplos de SGML

• E para processamentos condicionais

<![ CDATA [The <p> tag is used for paragraphs]]>

<![ CDATA [The <p> tag is used for paragraphs]]>

<!ENTITY % RTF "INCLUDE"><!ENTITY % HTML "IGNORE">

<![ %RTF; [%my-wmf;]]>

<![ %HTML; [%my-gif;]]>

<!ENTITY % RTF "INCLUDE"><!ENTITY % HTML "IGNORE">

<![ %RTF; [%my-wmf;]]>

<![ %HTML; [%my-gif;]]>

Page 41: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 41

Tipos de Entidade• geral

– apenas usada no documento– a sua expansão está definida no DTD

• externa– apenas usada no documento– a sua expansão é o identificador dum objecto

externo• paramétrica

– apenas usada no DTD– a expansão pode ser qq coisa

Page 42: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 42

Entidades GeraisUtilização: abreviaturas, caracteres especiais e símbolos etc.

Exemplo:

Definição:

Isto devia ser um curso de &xml;

dado pelo Jos&eacute; Carlos

Isto devia ser um curso de &xml;

dado pelo Jos&eacute; Carlos

<!ENTITY xml "eXtended Markup Language"><!ENTITY eacute "é" ><!ENTITY eacute “&#132” ><!ENTITY eacute SDATA “[eacute]”>

<!ENTITY xml "eXtended Markup Language"><!ENTITY eacute "é" ><!ENTITY eacute “&#132” ><!ENTITY eacute SDATA “[eacute]”>

Page 43: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 43

Entidades externasUtilização: incluir ou referenciar um ou mais objectos

externos (ficheiros, imagens)

Exemplo:

Definição:

&chap1; &chap1fig; <!-- preciso escrever chap 2 --> <p>Eis uma referência para <xref doc=myHome>a minha home page</xref>

&chap1; &chap1fig; <!-- preciso escrever chap 2 --> <p>Eis uma referência para <xref doc=myHome>a minha home page</xref>

<!ENTITY chap1 SYSTEM “chap1.sgm”><!ENTITY chap1fig SYSTEM “gifs/chap1fig.jpg” NDATA JPG><!ENTITY myHome SYSTEM "http://orunner.di.uminho.pt/~jcr" NDATA HTML>

<!ENTITY chap1 SYSTEM “chap1.sgm”><!ENTITY chap1fig SYSTEM “gifs/chap1fig.jpg” NDATA JPG><!ENTITY myHome SYSTEM "http://orunner.di.uminho.pt/~jcr" NDATA HTML>

Page 44: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 44

Entidades paramétricasUtilização: parametrização de declarações e control

de secções marcadasExemplo:

Definição:<!ENTITY % ISOLat1 PUBLIC “ISO 8879-1986//ENTITIES Added Latin 1//EN”><!ENTITY % a.glob “ident ID #IMPLIED”><!ENTITY % HTML “INCLUDE”>

<!ENTITY % ISOLat1 PUBLIC “ISO 8879-1986//ENTITIES Added Latin 1//EN”><!ENTITY % a.glob “ident ID #IMPLIED”><!ENTITY % HTML “INCLUDE”>

%ISOLat1;

<!ATTLIST exemplo %a.glob>

<![ %HTML [ ...

]]>

%ISOLat1;

<!ATTLIST exemplo %a.glob>

<![ %HTML [ ...

]]>

Page 45: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 45

Juntando as peçasUm documento SGML compreende:

• uma declaração SGML

• um DTD

• a instância do documento

Page 46: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 46

A declaração SGML• especifica o dialecto SGML que irá ser

utilizado– tamanho dos nomes e outros limites

• especifica a utilização de características opcionais do SGML

• especifica a tabela de caracteres e a sintaxe concreta utilizada

• a declaração por defeito é normalmente suficiente quando a língua é o inglês

Page 47: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 47

Exemplo: a decl. do DocBook

•Carregar o ficheiro DocBook no PFE

Page 48: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 48

A Declaração do Tipo de Documento• contém as declarações para

– elementos, atributos, entidades

• define uma hierarquia única de elementos

• é normalmente invocada por referência

• pode ser modificada por um subset do DTD

Page 49: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 49

Alguns exemplos

<!DOCTYPE poema PUBLIC “-//jcr//DTD poema 1.0”><!DOCTYPE poema PUBLIC “-//jcr//DTD poema 1.0”>

<!DOCTYPE poema [<!ELEMENT poema - o (quadra+)><!ELEMENT quadra - o (#PCDATA)>]>

<!DOCTYPE poema [<!ELEMENT poema - o (quadra+)><!ELEMENT quadra - o (#PCDATA)>]>

<!DOCTYPE poema SYSTEM “poema.dtd” [...]><!DOCTYPE poema SYSTEM “poema.dtd” [...]>

Page 50: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 50

Declarações múltiplasPara elementos

– não é permitida

Para entidades– é permitido: a primeira é que prevalece– a declaração tem que preceder o uso

Page 51: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 51

Processamento Condicionalno dtd

na parametrização do dtd

<!ENTITY % my-gifs “IGNORE”><!ENTITY % my-wmfs “IGNORE”><![ %my-gifs [<!-- imagens para o HTML -->]]><![ %my-wmfs [<!-- imagens para RTF, PDF, MIF -->]]>

<!ENTITY % my-gifs “IGNORE”><!ENTITY % my-wmfs “IGNORE”><![ %my-gifs [<!-- imagens para o HTML -->]]><![ %my-wmfs [<!-- imagens para RTF, PDF, MIF -->]]>

<!ENTITY % my-wmfs “INCLUDE”><!ENTITY % my-wmfs “INCLUDE”>

Page 52: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

52XML - jcr - Salvador - 1999.11.23

A estrutura do nosso poema

P oem a

títu lo au to r

verso verso verso verso

q u ad ra

...

q u ad ra

verso verso verso

te rn o

...

te rn o

corp o d a ta

son eto

Page 53: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 53

Definição: DTD<!-- declarações para os elementos --><!ELEMENT poema - - (titulo, autor, corpo, data) ><!ELEMENT titulo - - (#PCDATA)><!ELEMENT autor - - (#PCDATA)><!ELEMENT corpo - - ((quadra|terno)+)><!ELEMENT quadra) - - (verso, verso, verso, verso)><!ELEMENT terno - - (verso, verso, verso)><!ELEMENT verso - - (#PCDATA|nome)+><!ELEMENT nome - - (#PCDATA)><!ELEMENT data - - (#PCDATA)>

Se poema fosse soneto:<!ELEMENT corpo - - (quadra, quadra, terno, terno)>

Page 54: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

54XML - jcr - Salvador - 1999.11.23

<poema><titulo>Soneto Já Antigo</titulo>

<autor>Álvaro de Campos</autor>

<quadra>

<verso>Olha,<nome> Daisy</nome>: quando eu morrer tu hás-de</verso>

<verso>dizer aos meus amigos aí de <nome>Londres</nome>,</verso>

<verso>embora não o sintas, que tu escondes</verso>

<verso>a grande dor da minha morte. Irás de</verso>

</quadra><quadra>

<verso><nome>Londres</nome> p'ra <nome>Iorque</nome>, onde nasceste (dizes</verso>

<verso>que eu nada que tu digas acredito),</verso>

<verso>contar àquele pobre rapazito</verso>

<verso>que me deu horas tão felizes,</verso>

</quadra><terno>

<verso>em bora não o saibas, que morri...</verso>

...</terno>

<data>1922</data></poema>

Poema anotado

Page 55: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 55

software SGML• parsers: NSGMLS, SP

– validam um DTD– verificam se um documento está de acordo com o DTD– devolvem como output o documento em formato esis

• editores: AuthorEditor,Emacs,Adept,...– usam o DTD para controlar a edição do texto

• tradutores: Omnimark, Balise, Perl– up/down translation entre SGML e outro formato

• motores IR: InfoManager, Altavista, ...– utilisam a estrutura do SGML para optimizar as

procuras

Page 56: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 56

Até ao SGML ...• A ideia de que a documentação estruturada podia ser

trocada e manipulada se fosse produzida de uma forma standard vem dos anos 60:– GCA GenCode

– IBM GML

• Em 1980 é formado o comité ANSI para as linguagens de processamento de texto com o objectivo de encontrar uma norma para a especificação, a definição e a utilização de anotações em documentos.

• Em 1986, é lançado o SGML como o ISO 8879

Page 57: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 57

SGML (the beginning)• Apesar de todo o poder expressivo e

versatilidade não se conseguiu impôr

• Grande complexidade

• Grande investimento inicial de capital e de tempo

Page 58: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 58

O HTML é SGML ...

Será que descende de ?

No fim dos anos 80 Tim Berners-Lee misturou:• um conjunto de tags dum DTD utilizado no CERN• juntou-lhe uma especificação de estilo• e mais um elemento revolucionário: os links

O que deu origem ao HTML

Page 59: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 59

HTML: exemplo<HTML><HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <META NAME="Author" CONTENT="Jose Carlos Ramalho"> <META NAME="GENERATOR" CONTENT="Mozilla/4.01 [en] (Win95; I) [Netscape]"> <TITLE>soneto de &Aacute;lvaro de Campos</TITLE></HEAD><BODY>

<H2>"Soneto J&aacute; Antigo"</H2>

<H3>(&Aacute;lvaro de Campos)</H3>

<P>Olha, <I><FONT COLOR="#3333FF">Daisy</FONT></I>: quando eu morrer tuh&aacute;s-de<BR>dizer aos meus amigos a&iacute; de <I><FONT COLOR="#3366FF">Londres</FONT></I>,<BR>embora n&atilde;o o sintas, que tu escondes<BR>a grande dor da minha morte. Ir&aacute;s de...

Page 60: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 60

HTML (the beginning)• A sua grande simplicidade foi o factor

determinante para a grande adesão que teve

• A sua grande simplicidade foi também o início de uma época problemática– atingiu-se rapidamente o seu limite– começaram a proliferar extensões não

normalizadas

Page 61: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 61

O sentido ecuménico do HTML

• o HTML representa a linguagem de anotação que as pessoas podem tomar como certa(!!!).

• quanto mais universal fôr uma linguagem menos específica se torna, quanto maior fôr o contexto de aplicação menor será a capacidade de expressão semântica.

Page 62: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 62

XML (como surgiu?)

Uma linguagem de anotação aberta

Page 63: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 63

O cristalizar do HTML• o DTD está directamente implementado

nos browsers.

• a stylesheet também

• quem o utiliza não pensa na anotação mas sim na apresentação

Page 64: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 64

Problemas do SGML• Não seguiu as normas da comunidade de

"Compiler Construction"– o operador "&"

<!ELEMENT X - - (a & b & c)>– "tag omission"

<!ELEMENT HR - o EMPTY>

<HR> Isto é <B>texto</B> ...– inclusões e exclusões

Page 65: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 65

SGML XML• Fechar todas as "tags" que se abrirem

• Converter os elementos vazios – <HR> ==> <HR/>

– def. SGML: <!ELEMENT HR -o EMPTY>

– def. XML: <!ELEMENT HR EMPTY>

• Colocar os valores dos atributos dentro de aspas– <IMG SRC="foto.jpg"/>

Page 66: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 66

O que ficou de fora no XML• O operador "&"

– <!ELEMENT coisa (a&b)>

• inclusões e exclusões– <!ELEMENT coisa (outro) +a>– <!ELEMENT coisa (outro) -b>

• omissão de tags: tag de início e abertura são as duas obrigatórias– <!ELEMENT coisa - - (outro)>

Page 67: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 67

XML (conceitos)

Doc. XML

Bem formado Válido

• pertence a uma classe (DTD)• não há cruzamento de tags <A>olá <B>estás </A> ...

• pode-se inferir um DTD• torna o pós-processamentomais específico.

Page 68: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 68

XML (em desenvolvimento)• XML - standard

• XSL - eXtended Stylesheet Language

• XLL - eXtended Linking Language

• XPointer - eXtended Pointing Language

• DCD, ... XML Scheme

Page 69: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 69

XML: exemplo - dtd do poema<!-- declarações para os elementos --><!ELEMENT poema (titulo, autor, corpo, data) ><!ELEMENT titulo (#PCDATA)><!ELEMENT autor (#PCDATA)><!ELEMENT corpo ((quadra|terno)+)><!ELEMENT quadra (verso, verso, verso, verso)><!ELEMENT terno (verso, verso, verso)><!ELEMENT verso (#PCDATA|nome)+><!ELEMENT nome (#PCDATA)><!ELEMENT data (#PCDATA)>

Page 70: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 70

XML: exemplo - instância<?xml version="1.0"?><?xml-stylesheet type="text/css" href="poema.css"?><!DOCTYPE poema SYSTEM "poema.dtd"><poema> <titulo>"Soneto J&#225; Antigo</titulo> <autor>(&#193;lvaro de Campos)</autor> <corpo> <quadra> <verso>Olha, <nome>Daisy</nome>: quando eu morrer tu h&#225;s-de</verso> <verso>dizer aos meus amigos a&#237; de <nome>Londres</nome>,</verso> <verso>embora n&#227;o o sintas, que tu escondes</verso> <verso>a grande dor da minha morte. Ir&#225;s de</verso> </quadra> <quadra> <verso><nome>Londres</nome> p'ra <nome>Iorque</nome>, onde nasceste (dizes</verso> <verso>que eu nada que tu digas acredito),</verso> <verso>contar &#224;quele pobre rapazito</verso> <verso>que me deu horas t&#227;o felizes,</verso> </quadra> ...

Page 71: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 71

XML: exemplo - stylesheet/* Use Times New Roman for default

font */

$DOCUMENT {

font-family: "Times New Roman";

font-size: 12pt;

margin-top: 5px;

margin-left: 5px;

}

poema, quadra, terno, verso {

display: block;

}

titulo {

display: block;

font-size: large;

}

corpo {

display: block;

font-size: small;

}

autor {

display: block;

font-size: medium;

}

nome {

font-style: italic;

color: blue;

}

terno, quadra {

margin-top: 1cm;

margin-bottom: 1cm;

}

Page 72: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 72

Transformação versus Style• O processamento de estilo ainda não está

padronizado– CSS é insuficiente– XSL ainda não está estável– DSSSL é uma excepção (mas pensado para

SGML e difícil de programar)

• A transformação é uma boa opção– Omnimark, Balise, Python, Perl

Page 73: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 73

Perl - XML::DT: arquitectura

Perl

... XML::Parser ...

expat

XML::DT

Page 74: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 74

Transformando docs XML

Poema

CorpoTitulo

TernoQuadra

Process(Poema) = f( Process(Titulo), Process( g( Process(Quadra), Process(Terno) )))

No XML::DT:• f, g = concatenação• Resultado esperado é uma string

Page 75: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 75

Exemplo: script DT #!/usr/bin/perluse XML::DT ;my $filename = shift;

%handler=( '-outputenc' => 'ISO-8859-1', '-default' => sub{"<$q>$c</$q>"}, 'titulo' => sub{"<H2>$c</H2>"}, 'poema' => sub{"<html>$c</html>"}, 'corpo' => sub{"<p><p>$c<p>"}, 'terno' => sub{"<p><p>$c<p>"}, 'data' => sub{"<H4>$c</H4>"}, 'autor' => sub{"<H3>$c</H3>"}, 'quadra' => sub{"<p><p>$c<p> "}, 'nome' => sub{"<I>$c</I>"}, 'verso' => sub{"$c<p>"},);print dt($filename,%handler);

Page 76: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 76

Ferramentas XML• parsers: SP, XML4J

• editores s/validação de DTD: muitos

• editores c/ validação: XMetal, Documentor, ...

• processadores: Omnimark, Balise, Python, Perl, PHP

• Bases de Dados: as do SGML + Oracle, Informix

Page 77: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 77

XML (áreas de utilização)• Produção de documentação em geral

• Especificações de HW

• Especificações de protocolos de comunicação

• Especificação de linguagens de programação

• Especificação de sistemas operativos

Page 78: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 78

Casos reais• Linguagens definidas em SGML/XML

– DocBook XML 1.5– SMDL - música– CML - química– SMIL - multimedia e interface– MML - matemática– H7 - medicina– XML-EDI - comércio

Page 79: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 79

Conclusão

Page 80: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 80

1760Em 14 de Junho deste anno foi mandado sahirimmediatamente da Corte o cardeal Accioalolli e dentro em 4dias do Reino, para o que se lhe deu decente transporte e acompanhamento. Era Nuncio de sua Santidade o Papa Clemente 13.Aqui principiou a rotura com a Sé Appostolica. Fes-sepublico o motivo pela informação que se mandou a Franciscode Almada residente na Corte de Roma, dando-se porfundamento maior o não pôr luminarias por ocasiãodo cazamento que se fes no dia seis de Junho do Senhor InfanteD. Pedro com sua sobrinha a Excelentissima Senhora D. Maria,princesa do Brasil, o que o dito Cardeal não fizera, porquelho não fizerão a saber por carta de officio, quando os maisembaixadores sem isso o fizerão. O caso he que queriãoafasta-lo da Corte e tambem elle não seguia aconduta dellapor aquelles tempos.... Extraído de “Memórias de Inácio Peixoto dos Santos”

Documento como um todo

Page 81: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 81

Documento estruturado

<EXCERTO><TITULO>1760</TITULO><PARAG>Em 14 de Junho deste anno foi mandado sahirimmediatamente da Corte o cardeal <NOME>Accioalolli</NOME> e dentro em 4dias do Reino, para o que se lhe deu decente transporte e acompanhamento. Era Nuncio de sua Santidade o Papa Clemente 13.</PARAG><PARAG>Aqui principiou a rotura com a <LUGAR>Sé Appostolica</LUGAR>. Fes-sepublico o motivo pela informação que se mandou a <NOME>Franciscode Almada</NOME> residente na Corte de Roma, dando-se porfundamento maior o não pôr luminarias por ocasiãodo cazamento que se fes no dia seis de Junho do Senhor <NOME>InfanteD. Pedro</NOME> com sua sobrinha a Excelentissima Senhora D. Maria,princesa do Brasil, o que o dito Cardeal não fizera, porquelho não fizerão a saber por carta de officio, quando os maisembaixadores sem isso o fizerão. O caso he que queriãoafasta-lo da Corte e tambem elle não seguia aconduta dellapor aquelles tempos.</PARAG></EXCERTO>

Page 82: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 82

Estrutura do documento

parag

excerto

título parag

nome lugartexto texto

???

Page 83: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 83

Processamento EstruturadoELEMENT excerto OUTPUT “%c”

ELEMENT titulo OUTPUT “<H2>%c</H2>”

ELEMENT parag OUTPUT “%c<P>” ELEMENT nome OUTPUT ”<I>%c</I>”

ELEMENT lugar OUTPUT “<B>%c</B>”

Geração da página HTMLcorrespondente

Page 84: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 84

Fase de Design• Análise Documental

– Desenho da estrutura tentando prever todos os ângulos do problema.

– Levantamento dos requisitos de aparência visual junto dos futuros utilizadores.

• Resultados– Especificação do DTD– Especificação do Estilo

Page 85: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 85

Fase de Edição• Preparar um editor “especializado”

– compilar o DTD– preparar uma formatação automática para o

documento

• Anotar o Documento– na sua inserção– posteriormente à sua inserção

• Validar o Documento anotado

• Exportar o Documento válido em SGML

Page 86: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 86

Fase de Validação• Está integrada nos editores SGML

• É invisível para o utilizador, excepto na sua invocação

• Dá feedback na forma de mensagens que indicam os erros se os houver

Page 87: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 87

Fase de Formatação ou Transformação• Processador:

– Doc. SGML válido + Estilo = OUTPUT

• Processamento– Standard (DSSSL): jade– Pessoal: desenvolvimento de scripts Perl ou

Omnimark

Page 88: XML a promessa, e a esperança... José Carlos L. Ramalho jcr@di.uminho.pt gEPL - DI - UM

XML - jcr - Salvador - 1999.11.23 88

Fase de Armazenamento• O Documento é armazenado juntamente

com a sua estrutura

• Tipos de solução:– Armazenamento individual usando o

sistema de directorias.– Bases de Dados orientadas a objectos e

desenvolvidas a pensar no SGML: Astoria, InfoManager, Documentor.

– Implementação sobre Bases de Dados Relacionais baseada em MDA.