Gestão de dados XML Introdução
Helena Galhardas
DEI IST
Agenda









Contexto
O que é o XML?
Herança
Dialectos
Vantagens de XML
Uma vista de olhos sobre a linguagem
Tipos em XML
Alguns standards importantes
Sumário
Revolução da Web

HTML tem sido a linguagem da Web


Existem milhares de páginas


Mesmo se existe uma grande quantidade de
ficheiros .doc, .ps, .pdf, .jpg, .gif, som, vídeo
Públicas/privadas, estáticas/dinâmicas,
vísiveis/escondidas
Suporte natural para a informação distribuída

Destinada a seres humanos e, cada vez mais,
para as aplicações
Aplicações sobre dados distribuídos
sobre a Web

HTML não está adaptado a estas aplicações




B2C, B2B, bibliotecas on-line, ...
Não chega aceder a um conjunto de páginas
HTML como nos motores de busca
Estas aplicações necessitam de “tipos” para
representar a estrutura dos dados
Que modelo de dados então adoptar?

Base de Dados?
Modelo BD relacional vs Modelo
dados Web (1)


Conhece-se a estrutura das tabelas e a
semântica das colunas; não sobre a Web
Estrutura dos dados fixa vs irregular



Estrutura explicita vs implicita
Alguns dados podem não ter estrutura


Falta de dados
Texto, imagens
Alguns dados podem não ser conforme a
estrutura
Modelo BD relacional vs Modelo
dados Web (2)

Esquema de dados:




pode ser deduzido a posteriori
pode ser complexo e grande
pode ser ignorado pelas interrogações
pode evoluir mto rapidamente.
Junção de dois modelos resulta ....
Gestão de documentos
SGML
Documentação
hipertexto
HTML
Gestão de dados
Bases de Dados
estruturadas
(relacional e OO)
Bases de dados
semi-estruturadas
Dados semi-estruturados
Estrutura
mínima
Books
Hierarquia
+
Contracts
Emails
Catalogs
Financial Reports
Systèmes Economical Analysis
Documentaire
Political analysis
Financial News
Sports News
Dados
estruturados
Metadados
Bank accounts
Systèmes
Inventory
Relationnels
Insurance Claims
Insurance Policies
Derivatives
Resumes
Acesso a dados XML

Características das interrogações:






Bases de dados (estilo SQL/OQL)
Navegação
Palavras chaves (estilo motor de pesquisa Web) e “pattern
matching” (estilo comando “grep”)
Interrogação de dados e estrutura ao mesmo tempo – a
estrutura não é totalmente conhecida previamente
Interrogações têem em conta o factor tempo, sobre versões,
arquivos, mudanças nos dados
Apoio linguístico: sinónimos, correcções de erros ortográficos
O que é o XML?
XML – eXtensible Markup Language





Formato universal para os documentos e dados
semi-estruturados na Web
Versão simplificada de SGML
Esperanto da Web que vai substituir o HTML
Família de standards: XLink, XPath, XSL, XQuery,
SOAP, DOM, ....
Modelo de dados baseado em árvores e uma
linguagem de representação baseada em “tags”
(etiquetas)
Exemplo (estrutura e semântica entre
tags)
<ficha>
<nome>
ficha
<fn>Helena</fn>
<ln>Galhardas</ln>
missão
nome
trab
tipo
</nome>
<trab tipo=“ensino">
ln
fn
IST Ender. email ensino Ensinar bem… IST
<ender>
<cidade>Porto Salvo</cidade>
<cp>92310</cp>
CP
[email protected]
HelenaGalhardas cidade
</ender>
<email>[email protected]</email>
Porto Salvo 2790-380
</trab>
<missão>Ensinar bem
Elementos fn
</missão>
Atributos tipo
</ficha>
Dados
2790-380
Observações (1)



XML fornece uma sintaxe, não fornece
semântica apriori
As tags não têm apresentação ou significado
definido pela linguagem, mas podem fazer
sentido para as aplicações
XML define apenas a estrutura e conteúdo
de um documentos, não o seu
comportamento nem o seu tratamento
Observações (2)

Desenvolvida e promovida pelo W3C





Indústria: Oracle, IBM, Microsoft, CompaQ, Xerox,...
Laboratórios de investigação: MIT, INRIA, etc
Sobre a Internet: publicação e troca de informação
Simplicidade: produção, leitura, análise sintática,
compreensão
Os mesmos dados com diferentes folhas de estilo
disponíveis para diferentes suportes e numerosas
aplicações
Múltiplos standards


XML: dados
[DTD],Xschema, XSD: tipos







Os documentos devem ser bem formados, mas os tipos
não são obrigatórios
XSLT, Xquery: transformação e interrogações
XPATH: caminhos
XLink: ligações entre documentos
DOM: API
SOAP: computação distribuída
...
Herança
XML como sucessor de HTML

HTML: Hypertext Markup Language


Um cjto pré-definido de tags sobretudo para
apresentação, definido por uma norma
Semântica das tags:


h1,...,h6, título, endereço, ... Dão indicações
estruturais
Center, hr, b, i, big, small, ... Não servem senão a
descrever um formato de página
Problemas do HTML




A apresentação do documento está
fortemente dependente da interpretação que
faz o navegador
É necessário ter várias versões do
documento em função do meio
A indexação dos documentos só se pode
fazer sobre a parte textual
É um documento e não são dados!
SGML e etiquetagem (tagging)
estrutural



Era necessário passar de etiquetagem de
apresentação para etiquetagem estrutural
XML descendente de SGML utilizam etiquetagem
estrutural
SGML: Standardized Generalized Markup
Language




Mto utilizada em documentação técnica
Documentação tem que ser precisa e não ambígua
SGML + vocabulário controlado: ontologia
Meta-linguagens de descrição e de troca de
documentos estruturados

Meta-linguagem: possibilidade de definir dialectos sobre
domínios especificos
XML vs SGML

SGML




Mto utilizada na indústria para grandes documentações
técnicas
Demasiado complexa para uma utilização pública em geral
ou em domínios de aplicação menos exigentes em termos
de precisão
Mtos aspectos complicados e inúteis
XML

Utiliza 10% do SGML para representar de forma eficaz a
maior parte das necessidades das aplicações
Exemplo de documento
Cabeçalho
Logotipo
WindStar 2000
Les rosières en buget
AB562 Saint Pétaouchnoque
Tel: 012133564
Fax: 879765426
Objecto
Saint Pétaouchnoque,
Le 30 nivose 2004
Editions Duschmol,
12 rue Schmurz
YT123 Rapis
Saudação
Data
Destinatário
Objet: ben quoi?
Fórmula de
simpatia
Monsieur,
Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg
fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef
iheznf jùkvbc lkhdklvn v
Corpo
Veuillez agréer patati patata vachement sincères.
signature
Rodapé
Pied de page
Assinatura
Representação XML
<carta>
<cabeçalho>
<logotipo loc="lgraph.vml"/>
<endereço>
&abrev-adresse;
</endereço>
</cabeçalho>
<destinatário>
<nome> Mr Schnock </nome>
<endereço>
<rua>
rue des églantiers
</rua>
<cidade>
Saint Glin
</cidade>
</endereço>
</destinatário>
<objecto> bla bla </objecto>
…
…
<data>
30 Nivose 2004
</data>
<saudação>
Monsieur,
</saudação>
<corpo>
<paragrafo>
Ici le premier paragraphe
</paragrafo>
<paragrafo>
et là le deuxième
</paragrafo>
</corpo>
</carta>
Aspectos importantes

A representação desta carta em XML não
comporta nenhuma indicação sobre a
apresentação do documento



Os aspectos gráficos estão ausentes da fonte
XML
Estes aspectos serão definidos por uma style
sheet.
Uma style sheet é um cjto. de regras para
especificar a realização concreta de um
documento sobre um meio em particular
Principio de funcionamento das sshs
<carta>
<cabeçalho>
. . .
</cabeçalho>
Se carta então …
Se cabeçalho então …
Se corpo então
Se paragrafo então
Type new roman,
size 12,
identar primeira linha
<corpo>
. . .
</corpo>
</carta>
Se … então …
WindStar 2000
Les rosières en buget
AB562 Saint Pétaouchnoque
Tel: 012133564
Fax: 879765426
Saint Pétaouchnoque,
Le 30 nivose 2004
Editions Duschmol,
12 rue Schmurz
YT123 Rapis
Objet: ben quoi?
Monsieur,
Bla bla bli, bli blo bla, kkkk vhlg
vckjdhklbg fdskjbvhv feje slc ifehfe
fhckh c jeflccj n khef iheznf jùkvbc
lkhdklvn v
Veuillez agréer patati patata vachement sincères.
signature
Pied de page
Alguns dialectos
Ideia geral

Para uma determinada aplicação, define-se
uma sintaxe (um dialecto XML) e define-se a
sua semântica.

Exemplos: XHTML, MathML, SVG, XSL,
SOAP, WSDL, XML Schema
XHTML = HTML com uma sintaxe
XML

Reformulação de HTML como sendo uma
aplicação XML


Fecha-se o que se abriu
Interesse:



sintaxe mais rigorosa
Importação de fragmentos de documentos de
outros domínios
Possibilidade de utilizar aplicações XML standard
MathXML


Permite a troca e tratamento de expressões
matemáticas sobre a Web
Facilita a inserção de expressões
matemáticas em docs HTML ou XML
SVG: gráficos 2D



Linguagem de descrição de gráficos 2D
Gráficos vectoriais
Interactivos e dinâmicos


Animações declarativas
Programação ECMAScript
SMIL



Video
Sincronização entre imagem e som
Sincronização entre várias janelas
SOAP: Simple Object Access Protocol


Protocolo de tansferência de dados entre
aplicações distantes
Adaptado para ser utilizado debaixo do
protocolo HTTP
Exemplo SOAP
<evp:Envelope
xmlns:evp='http://schemas.xmlsoap.org/soap/envelope/'
evp:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
<evp:Header>
<t:Transaction
xmlns:t='http://stock.org/registry/updPriceList/'>
evp:mustUnderstand='1'> 5
</t:Transaction>
</evp:Header>
<evp:Body>
<m:GetLastTradePrice
xmlns:'http://stock.org/registry/updPriceList'>
<symbol>DEF</symbol>
<company>DEF Corp</company>
</m:GetLastTradePrice>
</evp:Body>
</evp:envelop>
Vantagens do XML
Transferência e partilha de informação


Uma comunidade de utilizadores (ex: indústria da
biotecnologia) inventa livremente as tags que lhe
parecem úteis para representar as informações que
pretendem trocar ou partilhar
Exemplo: diferentes maneiras de representar uma
data
<data> 5 Janvier 2000 </data>
<data>
<a>2000</a><m>01</m><d>05</d>
</data>
<data formato='ISO-8601'> 2000-01-05 </data>
Interoperabilidade das ferramentas de
tratamento

Ferramentas para dados XML


Parsers, editores, browsers,...
Consequências:


Um servidor de documentos XML consegue
responder a um conjunto de necessidades de
uma organização
Um único editor permite tratar o conjunto de
dados de uma organização
Modularidade e reutilização



Cada utilizador é livre de definir as suas
próprias estruturas de documento ou utilizar
as estruturas já definidas
Cada comunidade pode tb propôr estruturas
normalizadas
Ser conforme uma estrutura pré-definida
permite a automatização dos tratamentos e
assegura a possibilidade de validação.
Acesso a fontes de informação
heterógeneas


A interrogação e a troca de dados entre
sistemas de informação hetérógeneos é mtas
vezes complexa
XML pretende colmatar esse problema


Formato de transferência de informação
normalizado independente da plataforma
A indexação e interrogação de bases de
dados documentais grandes é baseada em
informações estruturais e textuais.
Vista de olhos sobre a linguagem
Exemplos de documentos XML
<document/>
<document> </document>
<document> Bom dia! </document>
<document>
<saudação> Bom dia! </saudação>
</document>
<?xml version="1.0" standalone="yes" ?>
<document>o
<saudação> Bom dia! </saudação>
</document>
XML 1.0: estrutura de um elemento





Um elemento tem a forma:
<nome atributo='valor'> conteúdo </nome>
<nome> é a tag de abertura
</nome> é a tag de fecho
[ elementos vazios: <nome> </nome> ou </nome> ]
« »conteúdo é o conteúdo de um elemento!



Composto por uma lista (pode ser vazia) de texto, de outros
elementos, de instruções de tratamento, de comentários
atr='valor' representa um cjto, eventualmente vazio, de
atributos – pares (nome, valor).
Um elemento só pode ter um atributo com um
determinado nome.
Exemplos de elementos
<a></a>
</a>
<a>Olá, bom dia</a>
<a><b>…</b><b>…</b><a>…</a></a>
<a><b>…</b>Olá<b>…</b>Bom dia</a>


Conteúdo de um elemento = floresta de
elementos ou de texto
Text UNICODE: pode representar qualquer
alfabeto
XML 1.0: Restrições sobre os nomes

O nome de um elemento ou
atributo é uma cadeia não vazia
de caracteres, escolhidos entre:

Caracteres alfa-numéricos,
sublinhado (undescore), sinal
menos, o ponto, caracter dois
pontos (:)
Que deve satisfazer as seguintes
condições:


O primeiros caracter deve ser
alfabético ou sublinhado
Os três primeiros caracteres não
devem formar uma cadeia cuja
representação em minúsculas é
"xml".
Exemplos de nomes de elementos
correctos
_toto
Nom_sociedade
xsl:rule
X.11
incorrectos
1998-catalogo
XmlSpec
nome sociedade
XML 1.0: Sintaxe dos atributos


Um atributo é um par nome='valor' que
caracteriza um elemento
Um elemento pode ter vários atributos (separados
por espaço):


O valor de um atributo é uma cadeia delimitada por
aspas (") ou (').


<relatório língua=‘pt' ult-modif='08/07/99'>
Não deve conter os caracteres ^, % e &.
Um elemento tem um cjto de atributos (a ordem não
tem importância)
XML 1.0: Documento bem formado

Um documento XML deve representar uma
árvore de elementos

Raiz do documento: um único elemento que
contem todos os outros
Tipos do XML
Estrutura de um documento

Um documento XML é composto por:

Prólogo, eventualmente vazio
<?xml version="1.0" standalone="yes" ?>

Uma árvore de elementos:
<document>
<saudacao> Bom dia! </saudacao>
</document>
Prólogo

Declaração XML facultativa

Indica ao processador a versão da linguagem usada, a
codificação de caracteres usada, a existência de
declarações exteriores ao documento
<?xml version="1.0" encoding="ISO-8859-1"
standalone="yes">

Declaração de tipo de documento, facultativa:

Indica a estrutura particular a que deve obedecer o
documento
<!DOCTYPE exemplo SYSTEM "exemplo.dtd" >
Documento bem formado sem
tipificação
<?xml version="1.0" standalone="yes"
?>
<document>
<saudacao>
Bom dia!
</saudacao>
</document>
Documentos válidos

Um documento é válido se:


Seu prólogo contém uma declaração de tipo de
documento
A sua árvore de elementos respeita a estrutura
definida pela declaração do tipo
<?xml version="1.0"
encoding="ISO-8859-1"
standalone="yes" ?>
<!DOCTYPE document [
<!ELEMENT document
(saudacao)>
<!ELEMENT saudacao
(#PCDATA)>
]>
<document>
<saudacao> Bom dia!
Alguns standards importantes





DOM (Document Object Model): interface de
programação que permite aceder à estrutura
e conteúdo dos documentos
XPath: linguagem de expressões de caminho
para aceder a partes do documento
XLink (XML Linking Language):
XSLT: linguagem de transformação
XQuery: linguagem de interrogação (o SQL
do XML)
Resumo
Resumo: o que interessa lembrar


Semi-estruturado: casamento entre sistemas
documentais e SGBDs
XML



Árvores ordenadas, etiquetadas e com ligações
Semântica e tipos estão nas tags
Formato de transferência de dados
Resumo: tecnologia

SGBDs:


Documentos:


B-tree, hash table, optimização de interrogações
Indíce texto, classificação
XML:

Autómato de árvores
Resumo: problemas antigos ressurgem




Optimização de interrogações distribuídas
Integração de dados
Procura de dados e serviços
Gestão de actualizações de dados
Referências





Serge Abiteboul, Slides of the course: “Données
Semistructurées”, Master Recherche Informatique
Paris Sud, http://www-rocq.inria.fr/~abitebou/MasterSSD/index.html
Erik Wilde, Slides of the course: “XML Foundations”,
UC Berkeley, http://dret.net/lectures/xml-fall07/
XML 1.0 Press Release,
http://www.w3.org/Press/1998/XML10-REC
XML 1.0 Spec, http://www.w3.org/TR/REC-xml/
S. Abiteboul, P. Buneman, D. Suciu, “Data on the
Web, From Relations to Semistructured Data and
XML”, Morgan Kaufmann, 2000.
Tópicos próximas aulas






Introdução ao XML
Modelo de dados semi-estruturado
XSDL, DTD, XML Schema
XSLT
XPath
XQuery