O documento discute a modelagem de dados semi-estruturados. Apresenta o que são dados semi-estruturados e como eles podem ser representados usando um modelo de grafo. Também descreve a evolução histórica dos sistemas de gerenciamento de dados semi-estruturados, incluindo projetos iniciais e a aceitação do XML pela indústria.
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}
}
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
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
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!!!!
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
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
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- la pérennité des documents n'est pas assurée. Pas d'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'un même site à entretenir. Dans l'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
Une recommandation dans le jargon du W3C signifie un standard industriel de fait. Il n'a cependant pas de valeur normative.
Exemple d'utilisation: industrie aéronautique. La doc technique imprimée d'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'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.
Considérons une lettre commerciale. Grâce aux conventions de mise en page d'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'entête se compose d'un nom d'entreprise, d'une adresse, d'un logo, le destinataire se compose d'un nom de personne et d'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.