Upload
hanzila
View
30
Download
0
Embed Size (px)
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
Citation preview
Gestão de dados XML - Introdução
Helena GalhardasDEI 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 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
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
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
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
HTML
Documentação hipertexto
Gestão de dados
Bases de Dados estruturadas(relacional e OO)
Bases de dadossemi-estruturadas
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
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 trab
ln Ender. email
cidade CPGalhardas
Porto Salvo2790-380
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>
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
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
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>…
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
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 …
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: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>
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
<?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>
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 incorrectos
_totoNom_sociedadexsl:ruleX.11
1998-catalogoXmlSpecnome 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): <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)
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
Uma árvore de elementos:
<?xml version="1.0" standalone="yes" ?>
<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! </saudacao> </document>
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: B-tree, hash table, optimização de interrogações
Documentos: 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/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.
Tópicos próximas aulas Introdução ao XML Modelo de dados semi-estruturado XSDL, DTD, XML Schema XSLT XPath XQuery