560 likes | 654 Vues
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
E N D
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 • 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.
Gestão de documentos Gestão de dados Bases de Dados estruturadas (relacional e OO) SGML Documentação hipertexto Bases de dados semi-estruturadas HTML Junção de dois modelos resulta .... XML
Estrutura mínima Dados semi-estruturados Dados estruturados Hierarquia + Metadados Systèmes Relationnels Systèmes Documentaire 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
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> <fn>Helena</fn> <ln>Galhardas</ln> </nome> <trab tipo=“ensino"> IST <ender> <cidade>Porto Salvo</cidade> <cp>92310</cp> </ender> <email>hig@inesc-id.pt</email> </trab> <missão>Ensinar bem </missão> </ficha> ficha missão nome trab tipo ln Ender. email fn IST ensino Ensinar bem… Galhardas cidade CP hig@inesc-id.pt Helena 2790-380 Porto Salvo Elementos Atributos Dados fn tipo 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 • ...
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
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 Exemplo de documento Cabeçalho Logotipo Objecto Data Saudação Destinatário Fórmula de simpatia Corpo Assinatura Rodapé
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
<carta> <cabeçalho> . . . </cabeçalho> <corpo> . . . </corpo> </carta> 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 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 Principio de funcionamento das sshs
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>
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.
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".
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
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)