gestão de dados xml - introdução

56
Gestão de dados XML - Introdução Helena Galhardas DEI IST

Upload: hanzila

Post on 17-Mar-2016

30 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Gestão de dados XML - Introdução

Gestão de dados XML - Introdução

Helena GalhardasDEI IST

Page 2: Gestão de dados XML - Introdução

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

Page 3: Gestão de dados XML - Introdução

Revolução da Web

HTML tem sido a linguagem da Web Mesmo se existe uma grande quantidade de

ficheiros .doc, .ps, .pdf, .jpg, .gif, som, vídeo Existem milhares de páginas

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

Page 4: Gestão de dados XML - Introdução

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?

Page 5: Gestão de dados XML - Introdução

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

Falta de dados Estrutura explicita vs implicita Alguns dados podem não ter estrutura

Texto, imagens Alguns dados podem não ser conforme a

estrutura

Page 6: Gestão de dados XML - Introdução

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.

Page 7: Gestão de dados XML - Introdução

Junção de dois modelos resulta ....

Gestão de documentos

SGML

HTML

Documentação hipertexto

Gestão de dados

Bases de Dados estruturadas(relacional e OO)

Bases de dadossemi-estruturadas

Page 8: Gestão de dados XML - Introdução

Dados semi-estruturados

Systèmes Documentaire

SystèmesRelationnels

Dados estruturados

Estrutura mínima

MetadadosHierarquia +

Books Contracts Catalogs Bank accounts

Emails Financial Reports Insurance Policies

Economical Analysis Derivatives Inventory

Political analysis Insurance Claims

Financial News Sports News Resumes

Page 9: Gestão de dados XML - Introdução

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

Page 10: Gestão de dados XML - Introdução

O que é o XML?

Page 11: Gestão de dados XML - Introdução

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)

Page 12: Gestão de dados XML - Introdução

Exemplo (estrutura e semântica entre tags)

ficha

nome trab

ln Ender. email

cidade CPGalhardas

Porto Salvo2790-380

[email protected]

IST Ensinar bem…

missãotipo

ensino

fn

fn

tipo2790-380

Helena

ElementosAtributosDados

<ficha><nome>

<fn>Helena</fn><ln>Galhardas</ln>

</nome><trab tipo=“ensino">

IST<ender><cidade>Porto Salvo</cidade><cp>92310</cp></ender><email>[email protected]</email>

</trab><missão>Ensinar bem</missão></ficha>

Page 13: Gestão de dados XML - Introdução

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

Page 14: Gestão de dados XML - Introdução

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

Page 15: Gestão de dados XML - Introdução

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 ...

Page 16: Gestão de dados XML - Introdução

Herança

Page 17: Gestão de dados XML - Introdução

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

Page 18: Gestão de dados XML - Introdução

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!

Page 19: Gestão de dados XML - Introdução

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

Page 20: Gestão de dados XML - Introdução

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

Page 21: Gestão de dados XML - Introdução

Exemplo de documento

Saint Pétaouchnoque,Le 30 nivose 2004

Editions Duschmol,12 rue SchmurzYT123 Rapis

WindStar 2000Les rosières en bugetAB562 Saint Pétaouchnoque

Tel: 012133564Fax: 879765426

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

Logotipo

Data

Destinatário

Corpo

Rodapé

Cabeçalho

Objecto

Saudação

Fórmula de simpatia

Assinatura

Page 22: Gestão de dados XML - Introdução

Representação XML…<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>

<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>…

Page 23: Gestão de dados XML - Introdução

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

Page 24: Gestão de dados XML - Introdução

Principio de funcionamento das sshs

Saint Pétaouchnoque,Le 30 nivose 2004

Editions Duschmol,12 rue SchmurzYT123 Rapis

WindStar 2000Les rosières en bugetAB562 Saint Pétaouchnoque

Tel: 012133564Fax: 879765426

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

<carta> <cabeçalho> . . . </cabeçalho>

<corpo> . . . </corpo></carta>

Se carta então …Se cabeçalho então …Se corpo então

Se paragrafo entãoType new roman,size 12, identar primeira linha

Se … então …

Page 25: Gestão de dados XML - Introdução

Alguns dialectos

Page 26: Gestão de dados XML - Introdução

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

Page 27: Gestão de dados XML - Introdução

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

Page 28: Gestão de dados XML - Introdução

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

Page 29: Gestão de dados XML - Introdução

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

Page 30: Gestão de dados XML - Introdução

SMIL

Video Sincronização entre imagem e som Sincronização entre várias janelas

Page 31: Gestão de dados XML - Introdução

SOAP: Simple Object Access Protocol Protocolo de tansferência de dados entre

aplicações distantes Adaptado para ser utilizado debaixo do

protocolo HTTP

Page 32: Gestão de dados XML - Introdução

Exemplo SOAP<evp:Envelopexmlns: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>

Page 33: Gestão de dados XML - Introdução

Vantagens do XML

Page 34: Gestão de dados XML - Introdução

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>

Page 35: Gestão de dados XML - Introdução

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

Page 36: Gestão de dados XML - Introduçã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.

Page 37: Gestão de dados XML - Introduçã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.

Page 38: Gestão de dados XML - Introdução

Vista de olhos sobre a linguagem

Page 39: Gestão de dados XML - Introdução

Exemplos de documentos XML

<?xml version="1.0" standalone="yes" ?> <document>o <saudação> Bom dia! </saudação> </document>

<document> <saudação> Bom dia! </saudação> </document>

<document> </document>

<document/>

<document> Bom dia! </document>

Page 40: Gestão de dados XML - Introdução

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.

Page 41: Gestão de dados XML - Introdução

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

Page 42: Gestão de dados XML - Introdução

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 incorrectos

_totoNom_sociedadexsl:ruleX.11

1998-catalogoXmlSpecnome sociedade

Page 43: Gestão de dados XML - Introdução

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): <relatório língua=‘pt' ult-modif='08/07/99'>

O valor de um atributo é uma cadeia delimitada por aspas (") ou ('). Não deve conter os caracteres ^, % e &.

Um elemento tem um cjto de atributos (a ordem não tem importância)

Page 44: Gestão de dados XML - Introdução

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

Page 45: Gestão de dados XML - Introdução

Tipos do XML

Page 46: Gestão de dados XML - Introdução

Estrutura de um documento Um documento XML é composto por:

Prólogo, eventualmente vazio

Uma árvore de elementos:

<?xml version="1.0" standalone="yes" ?>

<document> <saudacao> Bom dia! </saudacao> </document>

Page 47: Gestão de dados XML - Introdução

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" >

Page 48: Gestão de dados XML - Introdução

Documento bem formado sem tipificação

<?xml version="1.0" standalone="yes" ?>

<document> <saudacao> Bom dia! </saudacao> </document>

Page 49: Gestão de dados XML - Introdução

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! </saudacao> </document>

Page 50: Gestão de dados XML - Introdução

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)

Page 51: Gestão de dados XML - Introdução

Resumo

Page 52: Gestão de dados XML - Introdução

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

Page 53: Gestão de dados XML - Introdução

Resumo: tecnologia

SGBDs: B-tree, hash table, optimização de interrogações

Documentos: Indíce texto, classificação

XML: Autómato de árvores

Page 54: Gestão de dados XML - Introdução

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

Page 55: Gestão de dados XML - Introdução

Referências Serge Abiteboul, Slides of the course: “Données

Semistructurées”, Master Recherche Informatique Paris Sud, http://www-rocq.inria.fr/~abitebou/Master-SSD/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.

Page 56: Gestão de dados XML - Introdução

Tópicos próximas aulas Introdução ao XML Modelo de dados semi-estruturado XSDL, DTD, XML Schema XSLT XPath XQuery