SlideShare uma empresa Scribd logo
1 de 101
2. Modelagem de Dados
semi-estruturados
Introdução
Dados semi-estruturados ?
 Dados semi-estruturados: dados
heterogêneos e irregulares, por exemplo XML
 Banco de dados: originalmente, sistemas
fechados, dedicados a gestão de dados
regulares, cuja estrutura pouco evolui no
tempo
 Novas aplicações requerem mais flexibilidade
de representação e estão constantemente
evoluindo o esquema
 Os modelos relacional e de objetos chegaram
a seus limites
Introdução
Dados semi-estruturados ?
 Uma solução: usar um modelo de grafo
para armazenar os dados com
características semi-estruturadas
 Origens de dados semi-estruturados:
 integração de fontes heterogêneas
 fontes de dados sem estrutura rígida
 dados biológicos
 dados da Web
Introdução
Dados semi-estruturados ?
 Evolução:

1995: Projeto TSIMMIS, Modelo OEM
na Universidade de Stanford, EUA

1996: Projeto LORE, primeiro SGBD
semi-estruturado, Stanford

1999: aceitação de XML pela indústria
para representação de dados semi-
estruturados
Introdução
Uma sintaxe para dados semi-
estruturados
 Dados semi-estruturados: dados sem esquema ou
auto-descritivos
 Não há separação entre os dados e o esquema
 Os dados contêm o esquema
 Exemplo
 {nome:"Ana", tel:"3334567", email:ana@abc.com.br}
 {nome:"Ana", tel:"3334567", tel:"9715432"}
 Aqui os valores são os dados atômicos
 Representação sob forma de grafos
nome
tel
email
3334567
ana@abc.com.br
Ana
nome
tel
tel
3334567
9715432
Ana
Uma sintaxe para dados semi-
estruturados
 Os valores podem ser objetos complexos
 Exemplo
{pessoa: {
nome:"ana", tel:"3334567"
}
},
{pessoa: {
nome:{pré-
nome:"Victor",sobrenome:"Bezerra"},
tel:"3218765"
}
},
{pessoa: {
nome:"Sandra"
}}
Representação de bases
relacionais
 Um BD relacional é descrito por um esquema
 r1(a,b,c)
 r2(c,d)
 r1 e r2 são os nomes das relações
 a,b,c,d são os nomes dos atributos
 No esquema de uma relação, cada atributo é
definido sobre um domínio de valores atômicos.
r1
a b c
a1 b1 c1
a2 b2 c2
r2
c d
c2 d2
c3 d3
{r1:{row:{a:a1,b:b1,c:c1},
row:{a:a2,b:b2,c:c2}
},
r2:{row:{c:c2,d:d2},
row:{c:c3,d:d3}
}
Representação de bases
relacionais
 Representação num grafo
Introdução
r1 r2
row row row row
a b c
a1 b1 c1
a b c
a2 b2 c2
Representação de bases de
objeto
 Exemplo: considere uma coleção de três pessoas:
Maria tem dois filhos: José e Joana.
 Usando o conceito de identidade de objetos,
podemos representar esta coleção da seguinte
forma:
{ pessoa:&p1{
nome:"Maria", idade:45, filho:&p2,filho:&p3
}
pessoa:&p2{
nome:"José", idade:23, mãe:&p1
}
pessoa:&p3{
nome:"Joana", idade:22, mãe:&p1
}
}
Representação de bases de
objeto
 Representação em grafo
Introdução
&p1
&p3
&p2
filho
mãe
filho
mãe
nome
idade
nome
idade
nome
idade
Maria
45 Joana
22
José
23
root
pessoa
pessoa
pessoa
2.1. Modelagem de dados
semi-estruturados
O modelo OEM
O modelo OEM
 Desenvolvido no projeto TSIMMIS-Stanford
 sistema para integração de fontes de dados
heterogêneas
 Um objeto OEM é uma quádrupla
(label,oid,type,value)
 label: cadeia de caracteres
 oid: identificador do objeto
 type: complexo ou atômico(int, string, gif, jpeg …)
 value:

se o tipo é complexo, conjunto de oid ’s

senão um valor atômico
OEM
O modelo OEM
 O modelo OEM é um modelo de grafo.
Os labels estão nos nodos e não nos
arcos como visto anteriormente.
 Obs.: Várias extensões ao OEM foram
propostas e consireram labels nos arcos!
OEM
Exemplo de Semistructured Data Model
&o1
&o12 &o24 &o29
&o43
&96
&243 &206
&25
“Serge”
“Abiteboul”
1997
“Victor”
“Vianu”
122 133
paper
book
paper
references
references
references
author
title
year
http
author
author
author
title publisher
author
author
title
page
firstname
lastname
firstname lastname first
last
Bib
Object Exchange Model (OEM)
complex object
atomic object
Exercício: representação de uma base de
objetos
usando o modelo OEM
 esquema ODL da base de objetos
class Estado
(extent estados)
{ attribute string nome;
attribute Cidade capital;
relationship set<Cidade> cidades-em
inverse Cidade::estado-de
}
class Cidade
(extent cidades)
{ attribute string nome;
relationship Estado estado-de
inverse Estado:cidades-em;
}
Exercício: representação de uma base de
objetos usando o modelo OEM
 Representação de dados ODMG
{estados: {estado: &e1{nome: "Pernambuco",
capital: &c1,
cidades-em: {Cidade:
&c1,
Cidade: &c2, …}
},
estado: &e2{nome:"Paraíba",
capital:&c6,
cidades-em: {Cidade: &c5,
…}
},
…
},
cidades: {cidade: &c1{nome: "Recife",
estado-de: &e1}, cidade: &c2{nome:
"Caruaru" , estado-de: &e1}, … }
Introdução a XML
XML ?
 « Buzz word »
 eXtensible Markup Language
 Uma linguagem de descrição de documentos,
definida por um organismo internacional W3C
 Um conjunto de tecnologias derivadas:
 Xlink, Xpointer, Xschema, DOM, SAX, XSL,…
 O esperanto da Web
Introdução
A revolução da Web…
 1989 - Primeiro Web Browser
 1993 - Mosaic é difundido, há 50 web sites
 1994 - Primeiras ferramentas de busca
(WWWW, webcrawler)
 1996 - US$ 1M gastos em compras na Web,
presença em 150 países
 1997 - 1 milhão de web sites
 1998 - 300.000 web servers
 2000 - mais de 1 bilhão de páginas web
 2002 – quase 2,5 bilhões de páginas web
indexadas (google)
Introdução
A Web hoje…
 documentos HTML
 voltada para uso humano
 gerado automaticamente por
aplicações
 Fácil de alcançar qualquer Web page,
de qualquer server, em qualquer
plataforma
Introdução
Limites da Web …
 aplicações não podem consumir HTML
 tecnologia de HTML wrapper é instável
(modifica-se a página => modifica-se o
wrapper)
 tecnologia OO (Corba) requer ambiente
controlado
 companhias se fundem, formam parcerias;
necessitam de interoperabilidade de forma
rápida
Introdução
Web: Mudança de paradigma
…
 Novo padrão Web XML:
 XML gerado por aplicações
 XML consumido por aplicações
 troca de dados
 entre plataformas: interoperabilidade na
empresa
 entre empresas
Introdução
 As novas aplicações
 Comércio Eletrônico
 Protocolos "B2B"
 Bibliotecas digitais
 sistemas distribuídos
 …
precisamos de um "super HTML"
… estão surgindo ...
Introdução
XML
Um padrão W3C para complementar HTML
origens: textos estruturados em SGML
motivação:
HTML descreve apresentação
XML descreve conteúdo
http://www.w3.org/TR/REC-xml (2/98)
O Segredo do sucesso de
HTML
Simplicidade: Todo mundo pode escrever HTML
5G@9³wd‚ wx`q&³qdfµydqËtcdvd xv`Ìux`quxdÌdchwtÌ
5G@9³wÌ`svËtÌw¬ydqdr ux`quxdÌËq`w`etÌr`vtaÌt vd̳`
`Ëqhb`±¢txshydÌv`qu
5G@9 btsdbw`Ëdc`±tvcdhsetÌr`±¢t`wÌ`y³vcd gƒ ËdÌwd‚ wqhsp
De HTML para XML
HTML descreve a apresentação
HTML
h1 Bibliography /h1
p i Foundations of Databases /i
Abiteboul, Hull, Vianu
br Addison Wesley, 1995
p i Data on the Web /i
Abiteoul, Buneman, Suciu
br Morgan Kaufmann, 1999
XML
bibliography
book title Foundations… /title
author Abiteboul /author
author Hull /author
author Vianu /author
publisher Addison Wesley /publisher
year 1995 /year
/book
…
/bibliography
XML descreve o conteúdo
Exemplo
 Suponha que um site de e-commerce
precisa emitir uma nota fiscal
 Exemplo
 Problemas:

Diversos departamentos da empresa usam
estes dados de notas fiscais em diferentes
plataformas, SO e linguagem de programação
Exemplo (cont)
 Melhor seria usar XML!
?xml version=“1.0”
NotaFiscal
NomeCliente Ana Silva /NomeCliente
EndCliente Rua das Margaridas, Maceió, AL /EndCliente
EndEnvio Rua das Margaridas, Maceió, AL /EndEnvio
Item
codigo 123 /codigo
descricao Parafuso 8mm /decricao
quantidade 20 /quantidade
preco 3,00 /preco
/Item
Item … /Item
/NotaFiscal
Exemplo
ficha
nome trab
ln end email
cidade cepSantos
Natal 52310
vera@ibge.br
IBGE
tipo
gerente
Vera
fn
ficha
nome
fnVera/fn
lnSantos/ln
/nome
trab tipo=“gerente
IBGE
end
cidadeNatal/cidade
cep52310/cep
/end
emailvera@ibge.br/email
/trab
/ficha
Elementos
Atributos
Dados
fn
tipo
52310
Syntaxe
XML: sucessor de HTML
 HTML Hypertext Markup Language.
 Um conjunto pré-definido e limitado de tags,
definidas por uma norma (HTML 2.0, 3.2,
4.0).
 Estas tags possuem semânticas variadas:
 h1,..,h6, title, address, … dando as
indicações estruturais
 center,hr,b,i,big,small,… servem para
descrever a apresentação.
Princípios fundamentais
Problemas com HTML
 Uma vez criado, um documento é ligado a
uma norma particular (ex. HTML 3.2 )
 A visualização de um documento é
fortemente dependente da interpretação que
o navegador faz.
 É necessário dispor de várias versões do
documento em função da mídia em que vai
ser apresentado
 A indexação de documentos só pode ser feita
sobre a parte textual.
Princípios fundamentais
XML: uma resposta única a
necessidades variadas
 HTML é usada como a lingagem universal de
apresentação de documentos na Web, mas
não é uma linguagem adaptada para
descrever a estrutura destes documentos
 As bases de dados atuais são muito rígidas
para manipular dados cuja estrutura é
irregular e evolui com o tempo.
Introdução
Os segredos de XML
 Como HTML:
 simples, legível, fácil de aprender
 universal e transportável
 suportado pela W3C (indústria absorve!)
 Mas, Além de HTML
 flexível : podemos representar qualquer tipo de
informação
 extensível: pode-se representar informação de
qualquer forma
Origem
 Trabalho cooperativo de um grande número
de empresas e de pesquisadores reunidos no
World Wide Web Consortium (W3C)
 400 colaboradores da indústria, entre os quais
Oracle, IBM, Compaq, Xerox, Microsoft, etc..
 Laboratórios de pesquisa: MIT - USA, INRIA -
França, universidade de Keio - Japão
 Objetivo: definição de um formalismo para
facilitar a troca de dados na Web
Origem da linguagem XML
Mandamentos iniciais:
 XML deverá ser diretamente utilizável
na Internet
 XML deverá suportar uma larga
variedade de aplicações
 XML deverá ser compatível com SGML
 A criação de páginas XML deverá ser
também o mais simples possível
Origem da linguagem
Mandamentos iniciais(2)
 Os documentos XML deverão ser de
grande legibilidade
 A criação de documentos deverá ser
rápida
 A sintaxe deverá ser formal e concisa
 A concisão do código tem mínima
importância
Origem da Linguagem
Histórico
 1993: primeiros trabalhos sobre adaptação
das técnicas SGML à Web (Sperberg).
HTML to the Max: A Manifesto for Adding
SGML Intelligence to the World Wide Web
 Junho 1996: criação de um grupo de trabalho
no W3C
 10 fev. 1998: publicação da recomendação
para versão 1.0 da linguagem.
Origem da lingagem
Razões da W3C para usar
XML
 Permite a publicação eletrônica
internacional independente de mídia
 Permite que as empresas definam
protocolos de transferências de dados
 Facilita o desenvolvimento de SW para
Web
 Disseminação dos dados sem uso
formatos proprietários (caros!)
 Exibição de informação customizada
 Gestão de metadados facilitada
XML
 XML significa eXtensible Markup
Language
 sucessor de HTML
 herdeiro de SGML
XML é um linguagem de
descrição e de troca de
documentos estruturados
Princípios fundamentais
XML: herdeiro de SGML
 SGML Standard Generalized Markup
Language, norma ISO 8879:1986
 Muito utilizada na indústria para as grandes
técnicas de documentação.
 Muito complexa para utilização de «público
em geral»
 SGML tem demonstrado as vantagens do
formato estrutural para a Gestão Eletrônica
de Documentos (GED)
 XML usa 10% de SGML para representar de
forma eficaz 90% dos documentos
Princípios Fundamentais
Noção estrutural
 Princípio chave de SGML
 Idéia fundamental:
Considere um documento, é desejável
separar completamente
as informações de estrutura
das informações de apresentação.
Princípios fundamentais
Exemplo de um documento
Campina GRande,
20 de maio de 2001
Sr. Edilson Silva,
Rua das Flores, 12
581293 Caruaru
Bar do Carrego
Rua das Bodegas, s/n
58106-920 C. Grande
Tel: 012133564
Fax: 879765426
Objet: Dívida?
Prezado Senhor,
Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg
fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef
iheznf jùkvbc lkhdklvn v
Aproveito do ensejo para renovar meus protestos de elevada estima e
consideração.
assinatura
Rodapé
Logotipo
Data
Destinatário
Corpo
Rodapé
Cabeçalho
Objeto
Saudação
Forma
Polida
Assinatura
Representação XML
carta
. . .
/carta
cabeca
. . .
/cabeca
destinatario
nome Sr Edilson Silva /nome
endereco
rua rua das Flores /rua
cidade Caruaru /cidade
/endereco
/destinatario
objeto bla bla /objeto
data
20 Maio 2001
/data
saudacao
Prezado Senhor,
/saudacao
corpo
. . .
/corpo
para
Aqui é o primeiro
parágrafo
/para
para
aqui é o segundo ...
logotipo loc=logo-graph/
endereco abrev-endereco;
/endereco
Pontos importantes
 A representação desta carta em XML não
tem nenhuma indicação sobre a
apresentação.
 As numerosas propriedades gráficas ou
tipográficas estão ausentes da fonte XML.
 Estas propriedades serão definidas por
intermédio de uma folha de estilo.
 Uma folha de estilo é um conjunto de regras
para especificar a realização concreta de um
documento sobre uma mídia particular.
Princípios fundamentais
Saint Pétaouchnoque,
Le 30 nivose 2004
Editions Duschmol,
12 rue Schmurz
YT123 Rapis
WindStar 2000
Les rosières en buget
AB562 Saint Pétaouchnoque
Tel: 012133564
Fax: 879765426
Objeto: Dívida
Prezado Senhot,
Bla bla bli, bli blo bla, kkkk vhlg
vckjdhklbg fdskjbvhv feje slc ifehfe
fhckh c jeflccj n khef iheznf jùkvbc
lkhdklvn v
.
sssinatura
Rodapé
carta
cabeca
. . .
/cabeca
corpo
. . .
/corpo
/carta
If carta then ...
If cabeca then …
If corps then
...
If para then
Police new roman,
size 12,
skip first line
If … then …
estilos
Descoberta de XML
Vantagens de XML
Extensibilidade e estrutura
 Em XML, um autor ou uma comunidade de autores inventam
livremente as tags que lhes pareçam úteis para marcar os
componentes de um documento.
 Exemplo: diversas formas de representar uma data

date 5 janeiro 2000 /date

date
ano 2000 /ano
mes 01 /mes
dia 05 /dia
/date

date format='ISO-8601' 2000-01-05 /date
 Grande liberdade de escolha das estruturas de dados facilita
a troca de dados

comércio eletrônico

transações financeiras e comerciais

pesquisa e indústria de biotecnologias

multimídia
Vantagens de XML
Interoperabilidade
 Todos os dados podem ser vistos como documentos
XML e não mais como arquivos no formato X ou Y.
 Consequências:
 Um servidor de documentos XML é suscetível de
responder a um conjunto de necessidades de uma
organização.
 Um simples editor de textos pode tratar o conjunto
de dados de uma organização.
 A interoperabilidade dos utilitários está
assegurada.
Vantagens de XML
Modularidade e reutilização
 Cada usuário é livre para definir suas
próprias estruturas de documento
 O documento pode também estar conforme
as estruturas tipadas, chamadas DTD
 Cada comunidade pode propor as estruturas
normalizadas
 A validação a um DTD permite a
automatização no tratamento dos dados e
assegura uma possibilidade de controle de
integridade
Vantagens de XML
Accesso às fontes de informação
heterogêneas
 A consulta e troca de dados entre as base de dados
heterogêneas é complexa
XML contribui pare minimizar este problema: formato de troca
normalizado, genérico, independente de plataforma
 A indexação e consulta de bases de documentos pode se
beneficiar de informações estruturais e textuais.
 pesquisa por palavras-chaves: Jorge+Amado retorna todos os
documentos contendo as palavras Jorge e Amado, então as
páginas pessoais de Pedro Amado cujo filho se chama Jorge.
 pesquisa estrutural: pesquisa os documentos cujo autor é Jorge
Amado (ie os documentos contendo um elemento autor, ou
escrito-por contendo Jorge e Amado)
Vantagens de XML
XML na prática
 Comércio eletrônico: CXML, EBXML
 Química, Matemática, Geografia: CML,
MathML
 Multimídia: SMIL, MPEG-7, MusicML
 Desenhos gráficos: SVG
 Protocolos de comunicação: SOAP, UDDI,
WSDL
 Transferência de dados: XMI, GML
 Configuração de software
 E muito mais!!!!
Descoberta de XML
Definição da linguagem XML 1.0
Exemplos de documentos
XML
?xml version=1.0 ?
document
saudacao Bom dia! /saudacao
/document
document
saudacao Bom dia! /saudacao
/document
document /document document/
document Bom dia! /document
XML 1.0
Estrutura de um documento
 Um documento XML se compõe
 de um prólogo cuja presença é facultativa, mas
fortemente aconselhada
 de uma árvore de elementos, obrigatória
 de comentários e de instruções de tratamento,
facultativos
?xml version=1.0 ?
document
saudacao Bom dia! /saudacao
/document
XML 1.0
O prólogo
Contém:
 Uma declaração XML, facultativa
 da forma:
?xml version=1.0 encoding=ISO-8859-1 standalone=yes
 indica ao processador que vai tratar o documento:

a versão da linguagem XML utilizada

o código de caracteres utilizado

a existência de declarações exteriores ao documento
 Uma declaração de tipo de documento,
facultativa
 da forma
!DOCTYPE exemplo SYSTEM exemplo.dtd
[ declarações ]
 indica a estrutura particular a qual deve estar de
acordo um documento
XML 1.0
Estrutura de um DTD
 Um DTD pode compreender duas
partes
 uma parte externa

a parte externa é definida fora do documento.
É referenciada por uma referência DTD,
frequentemente uma URL. Este mecanismo
permite assegurar uma reutilização de DTDs
frequentemente utilizados.
 uma parte interna

utilizada para especializar um DTD externo
genérico ou redefinir certos tipos de elementos
XML 1.0
Estrutura de um elemento (1)
 Um elemento é da forma:
nome attr='valor' conteúdo /nome
 nome é a tag de abertura
 /nome é a tag de fechamento. A presença é obrigatória, a
exceção particular dos elementos nulos, denotado por nom
/nom ou nom/
 conteúdo é o conteúdo de um elemento . Pode ser:
 attr='valor' representa um conjunto eventualmente vazio
de atributos, ou seja de pares (nome,valor). Os nomes dos
atributos são únicos num elemento.
XML 1.0
uma mistura de texto e elementos
instruções de tratamento
comentários
vazio
texto
outros elementos
Estrutura de um elemento (2)
 Um nome de elemento é uma sequência não nula de
caracteres que pode conter
 caracteres alphanuméricos
 undescore
 sinal de menos
 ponto
 caracter dois-pontos (:) é utilizado, mas com um sentido
particular
 deve satisfazer as seguintes restrições
 o primeiro caracter deve ser alfabético ou um undescore
 os três primeiros caracteres não devem formar uma cadeia
cuja representação em letras minúsculas seja xml.
XML 1.0
Estrutura de um elemento (2)
Exemplos de nomes de elementos
1998-catalogo
xmlSpecification
nom sociedade
_toto
Nome_sociedade
xsl:rule
X.11
incorretoscorretos
XML 1.0
Exemplo: Banco FirstBank
?xml version=1.0 
banco
cliente
nomeCliente Helio /nomeCliente
ruaCliente Principal /ruaCliente
cidadeCliente Recife /cidadeCliente
conta
numero A-102 /numero
agencia Central /agencia
saldo 400 /saldo
/conta
conta
…
/conta
/cliente
.
.
/banco
Sintaxe dos atributos
 Um atributo é um par nome='valor' que permite de
caracterizar um elemento. Um elemento pode ter
vários atributos. Neste caso, os pares nome='valor'
serão separados por um espaço.
 Exemplos
 relatorio lingua= ’pt' ult-modif='08/07/99'
 anuario generator='SQL2XML V2.0'
update='07.08.99'
 O nome de um atributo obedece as mesmas regras
que o nome de um elemento
 O valor de um atributo é uma string entre aspas() ou
apóstrofos simples ('). Um valor de atributo não deve
conter os caracteres ^, % e .
XML 1.0
Exemplo Atributos Banco
conta tipo=“poupanca” taxa-mensal=“5”
numero A-102 /numero
agencia Central /agencia
saldo 400 /saldo
/conta
Elementos X Atributos?

No contexto de documentos, atributos são
parte da marcação (markup), enquanto
conteúdos dos subelementos são parte do
conteúdo básico do documento.

No contexto de representação de dados, a
diferença não é clara e pode ser confusa:
 A mesma informação pode ser representada de
duas formas:

conta numero = “A-101” …. /conta

conta
numeroA-101/numero …
/conta

Sugestão: use attibutos para identificadores de
elementos, e use subelementos para conteúdo
Seção CDATA
Uma seção CDATA instrui o parser a ignorar os caracteres de markup
Exemplo:
![CDATA[
*p = q;
b = (i = 3);
]]
Entre o início da seção, ![CDATA[ e o fim da seção, ]],
todos os caracteres são passados diretamente para a aplicação,
sem interpretação.
A única string que não pode ocorrer numa seção CDATA é ]].
Comentários
Comentários iniciam com ”!--” e terminam com ”--”. (só
não podem conter o string ”--”).
Ex.: !-- Isto é um comentário --
Comentários podem ser colocados em qualquer linha do
documento.
Árvore de elementos
Um documento XML contém uma árvore de elementos,
com as seguintes restrições:
 Existe num documento um único elemento pai que
contém todos os outros. É a raiz do documento.
 Todo elemento distinto da raiz é totalmente
incluído dentro de seu pai. Assim:
p b bla bla /p bla /b
não é uma estrutura XML.
XML 1.0
Documentos bem formados
 Um documento é dito bem formado se:
 está de acordo com as regras sintáticas de XML
(tags são aninhadas propriamente e atributos são
únicos)
?xml version=1.0
standalone=yes ?
document
saudacao Bom dia! /saudacao
/document
Ex. de uma documento não bem
formado:
document
saudacao Bom dia!
/document
/saudacao
XML 1.0
Documentos válidos
 Um documento é dito válido se:
 seu prólogo contém uma declaração de tipo de documento
 sua árvore de elementos respeita a estrutura definida pelo
DTD
?xml version=1.0 encoding=ISO-8859-1
standalone=yes ?
!DOCTYPE document [
!ELEMENT document (saudacao)
!ELEMENT saudacao (#PCDATA)
]
document
saudacao Bom dia! /saudacao
/document
XML 1.0
Noção de DTD
 Um documento válido deve conter uma declaração
de tipo de documento. Esta declaração pode fazer
referência, por intermédio de uma URL a um arquivo
externo. Este arquivo é chamado de DTD (Definição
de Tipo de Documento).
 Exemplo
?xml version=1.0 encoding=ISO-8859-1 standalone=yes ?
!DOCTYPE document SYSTEM acolhida.dtd
document
saudacao Bom dia! /saudacao
/document
XML 1.0
Noção de DTD
XML 1.0
!–- Arquivo acolhida.dtd. Exemplo de DTD simples --
!–- Autor: --
!–- Data: --
!–- a declaração XML não é obrigatória dentro de um DTD --
!–- permite assegurar que os documentos que a referenciam --
!–- utilizam a mesma versão de XML --
?xml version=1.0 encoding=ISO-8859-1 standalone=yes ?
!–- Definição do elemento raiz --
!ELEMENT document (saudacao)
!–- Um elemento saudacao contém texto --
!ELEMENT saudacao (#PCDATA)
Conteúdo de um DTD
 Um DTD pode conter as declarações
 de elementos
 de listas de atributos
 de entidades gerais
 de entidades parametrizadas
 de notações
 como também comentários
XML 1.0
Declaração de elemento
 Uma declaração de elemento é da forma
!ELEMENT nome modelo
 ELEMENT é uma palavra-chave e se escreve
imperativamente em maiúsculas
 nome é um nome válido de um elemento
 modelo é o modelo de conteúdo deste elemento.
Distinguimos cinco modelos de conteúdo

elementos

dados

misto

livre

vazio
XML 1.0: elementos
Modelo de conteúdo de
elementos (1)
 Sequência de elementos filhos ( .., .., ..)
 Exemplo
!ELEMENT capitulo (titulo,intro,secao)

Um elemento capitulo cujo conteúdo, imperativamente e nesta
ordem, contém sub-elementos titulo, intro e secao.
 Alternativa ( ..| ..| ..)
 Exemplo
!ELEMENT capitulo (titulo,intro,(secao|secoes))
 Indicadores de ocorrência *,+,?
Um nome de elemento pode ter um indicador de orrorrência:
p* : p pode ocorrer zero, uma ou várias vezes dentro do conteúdo de um
instância
p+ : p pode ocorrer uma ou várias vezes
p? : p pode ocorrer zero ou uma vez
Modelo de conteúdo de
elementos (2)
 Exemplos
!ELEMENT capitulo (
titulo,
intro?,
secao+ ) 
!ELEMENT secao (
titulo-secao,
texto-secao ) 
!ELEMENT texto-secao (p|a)*
Modelo de conteúdo de dados
 A presença de dados no conteúdo de
um elemento é especifidada pela
palavra-chave #PCDATA
 Exemplo
!ELEMENT p (#PCDATA)
Modelo de conteúdo misto
 Este modelo permite definir os modelos de conteúdo
podendo misturar dados e elementos
 Forma do modelo
(#PCDATA | nome1 | …|nomen)*
 Exemplos de declarações
!ELEMENT p
(#PCDATA | negrito | italico | sublinhado)* 
!ELEMENT negrito (#PCDATA|italico|sublinhado)* 
!ELEMENT italico (#PCDATA) 
!ELEMENT sublinhado (#PCDATA) 
 Exemplo de uso
p um parágrafo pode conter texto negrito em
evidência /negrito ou em italico itálico
/italico/p
Modelo de conteúdo livre (1)
 Um elemento pode ser definido como sendo
um conteúdo qualquer, desde que este
conteúdo respeite as regras gerais da
linguagem XML.
 Exemplo
!ELEMENT qualquer ANY
 Para que o conteúdo de um elemento de
modelo de conteúdo livre seja válido, é
necessário que, se ele contiver elementos,
estes sejam declarados num DTD
Modelo de conteúdo livre (2)
 Utilidade: este modelo de conteúdo é particularmente útil quando
da criação de um DTD complexo
 Exemplo
!ELEMENT relatorio ANY
!ELEMENT capitulo ANY
!ELEMENT secao ANY
!ELEMENT titulo-secao ANY
!ELEMENT ilustracao ANY
!ELEMENT bibliografia ANY
!ELEMENT indice ANY
!ELEMENT p ANY
!ELEMENT negrito (#PCDATA)
!ELEMENT titulo (#PCDATA)
!ELEMENT autor (prenome+,nome)
!ELEMENT nome (#PCDATA)
!ELEMENT prenome (#PCDATA)
Modelo de conteúdo vazio
 Um elemento pode ser declarado como
obrigatoriamente vazio, usando a palavra-chave
EMPTY.
 Exemplo de declarações
!ELEMENT p (#PCDATA|bibref)* 
!ELEMENT bibref EMPTY
!ATTLIST bibref ref IDREF #REQUIRED
 Exemplo de utilização
p para uma definição precisa, veja bibref
ref='REC-xml-19980210'/ /p
XML 1.0: elements
Modelo de conteúdo vazio
 Observações:
 quando o modelo de conteúdo de um
elemento é o modelo vazio, deve
obrigatoriamente obedecer a sintaxe
nome/
 não é possível misturar EMPTY a uma outra
construção de modelo de conteúdo
?xml version=1.0?
!ELEMENT EMAIL (TO+, FROM, CC*, BCC*, SUBJECT?, BODY?)
!ATTLIST EMAIL
LANGUAGE (Western|Greek|Latin|Universal) Western
ENCRYPTED CDATA #IMPLIED
PRIORITY (NORMAL|LOW|HIGH) NORMAL
!ELEMENT TO (#PCDATA)
!ELEMENT FROM (#PCDATA)
!ELEMENT CC (#PCDATA)
!ELEMENT BCC (#PCDATA)
!ATTLIST BCC
HIDDEN CDATA #FIXED TRUE
!ELEMENT SUBJECT (#PCDATA)
!ELEMENT BODY (#PCDATA)
!ENTITY SIGNATURE José Silva
XML 1.0
Exemplo de DTD
Exercício 1
 Com o DTD anterior gere um
documento XML válido
Exemplo de um DTD de
Banco
!DOCTYPE banco [
!ELEMENT banco ( ( conta | cliente | deposito)+)
!ELEMENT conta (numero agencia saldo)
! ELEMENT cliente(nomeCliente rua cidade)
! ELEMENT deposito (nomeCliente conta)
! ELEMENT conta (#PCDATA)
! ELEMENT agencia (#PCDATA)
! ELEMENT saldo(#PCDATA)
! ELEMENT nomeCliente (#PCDATA)
! ELEMENT rua(#PCDATA)
! ELEMENT cidade(#PCDATA)
]
Declaração de atributos
 Um atributo é um par nome-valor
associado a um elemento
 uma declaração de atributos num DTD
permite especificar os atributos que
poderão ou deverão estar associados
às instâncias dos elementos.
 Forma da declaração
!ATTLIST nome-elemento nome-atributo
tipo-atributo declaração-default
XML 1.0: atributos
Declaração de atributos
 Exemplos
!ELEMENT ex1 (#PCDATA)
!ATTLIST ex1 xml:lang NMTOKEN #IMPLIED 
!ATTLIST ex1 target ID #implied 
!ATTLIST ex1 nb (1 | 2 | 3) '1'
equivalente a
!ATTLIST ex1 xml:lang NMTOKEN #IMPLIED 
target ID #implied 
nb (1 | 2 | 3) '1'
XML 1.0: atributos
Tipo de atributo
 O tipo de atributo pode ser:

CDATA: o valor do atributo é uma cadeia de caracteres

ID ou IDREF: permite definir um identificador para um
documento

Uma lista de escolhas num conjunto de tokens, ou
identificadores lógicos

NMTOKEN ou NMTOKENS: abreviação de Name
Token. Permite ao atributo de ter seu valor de um
conjunto de nomes simbólicos.

ENTITY ou ENTITIES: permite que um atributo tome
como valor o nome de uma entidade externa não XML

NOTATION: define um atributo de notação
XML 1.0: atributos
Declaração default
 Possui quatro formas
 valor por default do atributo
 #REQUIRED: cada instância deverá ter um atributo
deste nome. Não aceita valor default.
 #IMPLIED: presença facultativa. Não aceita valor
default.
 #FIXED: fixa o valor deste atributo para toda
instância.
XML 1.0: atributos
Exemplos (1)
 Atributo CDATA
!ATTLIST f att1 CDATA #FIXED 'toto' 
O atributo att1 dos elementos de tipo f tem um valorr constante: o string
toto.
 Atributo enumerado
 Exemplo 1
!ELEMENT data (#PCDATA) 
!ATTLIST data formato (ANSI | ISO | BR) #REQUIRED
data formato= ’BR' 24 Maio 1998 /data
data formato='ISO' 1998-05-24 /data
O atributo formato é obrigatório e deve ter valores do tipo ANSI, ISO ou BR
 Exemplo 2
!ELEMENT list (item,item+)
!ELEMENT item (list|#PCDATA)
!ATTLIST list type (ord | num | alpha) 'ord'
list type='alpha'
item Maria /item
item Pedro /item
item José /item
/list
XML 1.0: atributos
Exemplos (2)
 Atributos ID e IDREF
Estes tipos de atributos permitem de criar uma referência a um documento
!–- declaração do element secao --
!–- o atributo de identificação de secao --
!–- target é optional --
!ELEMENT secao (#PCDATA|xref)* 
!ATTLIST secao target ID #IMPLIED 
!–- declaracao do elemento xref --
!ELEMENT xref EMPTY 
!ATTLIST xref ref IDREF #REQUIRED
secao target='X321' conteúdo de uma seção /secao
secao outra seção. Faz referência à seção X321 xref
ref='X321'/ /secao
Obs.: nós não referenciamos de fato uma seção, mas um elemento do
documento que possui um atributo do tipo ID e cujo valor é X321.
XML 1.0: atributos
Exemplo DTD Banco com
atributos
Trecho de um DTD de Banco com ID e IDREF
!DOCTYPE banco-2[
… ...
!ELEMENT conta (agencia, saldo)
!ATTLIST conta numero ID # REQUIRED
proprietarios IDREFS # REQUIRED
!ELEMENT cliente(nomeCliente, rua, cidade)
!ATTLIST cliente
clienteID ID # REQUIRED
contas IDREFS # REQUIRED
…
]
Exemplo de XML para DTD
Banco com ID e IDREF
banco-2
conta numero=“A-401” proprietarios=“C100 C102”
agencia Centro /agencia
saldo 500 /saldo
/conta
cliente clienteID=“C100” contas=“A-401”
nomeClienteJosé Silva /nomeCliente
rua Juçaras /rua
cidade Maceió/cidade
/cliente
cliente clienteID=“C102” contas=“A-401 A-402”
nomeCliente Maria Lima /nomeCliente
rua Flores /rua
cidade Salvador /cidade
/cliente
/banco-2
Entidades internas
 Entidades pré-definidas
 certos caracteres, como    '  não podem
ser utilizados dentro do texto de um documento
 estes caracteres devem ser representados por
seus códigos pré-definidos, chamadas entidades
pré-definidas
: lt;
: gt;
: amp;
XML 1.0: entidades
Entidades internas
 Entidades definidas pelo usuário
 é possível declarar as entidades dentro do DTD
 esta declaração tem a forma
!ENTITY nome-entidade valor-entidade
 Exemplo
a declaração seguinte
!DOCTYPE toto [
!ENTITY copyright #x00A9; Editions
titi
]
toto copyright; /toto
produzirá
© Editions titi
observação: 00A9 é o código Unicode do caracter ©
XML 1.0: entidades
Entidades externas endereçadas por
URL
 Exemplo
?xml version='1.0' ?
!DOCTYPE livro [
!ENTITY capitulo1 SYSTEM chap1.xml
!ENTITY capitulo2 SYSTEM chap2.xml
!ENTITY autor toto
]
livro
titulo XML para idiotas /titulo
autor autor; /autor
intro Era uma vez uma Web… /intro
capitulo1;
capitulo2;
/livro
 Restrição: as entidades externas devem ser
documentos bem formados
Notações e entidades não
XML
 Exemplo
!DOCTYPE exemplo [
!NOTATION jpeg SYSTEM /usr/local/bin/xview
!ENTITY foto-ferias SYSTEM ./fotos/foto1.jpg
NDATA jpeg
!ELEMENT exemplo (foto)
!ELEMENT foto EMPTY
!ATTLIST foto img ENTITY #REQUIRED
exemplo
foto img='foto-ferias'/
/exemplo
]

A declaração de notação associa ao formato jpeg a aplicação
xview que poderá ser utilizada em extensão da aplicação XML.

A declaração da entidade foto-ferias indica que o conteúdo
dos dados está situado no arquivo foto1.jpg

A palavra-chave NDATA indica que este arquivo é de um formato
não XML
 Exemplo
?xml version='1.0' ?
!DOCTYPE db [
!ELEMENT db (pessoa*)
!ELEMENT pessoa (nome, idade, email)
!ELEMENT nome (#PCDATA)
!ELEMENT idade (#PCDATA)
!ELEMENT email (#PCDATA)
]
db
pessoa nome Pedro Maia /nome
idade 33 /idade
email maia@yahoo.com /email
/pessoa
pessoa nome Ana Maria /nome
idade 24 /idade
email ana.maria@uol.com.br /email
/pessoa
pessoa . . . /pessoa
/db
XML 1.0: Exemplos
DTDs como esquemas Exemplo
Seja o esquema r1(a, b, c) e r2 (c, e)
db r1 a a1 /a b b1 /b c c1 /c
/r1
r1 a a2 /a b b2 /b c c2 /c
/r1
r2 c c1 /c d d1 /d /r2
r2 c c2 /c d d3 /d /r2
/db
!DOCTYPE db[
!ELEMENT (r1*|r2*)
!ELEMENT r1(a,b,c)
!ELEMENT r2(c,d)
!ELEMENT a (#PCDATA)
!ELEMENT b (#PCDATA)
!ELEMENT c (#PCDATA)
!ELEMENT d (#PCDATA)
]
XML 1.0: Exemplos
 Exercício 2: Dado o documento XML crie um DTD para
o mesmo
?xml version='1.0' ?
!DOCTYPE livro SYSTEM livro.dtd
livro
titulo XML e Java /titulo
autor João Silva /autor
conteudo
capitulo focus=XML Introdução
/capitulo
capitulo focus=XML DTD /capitulo
capitulo focus=XML Elementos
/capitulo
capitulo focus=Java SAX /capitulo
capitulo focus=Java DOM /capitulo
conteudo
bibliografia bla bla bla /bibliografia
copyright ufcgCopyright; /copyright
/livro
XML 1.0: Exemplos
Limitações de DTDs como
esquemas
 DTD impõe ordem
 Não existe a noção de tipos de dados atômicos (int,
float, etc)
 Não podemos especificar uma faixa de valores de
domínio
 IDREF não é relacionado a um tipo.
 Tipos são associados com tags = elementos com
mesmo nome porém pertencendo a diferentes tipos
(nome de pessoa e nome de um curso) não podem
usar o mesmo elemento nome. Nesta caso ou
redefinimos nomePessoa e nomeCurso ou usamo
namespaces com os qualificadores, pessoa:nome e
curso:nome

Mais conteúdo relacionado

Semelhante a Modelagem Dados Semi-Estruturados

Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010
Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010
Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010Eduardo Bertolucci
 
XML - eXtensible Markup Language
XML - eXtensible Markup LanguageXML - eXtensible Markup Language
XML - eXtensible Markup Languageelliando dias
 
Web 3.0 - A Semântica na Rede
Web 3.0 - A Semântica na RedeWeb 3.0 - A Semântica na Rede
Web 3.0 - A Semântica na RedeElvis Fusco
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dadossamlobo
 
Web Semântica e Ontologias
Web Semântica e OntologiasWeb Semântica e Ontologias
Web Semântica e OntologiasDaniela Brauner
 
Fluent NHibernate - Baby Steps
Fluent NHibernate - Baby StepsFluent NHibernate - Baby Steps
Fluent NHibernate - Baby StepsAndré Agostinho
 
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...Renato Bongiorno Bonfanti
 
Do mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsDo mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsWSO2
 
Projeto Piloto de Web Semântica com Dados da Secretaria da Saúde
Projeto Piloto de Web Semântica com Dados da Secretaria da SaúdeProjeto Piloto de Web Semântica com Dados da Secretaria da Saúde
Projeto Piloto de Web Semântica com Dados da Secretaria da SaúdeinovaDay .
 
Montando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webMontando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webigorpimentel
 
Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)samlobo
 
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São GabrielMinicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São GabrielMarcelo Linhares
 
Desenvolvimento Web Parte II
Desenvolvimento Web Parte IIDesenvolvimento Web Parte II
Desenvolvimento Web Parte IIigorpimentel
 
Apresentação web services
Apresentação web servicesApresentação web services
Apresentação web servicesVitor Fonseca
 

Semelhante a Modelagem Dados Semi-Estruturados (20)

eXtensible Markup Language (XML)
eXtensible Markup Language (XML)eXtensible Markup Language (XML)
eXtensible Markup Language (XML)
 
Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010
Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010
Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010
 
XML - eXtensible Markup Language
XML - eXtensible Markup LanguageXML - eXtensible Markup Language
XML - eXtensible Markup Language
 
Web 3.0 - A Semântica na Rede
Web 3.0 - A Semântica na RedeWeb 3.0 - A Semântica na Rede
Web 3.0 - A Semântica na Rede
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dados
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Web Semântica e Ontologias
Web Semântica e OntologiasWeb Semântica e Ontologias
Web Semântica e Ontologias
 
Fluent NHibernate - Baby Steps
Fluent NHibernate - Baby StepsFluent NHibernate - Baby Steps
Fluent NHibernate - Baby Steps
 
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...
 
Do mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsDo mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIs
 
Projeto Piloto de Web Semântica com Dados da Secretaria da Saúde
Projeto Piloto de Web Semântica com Dados da Secretaria da SaúdeProjeto Piloto de Web Semântica com Dados da Secretaria da Saúde
Projeto Piloto de Web Semântica com Dados da Secretaria da Saúde
 
Montando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webMontando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões web
 
Parte5 xml
Parte5 xmlParte5 xml
Parte5 xml
 
Palestra Introdução a Linked Data
Palestra Introdução a Linked DataPalestra Introdução a Linked Data
Palestra Introdução a Linked Data
 
Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)
 
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São GabrielMinicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
 
Webstandards
WebstandardsWebstandards
Webstandards
 
Desenvolvimento Web Parte II
Desenvolvimento Web Parte IIDesenvolvimento Web Parte II
Desenvolvimento Web Parte II
 
WEB 3.0
WEB 3.0WEB 3.0
WEB 3.0
 
Apresentação web services
Apresentação web servicesApresentação web services
Apresentação web services
 

Modelagem Dados Semi-Estruturados

  • 1. 2. Modelagem de Dados semi-estruturados Introdução
  • 2. Dados semi-estruturados ?  Dados semi-estruturados: dados heterogêneos e irregulares, por exemplo XML  Banco de dados: originalmente, sistemas fechados, dedicados a gestão de dados regulares, cuja estrutura pouco evolui no tempo  Novas aplicações requerem mais flexibilidade de representação e estão constantemente evoluindo o esquema  Os modelos relacional e de objetos chegaram a seus limites Introdução
  • 3. Dados semi-estruturados ?  Uma solução: usar um modelo de grafo para armazenar os dados com características semi-estruturadas  Origens de dados semi-estruturados:  integração de fontes heterogêneas  fontes de dados sem estrutura rígida  dados biológicos  dados da Web Introdução
  • 4. Dados semi-estruturados ?  Evolução:  1995: Projeto TSIMMIS, Modelo OEM na Universidade de Stanford, EUA  1996: Projeto LORE, primeiro SGBD semi-estruturado, Stanford  1999: aceitação de XML pela indústria para representação de dados semi- estruturados Introdução
  • 5. Uma sintaxe para dados semi- estruturados  Dados semi-estruturados: dados sem esquema ou auto-descritivos  Não há separação entre os dados e o esquema  Os dados contêm o esquema  Exemplo  {nome:"Ana", tel:"3334567", email:ana@abc.com.br}  {nome:"Ana", tel:"3334567", tel:"9715432"}  Aqui os valores são os dados atômicos  Representação sob forma de grafos nome tel email 3334567 ana@abc.com.br Ana nome tel tel 3334567 9715432 Ana
  • 6. Uma sintaxe para dados semi- estruturados  Os valores podem ser objetos complexos  Exemplo {pessoa: { nome:"ana", tel:"3334567" } }, {pessoa: { nome:{pré- nome:"Victor",sobrenome:"Bezerra"}, tel:"3218765" } }, {pessoa: { nome:"Sandra" }}
  • 7. Representação de bases relacionais  Um BD relacional é descrito por um esquema  r1(a,b,c)  r2(c,d)  r1 e r2 são os nomes das relações  a,b,c,d são os nomes dos atributos  No esquema de uma relação, cada atributo é definido sobre um domínio de valores atômicos. r1 a b c a1 b1 c1 a2 b2 c2 r2 c d c2 d2 c3 d3 {r1:{row:{a:a1,b:b1,c:c1}, row:{a:a2,b:b2,c:c2} }, r2:{row:{c:c2,d:d2}, row:{c:c3,d:d3} }
  • 8. Representação de bases relacionais  Representação num grafo Introdução r1 r2 row row row row a b c a1 b1 c1 a b c a2 b2 c2
  • 9. Representação de bases de objeto  Exemplo: considere uma coleção de três pessoas: Maria tem dois filhos: José e Joana.  Usando o conceito de identidade de objetos, podemos representar esta coleção da seguinte forma: { pessoa:&p1{ nome:"Maria", idade:45, filho:&p2,filho:&p3 } pessoa:&p2{ nome:"José", idade:23, mãe:&p1 } pessoa:&p3{ nome:"Joana", idade:22, mãe:&p1 } }
  • 10. Representação de bases de objeto  Representação em grafo Introdução &p1 &p3 &p2 filho mãe filho mãe nome idade nome idade nome idade Maria 45 Joana 22 José 23 root pessoa pessoa pessoa
  • 11. 2.1. Modelagem de dados semi-estruturados O modelo OEM
  • 12. O modelo OEM  Desenvolvido no projeto TSIMMIS-Stanford  sistema para integração de fontes de dados heterogêneas  Um objeto OEM é uma quádrupla (label,oid,type,value)  label: cadeia de caracteres  oid: identificador do objeto  type: complexo ou atômico(int, string, gif, jpeg …)  value:  se o tipo é complexo, conjunto de oid ’s  senão um valor atômico OEM
  • 13. O modelo OEM  O modelo OEM é um modelo de grafo. Os labels estão nos nodos e não nos arcos como visto anteriormente.  Obs.: Várias extensões ao OEM foram propostas e consireram labels nos arcos! OEM
  • 14. Exemplo de Semistructured Data Model &o1 &o12 &o24 &o29 &o43 &96 &243 &206 &25 “Serge” “Abiteboul” 1997 “Victor” “Vianu” 122 133 paper book paper references references references author title year http author author author title publisher author author title page firstname lastname firstname lastname first last Bib Object Exchange Model (OEM) complex object atomic object
  • 15. Exercício: representação de uma base de objetos usando o modelo OEM  esquema ODL da base de objetos class Estado (extent estados) { attribute string nome; attribute Cidade capital; relationship set<Cidade> cidades-em inverse Cidade::estado-de } class Cidade (extent cidades) { attribute string nome; relationship Estado estado-de inverse Estado:cidades-em; }
  • 16. Exercício: representação de uma base de objetos usando o modelo OEM  Representação de dados ODMG {estados: {estado: &e1{nome: "Pernambuco", capital: &c1, cidades-em: {Cidade: &c1, Cidade: &c2, …} }, estado: &e2{nome:"Paraíba", capital:&c6, cidades-em: {Cidade: &c5, …} }, … }, cidades: {cidade: &c1{nome: "Recife", estado-de: &e1}, cidade: &c2{nome: "Caruaru" , estado-de: &e1}, … }
  • 18. XML ?  « Buzz word »  eXtensible Markup Language  Uma linguagem de descrição de documentos, definida por um organismo internacional W3C  Um conjunto de tecnologias derivadas:  Xlink, Xpointer, Xschema, DOM, SAX, XSL,…  O esperanto da Web Introdução
  • 19. A revolução da Web…  1989 - Primeiro Web Browser  1993 - Mosaic é difundido, há 50 web sites  1994 - Primeiras ferramentas de busca (WWWW, webcrawler)  1996 - US$ 1M gastos em compras na Web, presença em 150 países  1997 - 1 milhão de web sites  1998 - 300.000 web servers  2000 - mais de 1 bilhão de páginas web  2002 – quase 2,5 bilhões de páginas web indexadas (google) Introdução
  • 20. A Web hoje…  documentos HTML  voltada para uso humano  gerado automaticamente por aplicações  Fácil de alcançar qualquer Web page, de qualquer server, em qualquer plataforma Introdução
  • 21. Limites da Web …  aplicações não podem consumir HTML  tecnologia de HTML wrapper é instável (modifica-se a página => modifica-se o wrapper)  tecnologia OO (Corba) requer ambiente controlado  companhias se fundem, formam parcerias; necessitam de interoperabilidade de forma rápida Introdução
  • 22. Web: Mudança de paradigma …  Novo padrão Web XML:  XML gerado por aplicações  XML consumido por aplicações  troca de dados  entre plataformas: interoperabilidade na empresa  entre empresas Introdução
  • 23.  As novas aplicações  Comércio Eletrônico  Protocolos "B2B"  Bibliotecas digitais  sistemas distribuídos  … precisamos de um "super HTML" … estão surgindo ... Introdução
  • 24. XML Um padrão W3C para complementar HTML origens: textos estruturados em SGML motivação: HTML descreve apresentação XML descreve conteúdo http://www.w3.org/TR/REC-xml (2/98)
  • 25. O Segredo do sucesso de HTML Simplicidade: Todo mundo pode escrever HTML 5G@9³wd‚ wx`q&³qdfµydqËtcdvd xv`Ìux`quxdÌdchwtÌ 5G@9³wÌ`svËtÌw¬ydqdr ux`quxdÌËq`w`etÌr`vtaÌt vd̳` `Ëqhb`±¢txshydÌv`qu 5G@9 btsdbw`Ëdc`±tvcdhsetÌr`±¢t`wÌ`y³vcd gƒ ËdÌwd‚ wqhsp
  • 26. De HTML para XML HTML descreve a apresentação
  • 27. HTML h1 Bibliography /h1 p i Foundations of Databases /i Abiteboul, Hull, Vianu br Addison Wesley, 1995 p i Data on the Web /i Abiteoul, Buneman, Suciu br Morgan Kaufmann, 1999
  • 28. XML bibliography book title Foundations… /title author Abiteboul /author author Hull /author author Vianu /author publisher Addison Wesley /publisher year 1995 /year /book … /bibliography XML descreve o conteúdo
  • 29. Exemplo  Suponha que um site de e-commerce precisa emitir uma nota fiscal  Exemplo  Problemas:  Diversos departamentos da empresa usam estes dados de notas fiscais em diferentes plataformas, SO e linguagem de programação
  • 30. Exemplo (cont)  Melhor seria usar XML! ?xml version=“1.0” NotaFiscal NomeCliente Ana Silva /NomeCliente EndCliente Rua das Margaridas, Maceió, AL /EndCliente EndEnvio Rua das Margaridas, Maceió, AL /EndEnvio Item codigo 123 /codigo descricao Parafuso 8mm /decricao quantidade 20 /quantidade preco 3,00 /preco /Item Item … /Item /NotaFiscal
  • 31. Exemplo ficha nome trab ln end email cidade cepSantos Natal 52310 vera@ibge.br IBGE tipo gerente Vera fn ficha nome fnVera/fn lnSantos/ln /nome trab tipo=“gerente IBGE end cidadeNatal/cidade cep52310/cep /end emailvera@ibge.br/email /trab /ficha Elementos Atributos Dados fn tipo 52310 Syntaxe
  • 32. XML: sucessor de HTML  HTML Hypertext Markup Language.  Um conjunto pré-definido e limitado de tags, definidas por uma norma (HTML 2.0, 3.2, 4.0).  Estas tags possuem semânticas variadas:  h1,..,h6, title, address, … dando as indicações estruturais  center,hr,b,i,big,small,… servem para descrever a apresentação. Princípios fundamentais
  • 33. Problemas com HTML  Uma vez criado, um documento é ligado a uma norma particular (ex. HTML 3.2 )  A visualização de um documento é fortemente dependente da interpretação que o navegador faz.  É necessário dispor de várias versões do documento em função da mídia em que vai ser apresentado  A indexação de documentos só pode ser feita sobre a parte textual. Princípios fundamentais
  • 34. XML: uma resposta única a necessidades variadas  HTML é usada como a lingagem universal de apresentação de documentos na Web, mas não é uma linguagem adaptada para descrever a estrutura destes documentos  As bases de dados atuais são muito rígidas para manipular dados cuja estrutura é irregular e evolui com o tempo. Introdução
  • 35. Os segredos de XML  Como HTML:  simples, legível, fácil de aprender  universal e transportável  suportado pela W3C (indústria absorve!)  Mas, Além de HTML  flexível : podemos representar qualquer tipo de informação  extensível: pode-se representar informação de qualquer forma
  • 36. Origem  Trabalho cooperativo de um grande número de empresas e de pesquisadores reunidos no World Wide Web Consortium (W3C)  400 colaboradores da indústria, entre os quais Oracle, IBM, Compaq, Xerox, Microsoft, etc..  Laboratórios de pesquisa: MIT - USA, INRIA - França, universidade de Keio - Japão  Objetivo: definição de um formalismo para facilitar a troca de dados na Web Origem da linguagem XML
  • 37. Mandamentos iniciais:  XML deverá ser diretamente utilizável na Internet  XML deverá suportar uma larga variedade de aplicações  XML deverá ser compatível com SGML  A criação de páginas XML deverá ser também o mais simples possível Origem da linguagem
  • 38. Mandamentos iniciais(2)  Os documentos XML deverão ser de grande legibilidade  A criação de documentos deverá ser rápida  A sintaxe deverá ser formal e concisa  A concisão do código tem mínima importância Origem da Linguagem
  • 39. Histórico  1993: primeiros trabalhos sobre adaptação das técnicas SGML à Web (Sperberg). HTML to the Max: A Manifesto for Adding SGML Intelligence to the World Wide Web  Junho 1996: criação de um grupo de trabalho no W3C  10 fev. 1998: publicação da recomendação para versão 1.0 da linguagem. Origem da lingagem
  • 40. Razões da W3C para usar XML  Permite a publicação eletrônica internacional independente de mídia  Permite que as empresas definam protocolos de transferências de dados  Facilita o desenvolvimento de SW para Web  Disseminação dos dados sem uso formatos proprietários (caros!)  Exibição de informação customizada  Gestão de metadados facilitada
  • 41. XML  XML significa eXtensible Markup Language  sucessor de HTML  herdeiro de SGML XML é um linguagem de descrição e de troca de documentos estruturados Princípios fundamentais
  • 42. XML: herdeiro de SGML  SGML Standard Generalized Markup Language, norma ISO 8879:1986  Muito utilizada na indústria para as grandes técnicas de documentação.  Muito complexa para utilização de «público em geral»  SGML tem demonstrado as vantagens do formato estrutural para a Gestão Eletrônica de Documentos (GED)  XML usa 10% de SGML para representar de forma eficaz 90% dos documentos Princípios Fundamentais
  • 43. Noção estrutural  Princípio chave de SGML  Idéia fundamental: Considere um documento, é desejável separar completamente as informações de estrutura das informações de apresentação. Princípios fundamentais
  • 44. Exemplo de um documento Campina GRande, 20 de maio de 2001 Sr. Edilson Silva, Rua das Flores, 12 581293 Caruaru Bar do Carrego Rua das Bodegas, s/n 58106-920 C. Grande Tel: 012133564 Fax: 879765426 Objet: Dívida? Prezado Senhor, Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v Aproveito do ensejo para renovar meus protestos de elevada estima e consideração. assinatura Rodapé Logotipo Data Destinatário Corpo Rodapé Cabeçalho Objeto Saudação Forma Polida Assinatura
  • 45. Representação XML carta . . . /carta cabeca . . . /cabeca destinatario nome Sr Edilson Silva /nome endereco rua rua das Flores /rua cidade Caruaru /cidade /endereco /destinatario objeto bla bla /objeto data 20 Maio 2001 /data saudacao Prezado Senhor, /saudacao corpo . . . /corpo para Aqui é o primeiro parágrafo /para para aqui é o segundo ... logotipo loc=logo-graph/ endereco abrev-endereco; /endereco
  • 46. Pontos importantes  A representação desta carta em XML não tem nenhuma indicação sobre a apresentação.  As numerosas propriedades gráficas ou tipográficas estão ausentes da fonte XML.  Estas propriedades serão definidas por intermédio de uma folha de estilo.  Uma folha de estilo é um conjunto de regras para especificar a realização concreta de um documento sobre uma mídia particular. Princípios fundamentais
  • 47. Saint Pétaouchnoque, Le 30 nivose 2004 Editions Duschmol, 12 rue Schmurz YT123 Rapis WindStar 2000 Les rosières en buget AB562 Saint Pétaouchnoque Tel: 012133564 Fax: 879765426 Objeto: Dívida Prezado Senhot, Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v . sssinatura Rodapé carta cabeca . . . /cabeca corpo . . . /corpo /carta If carta then ... If cabeca then … If corps then ... If para then Police new roman, size 12, skip first line If … then … estilos
  • 49. Extensibilidade e estrutura  Em XML, um autor ou uma comunidade de autores inventam livremente as tags que lhes pareçam úteis para marcar os componentes de um documento.  Exemplo: diversas formas de representar uma data  date 5 janeiro 2000 /date  date ano 2000 /ano mes 01 /mes dia 05 /dia /date  date format='ISO-8601' 2000-01-05 /date  Grande liberdade de escolha das estruturas de dados facilita a troca de dados  comércio eletrônico  transações financeiras e comerciais  pesquisa e indústria de biotecnologias  multimídia Vantagens de XML
  • 50. Interoperabilidade  Todos os dados podem ser vistos como documentos XML e não mais como arquivos no formato X ou Y.  Consequências:  Um servidor de documentos XML é suscetível de responder a um conjunto de necessidades de uma organização.  Um simples editor de textos pode tratar o conjunto de dados de uma organização.  A interoperabilidade dos utilitários está assegurada. Vantagens de XML
  • 51. Modularidade e reutilização  Cada usuário é livre para definir suas próprias estruturas de documento  O documento pode também estar conforme as estruturas tipadas, chamadas DTD  Cada comunidade pode propor as estruturas normalizadas  A validação a um DTD permite a automatização no tratamento dos dados e assegura uma possibilidade de controle de integridade Vantagens de XML
  • 52. Accesso às fontes de informação heterogêneas  A consulta e troca de dados entre as base de dados heterogêneas é complexa XML contribui pare minimizar este problema: formato de troca normalizado, genérico, independente de plataforma  A indexação e consulta de bases de documentos pode se beneficiar de informações estruturais e textuais.  pesquisa por palavras-chaves: Jorge+Amado retorna todos os documentos contendo as palavras Jorge e Amado, então as páginas pessoais de Pedro Amado cujo filho se chama Jorge.  pesquisa estrutural: pesquisa os documentos cujo autor é Jorge Amado (ie os documentos contendo um elemento autor, ou escrito-por contendo Jorge e Amado) Vantagens de XML
  • 53. XML na prática  Comércio eletrônico: CXML, EBXML  Química, Matemática, Geografia: CML, MathML  Multimídia: SMIL, MPEG-7, MusicML  Desenhos gráficos: SVG  Protocolos de comunicação: SOAP, UDDI, WSDL  Transferência de dados: XMI, GML  Configuração de software  E muito mais!!!!
  • 54. Descoberta de XML Definição da linguagem XML 1.0
  • 55. Exemplos de documentos XML ?xml version=1.0 ? document saudacao Bom dia! /saudacao /document document saudacao Bom dia! /saudacao /document document /document document/ document Bom dia! /document XML 1.0
  • 56. Estrutura de um documento  Um documento XML se compõe  de um prólogo cuja presença é facultativa, mas fortemente aconselhada  de uma árvore de elementos, obrigatória  de comentários e de instruções de tratamento, facultativos ?xml version=1.0 ? document saudacao Bom dia! /saudacao /document XML 1.0
  • 57. O prólogo Contém:  Uma declaração XML, facultativa  da forma: ?xml version=1.0 encoding=ISO-8859-1 standalone=yes  indica ao processador que vai tratar o documento:  a versão da linguagem XML utilizada  o código de caracteres utilizado  a existência de declarações exteriores ao documento  Uma declaração de tipo de documento, facultativa  da forma !DOCTYPE exemplo SYSTEM exemplo.dtd [ declarações ]  indica a estrutura particular a qual deve estar de acordo um documento XML 1.0
  • 58. Estrutura de um DTD  Um DTD pode compreender duas partes  uma parte externa  a parte externa é definida fora do documento. É referenciada por uma referência DTD, frequentemente uma URL. Este mecanismo permite assegurar uma reutilização de DTDs frequentemente utilizados.  uma parte interna  utilizada para especializar um DTD externo genérico ou redefinir certos tipos de elementos XML 1.0
  • 59. Estrutura de um elemento (1)  Um elemento é da forma: nome attr='valor' conteúdo /nome  nome é a tag de abertura  /nome é a tag de fechamento. A presença é obrigatória, a exceção particular dos elementos nulos, denotado por nom /nom ou nom/  conteúdo é o conteúdo de um elemento . Pode ser:  attr='valor' representa um conjunto eventualmente vazio de atributos, ou seja de pares (nome,valor). Os nomes dos atributos são únicos num elemento. XML 1.0 uma mistura de texto e elementos instruções de tratamento comentários vazio texto outros elementos
  • 60. Estrutura de um elemento (2)  Um nome de elemento é uma sequência não nula de caracteres que pode conter  caracteres alphanuméricos  undescore  sinal de menos  ponto  caracter dois-pontos (:) é utilizado, mas com um sentido particular  deve satisfazer as seguintes restrições  o primeiro caracter deve ser alfabético ou um undescore  os três primeiros caracteres não devem formar uma cadeia cuja representação em letras minúsculas seja xml. XML 1.0
  • 61. Estrutura de um elemento (2) Exemplos de nomes de elementos 1998-catalogo xmlSpecification nom sociedade _toto Nome_sociedade xsl:rule X.11 incorretoscorretos XML 1.0
  • 62. Exemplo: Banco FirstBank ?xml version=1.0 banco cliente nomeCliente Helio /nomeCliente ruaCliente Principal /ruaCliente cidadeCliente Recife /cidadeCliente conta numero A-102 /numero agencia Central /agencia saldo 400 /saldo /conta conta … /conta /cliente . . /banco
  • 63. Sintaxe dos atributos  Um atributo é um par nome='valor' que permite de caracterizar um elemento. Um elemento pode ter vários atributos. Neste caso, os pares nome='valor' serão separados por um espaço.  Exemplos  relatorio lingua= ’pt' ult-modif='08/07/99'  anuario generator='SQL2XML V2.0' update='07.08.99'  O nome de um atributo obedece as mesmas regras que o nome de um elemento  O valor de um atributo é uma string entre aspas() ou apóstrofos simples ('). Um valor de atributo não deve conter os caracteres ^, % e . XML 1.0
  • 64. Exemplo Atributos Banco conta tipo=“poupanca” taxa-mensal=“5” numero A-102 /numero agencia Central /agencia saldo 400 /saldo /conta
  • 65. Elementos X Atributos?  No contexto de documentos, atributos são parte da marcação (markup), enquanto conteúdos dos subelementos são parte do conteúdo básico do documento.  No contexto de representação de dados, a diferença não é clara e pode ser confusa:  A mesma informação pode ser representada de duas formas:  conta numero = “A-101” …. /conta  conta numeroA-101/numero … /conta  Sugestão: use attibutos para identificadores de elementos, e use subelementos para conteúdo
  • 66. Seção CDATA Uma seção CDATA instrui o parser a ignorar os caracteres de markup Exemplo: ![CDATA[ *p = q; b = (i = 3); ]] Entre o início da seção, ![CDATA[ e o fim da seção, ]], todos os caracteres são passados diretamente para a aplicação, sem interpretação. A única string que não pode ocorrer numa seção CDATA é ]].
  • 67. Comentários Comentários iniciam com ”!--” e terminam com ”--”. (só não podem conter o string ”--”). Ex.: !-- Isto é um comentário -- Comentários podem ser colocados em qualquer linha do documento.
  • 68. Árvore de elementos Um documento XML contém uma árvore de elementos, com as seguintes restrições:  Existe num documento um único elemento pai que contém todos os outros. É a raiz do documento.  Todo elemento distinto da raiz é totalmente incluído dentro de seu pai. Assim: p b bla bla /p bla /b não é uma estrutura XML. XML 1.0
  • 69. Documentos bem formados  Um documento é dito bem formado se:  está de acordo com as regras sintáticas de XML (tags são aninhadas propriamente e atributos são únicos) ?xml version=1.0 standalone=yes ? document saudacao Bom dia! /saudacao /document Ex. de uma documento não bem formado: document saudacao Bom dia! /document /saudacao XML 1.0
  • 70. Documentos válidos  Um documento é dito válido se:  seu prólogo contém uma declaração de tipo de documento  sua árvore de elementos respeita a estrutura definida pelo DTD ?xml version=1.0 encoding=ISO-8859-1 standalone=yes ? !DOCTYPE document [ !ELEMENT document (saudacao) !ELEMENT saudacao (#PCDATA) ] document saudacao Bom dia! /saudacao /document XML 1.0
  • 71. Noção de DTD  Um documento válido deve conter uma declaração de tipo de documento. Esta declaração pode fazer referência, por intermédio de uma URL a um arquivo externo. Este arquivo é chamado de DTD (Definição de Tipo de Documento).  Exemplo ?xml version=1.0 encoding=ISO-8859-1 standalone=yes ? !DOCTYPE document SYSTEM acolhida.dtd document saudacao Bom dia! /saudacao /document XML 1.0
  • 72. Noção de DTD XML 1.0 !–- Arquivo acolhida.dtd. Exemplo de DTD simples -- !–- Autor: -- !–- Data: -- !–- a declaração XML não é obrigatória dentro de um DTD -- !–- permite assegurar que os documentos que a referenciam -- !–- utilizam a mesma versão de XML -- ?xml version=1.0 encoding=ISO-8859-1 standalone=yes ? !–- Definição do elemento raiz -- !ELEMENT document (saudacao) !–- Um elemento saudacao contém texto -- !ELEMENT saudacao (#PCDATA)
  • 73. Conteúdo de um DTD  Um DTD pode conter as declarações  de elementos  de listas de atributos  de entidades gerais  de entidades parametrizadas  de notações  como também comentários XML 1.0
  • 74. Declaração de elemento  Uma declaração de elemento é da forma !ELEMENT nome modelo  ELEMENT é uma palavra-chave e se escreve imperativamente em maiúsculas  nome é um nome válido de um elemento  modelo é o modelo de conteúdo deste elemento. Distinguimos cinco modelos de conteúdo  elementos  dados  misto  livre  vazio XML 1.0: elementos
  • 75. Modelo de conteúdo de elementos (1)  Sequência de elementos filhos ( .., .., ..)  Exemplo !ELEMENT capitulo (titulo,intro,secao)  Um elemento capitulo cujo conteúdo, imperativamente e nesta ordem, contém sub-elementos titulo, intro e secao.  Alternativa ( ..| ..| ..)  Exemplo !ELEMENT capitulo (titulo,intro,(secao|secoes))  Indicadores de ocorrência *,+,? Um nome de elemento pode ter um indicador de orrorrência: p* : p pode ocorrer zero, uma ou várias vezes dentro do conteúdo de um instância p+ : p pode ocorrer uma ou várias vezes p? : p pode ocorrer zero ou uma vez
  • 76. Modelo de conteúdo de elementos (2)  Exemplos !ELEMENT capitulo ( titulo, intro?, secao+ ) !ELEMENT secao ( titulo-secao, texto-secao ) !ELEMENT texto-secao (p|a)*
  • 77. Modelo de conteúdo de dados  A presença de dados no conteúdo de um elemento é especifidada pela palavra-chave #PCDATA  Exemplo !ELEMENT p (#PCDATA)
  • 78. Modelo de conteúdo misto  Este modelo permite definir os modelos de conteúdo podendo misturar dados e elementos  Forma do modelo (#PCDATA | nome1 | …|nomen)*  Exemplos de declarações !ELEMENT p (#PCDATA | negrito | italico | sublinhado)* !ELEMENT negrito (#PCDATA|italico|sublinhado)* !ELEMENT italico (#PCDATA) !ELEMENT sublinhado (#PCDATA)  Exemplo de uso p um parágrafo pode conter texto negrito em evidência /negrito ou em italico itálico /italico/p
  • 79. Modelo de conteúdo livre (1)  Um elemento pode ser definido como sendo um conteúdo qualquer, desde que este conteúdo respeite as regras gerais da linguagem XML.  Exemplo !ELEMENT qualquer ANY  Para que o conteúdo de um elemento de modelo de conteúdo livre seja válido, é necessário que, se ele contiver elementos, estes sejam declarados num DTD
  • 80. Modelo de conteúdo livre (2)  Utilidade: este modelo de conteúdo é particularmente útil quando da criação de um DTD complexo  Exemplo !ELEMENT relatorio ANY !ELEMENT capitulo ANY !ELEMENT secao ANY !ELEMENT titulo-secao ANY !ELEMENT ilustracao ANY !ELEMENT bibliografia ANY !ELEMENT indice ANY !ELEMENT p ANY !ELEMENT negrito (#PCDATA) !ELEMENT titulo (#PCDATA) !ELEMENT autor (prenome+,nome) !ELEMENT nome (#PCDATA) !ELEMENT prenome (#PCDATA)
  • 81. Modelo de conteúdo vazio  Um elemento pode ser declarado como obrigatoriamente vazio, usando a palavra-chave EMPTY.  Exemplo de declarações !ELEMENT p (#PCDATA|bibref)* !ELEMENT bibref EMPTY !ATTLIST bibref ref IDREF #REQUIRED  Exemplo de utilização p para uma definição precisa, veja bibref ref='REC-xml-19980210'/ /p XML 1.0: elements
  • 82. Modelo de conteúdo vazio  Observações:  quando o modelo de conteúdo de um elemento é o modelo vazio, deve obrigatoriamente obedecer a sintaxe nome/  não é possível misturar EMPTY a uma outra construção de modelo de conteúdo
  • 83. ?xml version=1.0? !ELEMENT EMAIL (TO+, FROM, CC*, BCC*, SUBJECT?, BODY?) !ATTLIST EMAIL LANGUAGE (Western|Greek|Latin|Universal) Western ENCRYPTED CDATA #IMPLIED PRIORITY (NORMAL|LOW|HIGH) NORMAL !ELEMENT TO (#PCDATA) !ELEMENT FROM (#PCDATA) !ELEMENT CC (#PCDATA) !ELEMENT BCC (#PCDATA) !ATTLIST BCC HIDDEN CDATA #FIXED TRUE !ELEMENT SUBJECT (#PCDATA) !ELEMENT BODY (#PCDATA) !ENTITY SIGNATURE José Silva XML 1.0 Exemplo de DTD
  • 84. Exercício 1  Com o DTD anterior gere um documento XML válido
  • 85. Exemplo de um DTD de Banco !DOCTYPE banco [ !ELEMENT banco ( ( conta | cliente | deposito)+) !ELEMENT conta (numero agencia saldo) ! ELEMENT cliente(nomeCliente rua cidade) ! ELEMENT deposito (nomeCliente conta) ! ELEMENT conta (#PCDATA) ! ELEMENT agencia (#PCDATA) ! ELEMENT saldo(#PCDATA) ! ELEMENT nomeCliente (#PCDATA) ! ELEMENT rua(#PCDATA) ! ELEMENT cidade(#PCDATA) ]
  • 86. Declaração de atributos  Um atributo é um par nome-valor associado a um elemento  uma declaração de atributos num DTD permite especificar os atributos que poderão ou deverão estar associados às instâncias dos elementos.  Forma da declaração !ATTLIST nome-elemento nome-atributo tipo-atributo declaração-default XML 1.0: atributos
  • 87. Declaração de atributos  Exemplos !ELEMENT ex1 (#PCDATA) !ATTLIST ex1 xml:lang NMTOKEN #IMPLIED !ATTLIST ex1 target ID #implied !ATTLIST ex1 nb (1 | 2 | 3) '1' equivalente a !ATTLIST ex1 xml:lang NMTOKEN #IMPLIED target ID #implied nb (1 | 2 | 3) '1' XML 1.0: atributos
  • 88. Tipo de atributo  O tipo de atributo pode ser:  CDATA: o valor do atributo é uma cadeia de caracteres  ID ou IDREF: permite definir um identificador para um documento  Uma lista de escolhas num conjunto de tokens, ou identificadores lógicos  NMTOKEN ou NMTOKENS: abreviação de Name Token. Permite ao atributo de ter seu valor de um conjunto de nomes simbólicos.  ENTITY ou ENTITIES: permite que um atributo tome como valor o nome de uma entidade externa não XML  NOTATION: define um atributo de notação XML 1.0: atributos
  • 89. Declaração default  Possui quatro formas  valor por default do atributo  #REQUIRED: cada instância deverá ter um atributo deste nome. Não aceita valor default.  #IMPLIED: presença facultativa. Não aceita valor default.  #FIXED: fixa o valor deste atributo para toda instância. XML 1.0: atributos
  • 90. Exemplos (1)  Atributo CDATA !ATTLIST f att1 CDATA #FIXED 'toto' O atributo att1 dos elementos de tipo f tem um valorr constante: o string toto.  Atributo enumerado  Exemplo 1 !ELEMENT data (#PCDATA) !ATTLIST data formato (ANSI | ISO | BR) #REQUIRED data formato= ’BR' 24 Maio 1998 /data data formato='ISO' 1998-05-24 /data O atributo formato é obrigatório e deve ter valores do tipo ANSI, ISO ou BR  Exemplo 2 !ELEMENT list (item,item+) !ELEMENT item (list|#PCDATA) !ATTLIST list type (ord | num | alpha) 'ord' list type='alpha' item Maria /item item Pedro /item item José /item /list XML 1.0: atributos
  • 91. Exemplos (2)  Atributos ID e IDREF Estes tipos de atributos permitem de criar uma referência a um documento !–- declaração do element secao -- !–- o atributo de identificação de secao -- !–- target é optional -- !ELEMENT secao (#PCDATA|xref)* !ATTLIST secao target ID #IMPLIED !–- declaracao do elemento xref -- !ELEMENT xref EMPTY !ATTLIST xref ref IDREF #REQUIRED secao target='X321' conteúdo de uma seção /secao secao outra seção. Faz referência à seção X321 xref ref='X321'/ /secao Obs.: nós não referenciamos de fato uma seção, mas um elemento do documento que possui um atributo do tipo ID e cujo valor é X321. XML 1.0: atributos
  • 92. Exemplo DTD Banco com atributos Trecho de um DTD de Banco com ID e IDREF !DOCTYPE banco-2[ … ... !ELEMENT conta (agencia, saldo) !ATTLIST conta numero ID # REQUIRED proprietarios IDREFS # REQUIRED !ELEMENT cliente(nomeCliente, rua, cidade) !ATTLIST cliente clienteID ID # REQUIRED contas IDREFS # REQUIRED … ]
  • 93. Exemplo de XML para DTD Banco com ID e IDREF banco-2 conta numero=“A-401” proprietarios=“C100 C102” agencia Centro /agencia saldo 500 /saldo /conta cliente clienteID=“C100” contas=“A-401” nomeClienteJosé Silva /nomeCliente rua Juçaras /rua cidade Maceió/cidade /cliente cliente clienteID=“C102” contas=“A-401 A-402” nomeCliente Maria Lima /nomeCliente rua Flores /rua cidade Salvador /cidade /cliente /banco-2
  • 94. Entidades internas  Entidades pré-definidas  certos caracteres, como ' não podem ser utilizados dentro do texto de um documento  estes caracteres devem ser representados por seus códigos pré-definidos, chamadas entidades pré-definidas : lt; : gt; : amp; XML 1.0: entidades
  • 95. Entidades internas  Entidades definidas pelo usuário  é possível declarar as entidades dentro do DTD  esta declaração tem a forma !ENTITY nome-entidade valor-entidade  Exemplo a declaração seguinte !DOCTYPE toto [ !ENTITY copyright #x00A9; Editions titi ] toto copyright; /toto produzirá © Editions titi observação: 00A9 é o código Unicode do caracter © XML 1.0: entidades
  • 96. Entidades externas endereçadas por URL  Exemplo ?xml version='1.0' ? !DOCTYPE livro [ !ENTITY capitulo1 SYSTEM chap1.xml !ENTITY capitulo2 SYSTEM chap2.xml !ENTITY autor toto ] livro titulo XML para idiotas /titulo autor autor; /autor intro Era uma vez uma Web… /intro capitulo1; capitulo2; /livro  Restrição: as entidades externas devem ser documentos bem formados
  • 97. Notações e entidades não XML  Exemplo !DOCTYPE exemplo [ !NOTATION jpeg SYSTEM /usr/local/bin/xview !ENTITY foto-ferias SYSTEM ./fotos/foto1.jpg NDATA jpeg !ELEMENT exemplo (foto) !ELEMENT foto EMPTY !ATTLIST foto img ENTITY #REQUIRED exemplo foto img='foto-ferias'/ /exemplo ]  A declaração de notação associa ao formato jpeg a aplicação xview que poderá ser utilizada em extensão da aplicação XML.  A declaração da entidade foto-ferias indica que o conteúdo dos dados está situado no arquivo foto1.jpg  A palavra-chave NDATA indica que este arquivo é de um formato não XML
  • 98.  Exemplo ?xml version='1.0' ? !DOCTYPE db [ !ELEMENT db (pessoa*) !ELEMENT pessoa (nome, idade, email) !ELEMENT nome (#PCDATA) !ELEMENT idade (#PCDATA) !ELEMENT email (#PCDATA) ] db pessoa nome Pedro Maia /nome idade 33 /idade email maia@yahoo.com /email /pessoa pessoa nome Ana Maria /nome idade 24 /idade email ana.maria@uol.com.br /email /pessoa pessoa . . . /pessoa /db XML 1.0: Exemplos
  • 99. DTDs como esquemas Exemplo Seja o esquema r1(a, b, c) e r2 (c, e) db r1 a a1 /a b b1 /b c c1 /c /r1 r1 a a2 /a b b2 /b c c2 /c /r1 r2 c c1 /c d d1 /d /r2 r2 c c2 /c d d3 /d /r2 /db !DOCTYPE db[ !ELEMENT (r1*|r2*) !ELEMENT r1(a,b,c) !ELEMENT r2(c,d) !ELEMENT a (#PCDATA) !ELEMENT b (#PCDATA) !ELEMENT c (#PCDATA) !ELEMENT d (#PCDATA) ] XML 1.0: Exemplos
  • 100.  Exercício 2: Dado o documento XML crie um DTD para o mesmo ?xml version='1.0' ? !DOCTYPE livro SYSTEM livro.dtd livro titulo XML e Java /titulo autor João Silva /autor conteudo capitulo focus=XML Introdução /capitulo capitulo focus=XML DTD /capitulo capitulo focus=XML Elementos /capitulo capitulo focus=Java SAX /capitulo capitulo focus=Java DOM /capitulo conteudo bibliografia bla bla bla /bibliografia copyright ufcgCopyright; /copyright /livro XML 1.0: Exemplos
  • 101. Limitações de DTDs como esquemas  DTD impõe ordem  Não existe a noção de tipos de dados atômicos (int, float, etc)  Não podemos especificar uma faixa de valores de domínio  IDREF não é relacionado a um tipo.  Tipos são associados com tags = elementos com mesmo nome porém pertencendo a diferentes tipos (nome de pessoa e nome de um curso) não podem usar o mesmo elemento nome. Nesta caso ou redefinimos nomePessoa e nomeCurso ou usamo namespaces com os qualificadores, pessoa:nome e curso:nome

Notas do Editor

  1. 1- la pérennité des documents n&apos;est pas assurée. Pas d&apos;importance pour la majorité des documents, mais vrai problème pour articles scientifiques, encyclopédies, documentations techniques etc.. 2- 3- problèmes de maintenance. Par ex, plusieurs versions d&apos;un même site à entretenir. Dans l&apos;avenir, versions vont tendre à se multiplier (sites accessibles à partir de téléphones portables, WML (wireless markup language) 4- vrai problème actuellement. Les moteurs de recherche ne sont plus pertinents du fait de la trop grande masse de documents en ligne
  2. Une recommandation dans le jargon du W3C signifie un standard industriel de fait. Il n&apos;a cependant pas de valeur normative.
  3. Exemple d&apos;utilisation: industrie aéronautique. La doc technique imprimée d&apos;un avion représente son poids total. De plus, nécessité de conserver une trace de chacune des interventions réalisées. Enfin chaque modèle est unique, du fait des améliorations successives apportées en cours de vie du modèle. Les 747 fabriqués actuellement n&apos;ont pas grand chose à voir avec les premiers modèles sortis des chaînes. En cas de réparation, il faut pouvoir retrouver rapidement et précisément la démarche à effectuer.
  4. Considérons une lettre commerciale. Grâce aux conventions de mise en page d&apos;une lettre, nous pouvons repérer aisément ses éléments constitutifs, comme le logo etc. Certains peuvent se décomposer à nouveau en entités élémentaires. Ainsi l&apos;entête se compose d&apos;un nom d&apos;entreprise, d&apos;une adresse, d&apos;un logo, le destinataire se compose d&apos;un nom de personne et d&apos;une adresse, le corps de la lettre est composé éventuellement de plusieurs paragraphes. XML va simplement offrir des conventions pour représenter cette lettre en repérant chacun de ses éléments constitutifs.