Professional Documents
Culture Documents
Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo
Roteiro da Aula
Dados Semi-estruturados O que XML XML x HTML Terminologia XML Namespaces
Dados no estruturados
No h nenhuma estrutura prvia Ex.: imagem, video, udio, etc.
Dados SemiSemi-estruturados
Dados irregulares
Livros podem ser descritos por uma estrutura de partes e captulos ou podem ser descritos somente por captulos. A descrio de uma disciplina p p pode variar em termos de atributos de um departamento para outro:
faltam atributos ou apresentam atributos a mais
Dados incompletos
Nem todo endereo tem caixa postal Nem todo livro tem apndice ou prefcio
Dados SemiSemi-estruturados
Como se auto-descrevem pares atributo-valor {name: John John Smith Smith , tel: 3456, 3456 age: 32} valor de atributo pode tambm conter estrutura {name: {first:John, last: Smith}, , age: g 32} } tel: 3456, rtulos de atributo no necessariamente nicos {name: John John Smith Smith , tel: 3456, 3456 tel: 7891}
Dados SemiSemi-estruturados
Podem ser representados p g graficamente ns representam objetos conectados por arestas que os descrevem
Ex.: {name: {first:John, last: Smith}, tel: 3456, age: 32}
tel 3456
age 32
Smith
Material de Maria Cludia Yoko Cavalcanti
Dados SemiSemi-estruturados
Situaes tpicas p
Qdo os dados no podem ser restritos a um esquema
Difcil definir uma estrutura... Ex: contratos
Exemplos p
Arquivos q BibTex
Tm estrutura mas no regular
Alguns atributos no aparecem, apesar de obrigatrios
@article{Gettys90, author = {Jim Gettys and Phil Karlton and Scott McGregor}, title = {The {X} Window System, Version 11}, journal = {Software Practice and Experience}, volume = {20}, number = {S2}, year = {1990}, postscript = papers/gettys90.ps.gz, abstract = {A technical overview of the X11 functionality. This is an update of the X10 TOG paper by Scheifler \& Gettys.} }
Material de Maria Cludia Yoko Cavalcanti
Arquivos q GenBank
LOCUS DEFINITION ACCESSION VERSION KEYWORDS SOURCE ORGANISM SCU49845 5028 bp DNA PLN 21 21-JUN-1999 JUN 1999 Saccharomyces cerevisiae TCP1-beta gene, partial cds, and Axl2p (AXL2) and Rev7p (REV7) genes, complete cds. U49845 U49845.1 GI:1293613 . Saccharomyces cerevisiae (baker's yeast) Saccharomyces cerevisiae Eukaryota; Fungi; Ascomycota; Saccharomycotina; Saccharomycetes; Saccharomycetales; y ; Saccharomycetaceae; y ; Saccharomyces. y 1 (bases 1 to 5028) Torpey,L.E., Gibbs,P.E., Nelson,J. and Lawrence,C.W. Cloning and sequence of REV7, a gene whose function is required for DNA damage-induced mutagenesis in Saccharomyces cerevisiae Yeast 10 (11) (11), 1503 1503-1509 1509 (1994) 95176709 7871890 Location/Qualifiers <1..206 /codon_start=3 /product="TCP1-beta" /protein_id="AAA98665.1" /db_xref="GI:1293614" /translation="SSIYNGISTSGLDLNNGTIADMRQLGIVESYKLKRAVVSSASEA AEVLLRVDNIIRARPRTANRQHM" 687..3158 /gene="AXL2"
Material de Maria Cludia Yoko Cavalcanti
gene
Exemplos p
Guia de restaurantes (Palo Alto Weekly newspaper) p p )
Cada restaurante apresenta uma estrutura diferente
Guide R t Restaurant t Name Blues on the Bay Category Vegeterian Entree Name Black bean soup Price 10.00 Entree Name Asparagus Timbale Price 22.50 Location Street 1890 Wharf Ave City San Francisco Restaurant Name McDonalds Category Fast Food Price cheap Nearby Blues on the Bay
Material de Maria Cludia Yoko Cavalcanti
WEB
Web WEB
Independncia de apresentao
Permite que as aplicaes apresentem/tratem os dados como lhes conveniente
Oq que XML?
eXtensible Markup p Language g g Padro para marcao de dados na Web, com foco na descrio do contedo W3C (ww.w3c.org) ( g) HTML descreve o formato do documento
HTML t tem um conjunto j t fi fixo d de t tags e no d descreve contedo
Histrico
1993: primeiros trabalhos sobre adaptao das
tcnicas SGML Web (Sperberg). HTML to the Max: A Manifesto for Adding SGML I t lli Intelligence t to th the W World ld Wid Wide W Web b Junho 1996: criao de um grupo de trabalho no W3C
Histrico
1996
80 peritos em SGML uniram foras ao W3C (World Wide Web Consortium) Objetivo: Definir uma linguagem de marcao com o poder da SGML, porm fcil de ser implementada influncia do LOREL
10 fevereiro 1998
publicao da recomendao para verso 1.0 da linguagem
SGML - Caractersticas
Standard Generalized Markup p Language g g Uma linguagem de marcao abrangente mas complexa l Desenvolvida por Charles F. F Goldfarb Adequada q para p aplicaes p envolvendo documentos grandes e complexos Tornou-se um padro T d ISO (ISO 8879) na dcada d d de d 80
Material de Maria Luiza Machado Campos
SGML e XML
SGML - norma ISO 8879:1986 SGML vinha sendo utilizada na indstria no suporte tcnicas de documentao. Muito complexa para utilizao de pblico em geral XML usa 10% de SGML para representar de forma eficaz 90% dos documentos
No impe um acordo
Cada C d um d descreve seus d dados d como os v Aplicaes extraem os dados que interessam
Linguagens g g de marcao
SGML linguagem de marcao com regras para definio de classes de documentos
Linguagens g g de marcao
SGML linguagem de marcao com regras para definio de classes de documentos
DTD A DTD B DTD N
...
Linguagens g g de marcao
SGML linguagem de marcao com regras para definio de classes de documentos
DTD A DTD B DTD N
Exemplos de DTDs: - HTML 1.0 - HTML 3.2 - HTML 4.0
...
Linguagens g g de marcao
SGML linguagem de marcao com regras para definio de classes de documentos
DTD A DTD B DTD N
Exemplos de DTDs: - HTML 1.0 - HTML 3.2 - HTML 4.0
...
XML - subconjunto da SGML linguagem de marcao com regras para definio de classes de documentos
Linguagens g g de marcao
SGML linguagem de marcao com regras para definio de classes de documentos
DTD A DTD B DTD N
Exemplos de DTDs: - HTML 1.0 - HTML 3.2 - HTML 4.0 Exemplos de DTDs: - XHTML 1.0 - DocBook
...
...
XML - subconjunto da SGML linguagem de marcao com regras para definio de classes de documentos
Linguagens g g de marcao
SGML linguagem de marcao com regras para definio de classes de documentos
DTD A DTD B DTD N
Exemplos de DTDs: - HTML 1.0 - HTML 3.2 - HTML 4.0 Exemplos de DTDs: - XHTML 1.0 - DocBook
...
...
XML - subconjunto da SGML linguagem de marcao com regras para definio de classes de documentos
Estruturas podem ser aninhadas em um nvel de profundidade f did d arbitrrio bit i Um documento XML no tem nenhuma instruo para apresentao XML SGML mas HTML SGML Um documento XML pode conter uma descrio opcional de sua estrutura (DTD (DTD, XML Schema)
Material de Maria Luiza Machado Campos
Fonte HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD><TITLE>A bibliography on Databases</TITLE> <META content="text/html; / ; charset=windows-1252" httpp equiv=Content-Type> <META content="MSHTML 5.00.2314.1000 name=GENERATOR> </HEAD> <BODY> <h1> Bibliography </h1> <p> <i> Foundations of Databases </i> Abiteboul, Abiteboul Hull, Hull Vianu <br> Addison Wesley, 1995 <p> <i> Data on the Web </i> Abiteoul, Buneman, Suciu <br> M Morgan Kaufmann, K f 1999 </BODY> </HTML>
Material de Maria Luiza Machado Campos
HTML: Conjunto pr-definido de elementos (tags) para especificao das dimenses de estrutura e apresentao de um documento
Fonte XML
XML: Elementos (tags) definidos pelo usurio da linguagem e servindo i d para d descrever o contedo t d e a estrutura.
<bibliography> <book> <title> Foundations </title> <author> Abiteboul </author> / <author> Hull </author> <author> Vianu </author> <publisher> bli h Addi Addison Wesley W l </publisher> <year> 1995 </year> </book> </bibliography>
E a apresentao? p
Uma representao em XML no tem diretamente nenhuma i f informao d de apresentao. As numerosas propriedades grficas ou tipogrficas esto ausentes t da d fonte f t XML. XML Estas propriedades sero definidas por intermdio de um i f informaes suplementares, l t em uma f folha lh d de estilo til associada ao documento XML Uma f U folha lh d de estilo til um conjunto j t de d regras para especificar ifi a realizao concreta de um documento sobre uma mdia p particular.
Exemplo p de um documento
Cabealho Objeto S d Saudao
Objet: Dvida? Prezado Senhor, Bar do Carrego Rua das Bodegas, s/n 58106-920 C. Grande
Logotipo
Campina GRande, 20 de maio de 2001
Bla bla bli, bli bli blo bla, bla kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jkvbc lkhdklvn v
Aproveito do ensejo para renovar meus protestos de elevada estima e considerao. assinatura
Rodap
Representao XML
<cabecalho> </cabecalho> <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> d Prezado P d Senhor, S h </saudacao> / d <corpo> <para>Aqui o primeiro pargrafo</para> <para> aqui o segundo ... </para> </corpo>
...
WindStar 2000 Les rosires en buget AB562 Saint Ptaouchnoque Tel: T l 012133564 Fax: 879765426
Saint Ptaouchnoque, Le 30 nivose 2004 Editions Duschmol, 12 rue Schmurz YT123 Rapis
Objeto: Dvida Prezado Senhot, Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf j jkvbc lkhdklvn v . sssinatura Rodap
Porque q XML?
Extensibilidade e estrutura
Em XML, um autor ou uma comunidade de autores inventam livremente as tags que lhes paream 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> di 05 </dia> /di </date> <date format='ISO-8601'> 2000-01-05 </date>
Interoperabilidade p
Todos os dados podem ser vistos como documentos XML e no mais como arquivos no formato X ou Y Y. Consequncias:
Um servidor de documentos XML suscetvel de responder a um conjunto de necessidades de uma organizao. i Um simples editor de textos pode tratar o conjunto de dados de uma organizao. organizao A interoperabilidade dos utilitrios est assegurada.
Modularidade e reutilizao
Cada usurio livre p para definir suas p prprias p estruturas de documento Ele pode tambm estar conforme as estruturas tipadas, chamadas DTD Cada comunidade pode propor as estruturas normalizadas A validao a um DTD permite a automatizao no tratamento dos dados e assegura uma possibilidade de controle de integridade
XML no Mercado...
Descrever documentos armazenados
Memria intra e inter organizacional
Intercambiar dados
Integrar sistemas Aplicaes B2B
XML no Mercado...
Bancos de Dados e Aplicaes p
Microsoft Office 2000 products, Oracle, Sybase
Metadados:
OMG-MOF XMI proposal to W3C (IBM, Unisys, Oracle, Rational, Platinum, Sybase )
Desenvolvedores de ferramentas:
Java SAX, Java DOM, etc.
Grupos de padronizao:
ISO 11179, ANSI X3L8, Dublin Core, EDI
XML no Mercado
XML est se tornando uma p plataforma p padro p para os processos entre empresas dos quais depende o comrcio eletrnico B2B. W. Lewis
B2B e-commerce: empresas que centralizam mltiplos vendedores e compradores, compatibilizando ordens de compra e venda entre eles.
XML
Apenas uma linguagem de marcao?
A linguagem g g XML tem associada uma srie de iniciativas:
XSL SAX, DOM DTD XML Schema DTD, S h XLink and XPointer XPath XQuery XPath, RDF, OWL Servios Web (WSDL (WSDL, etc etc.) ) etc.
Sintaxe XML
Marcao XML
Instrues de marcao XML so denominadas tags
No especificam um estilo de apresentao particular Identificam a natureza de um componente de texto
Um elemento XML formato por uma start-tag (marca inicial) o contedo propriamente p p dito e uma end-tag g ( (marca final) ) OBRIGATORIAMENTE
Marcao XML
A start- tag e a end- tag encontram- se distribudas no fluxo d d de dados d Objetivo de delimitar objetos identificveis E Exemplo: l
<pergunta> Vai viajar para <cidade> Porto Alegre </ cidade> segunda? </pergunta>
Porto Alegre uma cidade, assim a tag usada para demarcar a informao recebe o nome de cidade
Tipos p de marcas
Composta
<from> <name>Carina Dorneles</name> <email>dorneles@inf.ufrgs.br</email> </from>
Texto
<name>Carina Dorneles</name>
Marca composta de contedo texto Marca composta de outras marcas + contedo texto Marca sem contedo
Mista
<from>Carina f C i D Dorneles l <email>dorneles@inf.ufrgs.br</email> </from>
Vazia
<profissao><engenheiro/></profissao>
O documento completo encontra-se encontra se delimitado por um nico elemento denominado "elemento documento" ou "elemento raiz" Pode ser visualizada de diferentes formas
Forma de rvore, caixas dentro de caixas, etc.
Visualizao da estrutura
Livro
Captulo
Captulo
Seo
Seo
...
...
Regras g de estruturao
Cada elemento possui um nico pai Cada elemento possui um nmero arbitrrio de irmos e filhos
Um elemento sem filhos denominado folha
Regras g de estruturao
Todas as tags devem ser fechadas:
<p> Pargrafo em HTML <p> um possvel pargrafo em XML </p>
Regras g de estruturao
As tags g devem estar bem aninhadas
<b> <i>Isto permitido em HTML, mas no em XML</b> </i>
Regras g de estruturao
TODO documento XML deve possuir uma raiz
<titulo>Oi</titulo> / <capitulo> <secao> Esta seo ... </secao> </capitulo> <livro> <titulo>Oi</titulo> <capitulo> <secao> Esta seo ... / </secao> </capitulo> </livro>
Estruturas hierrquicas q
p possvel definir regras g q que expressam p como os elementos podem ser combinados (estrutura hierrquica) q )
DTD (Document Type Definition) XML Schema
Atributos
Um elemento p pode conter um nmero arbitrrio de atributos
Cada atributo um par (nome, valor), separados por = Os valores dos atributos so cadeias de caracteres e devem ser delimitadas por aspas Um atributo possui um tipo quando utilizada uma DTD Pode-se Pode se associar um valor default a um atributo
O que no se pode fazer com um elemento Isso feito atravs de uma DTD
Atributos
Valores dos atributos:
Podem conter espaos Podem comear com caractere numrico Podem conter qualquer caractere de pontuao
Atributos
Exemplo:
<livro isbn="85.241.0590-9"> | <capitulo numero numero="3"> 3 > | | <secao> | | | <para>...</para> | | | <para>...</para> | | </secao> | | <secao> | | | <para>...</para> | | </secao> | </capitulo> </ it l > | <capitulo numero="4"> ... ... </livro>
Elementos x Atributos
No h regras g Atributos apresentam algumas restries
No so extensveis No permitem mltiplos valores No descrevem estruturas
Recomendao: em geral, preferir elementos, e usar atributos p para informaes secundrias Metadados (dados sobre os dados) devem ser representados como atributos
Ex: <price currency=US>59.99</price>
Elementos x Atributos
<book <b k lang=English l E li h price=US$59.99 title=XML Bible author=Hommer Simpson> ... </book>
book
<book lang=English> <price currency=US$> 59.99 </ i > </price> <title>XML Bible </title> ... </book>
book
Lang=English
Currency=US$
title
XML Bible
price
59.99
Instrues de Processamento: Mecanismo de insero de informaes explcitas em um documento que so destinadas a alguma aplicao. aplicao Comea com <? e termina com ?>
Comentrios comeam com <!-- e terminam com --> e so ignorados. No podem acontecer antes da instruo de declarao XML nem dentro de um elemento; no podem conter a seqncia --
Referncias a Entidades so marcaes que so substitudas com caracteres de dados no processamento do documento. As cinco entidades a seguir so predefinidas por XML: & & < < > & t & " t & '
CDATA: todo o texto que aparece entre delimitadores de seo CDATA que so considerados caracteres de dado: <![CDATA[ ... ]]>
Material de Maria Luiza Machado Campos
<passo>se A > B entao MAIOR = A senao MAIOR = B </passo> <passo>se MAIOR < C entao MAIOR = C </passo> Material de Maria Luiza Machado Campos
Uso interno Xarope SemTosse 1 colher 3x ao dia Uso Externo Gyellow aplicar no brao 1x ao dia ao deitar
20/10/2001
Vamos testar?
Use o Exchanger g XML Lite p para verificar o documento XML que voc criou ou Use o parser RXP... (baixar do site da disciplina)
rxp <nome do arquivo XML>
Verso do XML
Existem duas verses da especificao p da linguagem XML:
1.0 1.1
Verso 1.1
Flexibilizou a definio de nomes em XML, , mudando a regra do jogo
Tudo q que no explicitamente p p proibido, ,p permitido Isso faz que com a verso de XML no precise mais mudar caso surjam j novas verses do Unicode
Normalizao deve ser garantida pelo parser (eliminao de espaos em branco e sinais de fim de linha desnecessrios falaremos mais sobre isso quando estivermos aprendendo a API DOM)
No curso
Aqui q no curso ficaremos com a verso 1.0...
Instruo de Processamento
Mecanismo de insero de informaes explcitas em um d documento t destinadas d ti d a alguma l aplicao li Os parsers XML no interpretam tais informaes, assim como no o fazem para comentrios; eles simplesmente as repassam para a aplicao Sintaticamente uma instruo de processamento uma cadeia de caracteres que comea com a configurao <? e termina com ?> Exemplo
<para> seria bom finalizar esta pagina <?ACME-paginator DO:new-page?> aqui. </para>
Parmetros
version indica a verso da linguagem (1.0 ou 1.1) obrigatrio encoding indica a codificao de caracteres utilizado no documento - opcional
Encoding g
Utilizar atributo encoding g na declarao XML do prlogo
ex: <?XML version=1.0 encoding=ISO-8859-1?>
Pode-se utilizar declarao de encoding como parte de uma instr instr. de processamento separada separada, aps a declarao XML mas antes do caractere aparecer
ex: <?XML encoding=ISO-8859-1 ?>
Conjuntos j de caracteres
UTF-8 UTF-16 ASCII
Unicode
ISO 8859-(2...15)
1 byte, 8 bits --> 256 combinaes (ASCII + caracteres para outros conjuntos de lnguas)
Comentrios
Comeam com <!-- e terminam com -->. Todo dado entre essas marcas ignorado pelo processador XML. No podem acontecer antes da instruo de processamento (declarao XML) que deve ser a primeira sentena de um documento, nem dentro de um elemento. A seqncia -- no pode aparecer em um comentrio, exceto como parte dos delimitadores.
Sees CDATA
Normalmente o texto que aparece entre os delimitadores < e > so considerados id d marcaes. E Exceo f feita i aos textos entre delimitadores de seo CDATA, que so considerados caracteres de dado Os delimitadores de abertura e fechamento da seo so, p <![CDATA[ [ [ e ]] ]]> respectivamente, A nica seqncia de caracteres que no pode aparecer em uma seo CDATA ]]>
Declarao CDATA
As sees CDATA so teis quando se deseja que todos os caracteres de um texto sejam interpretados como caracteres e no como elementos de marcao. Exemplos so textos contendo t d os caracteres t <, < >, > &, & etc., t comuns em trechos t h de d cdigo de programas. Exemplo:
<![ CDATA[ Em E XML a entidade tid d < < eh h b builtilt in i ]]>
Exerccio
1. Escreva um documento XML q que tenha 5 > 4 como o valor de um elemento 2. Escreva um documento XML que tenha uma entidade de texto > 3. Agora faa a entidade aparecer no resultado assim como foi escrita no documento XML Basta abrir o documento no browser (Firefox ou IE) para ver o resultado, ou ento Use o RXP para ver o resultado em cada exerccio, com os parmetros bm, assim: rxp bm <arquivo XML>
Exerccio
Escreva um documento XML simples, p , e teste todos os itens da transparncia anterior. Veja o tipo de erro g gerado p pelo p parser em cada um deles.
Tecnologias g XML
SOAP WSDL UDDI DOM SAX
Manipulao programtica Interoperabiliade Programas
RDF DAML
Web Semntica
Namespaces
Motivao
Problema1: Cada usurio ou g grupo p p pode criar suas prprias tags
mesmas tags g p podem ter significados g diferentes
Problema2: quando se juntam dois documentos que usam a mesma tag com significados diferentes
conflito!
Namespaces p
Permitem q que seja j usado um esquema q de atribuio de nomes ao longo de um conjunto de documentos Associa nomes exclusivos a URIs URLs so usados no por apontarem para uma dada localizao mas por serem exclusivos
Namespace nomeado
Ex: <a:foo xmlns:a=http://example.com/NS/>
<x <xxmlns:edi='http://ecommerce.org/schema'> xmlns:edi='http://ecommerce.org/schema'> <x xmlns='http://ecommerce.org/schema'> <!<ecom:x xmlns:ecom='http://ecommerce.org/schema'> <!<price units='Euro'>32 units= Euro >32.18</price> 18</price> the 'price' element's namespace is http://ecommerce org/schema --> > <ecom:price units='Euro'>32.18</ecom:price> the 'price' element's namespace ishttp://ecommerce.org/schema http://ecommerce.org/schema --> </x> <edi:price </ecom:x> <edi:priceunits='Euro'>32.18</edi:price> units='Euro'>32.18</edi:price> </x> /x > </ </x>
Material de Maria Luiza Machado Campos
Mltiplos p Namespaces p
<?xml version="1.0"?> <!-- both namespace prefixes are available throughout --> <bk:book xmlns:bk='urn:loc.gov:books' xmlns:isbn='urn:ISBN:0-395-36341-6'> <bk:title>Cheaper by the Dozen</bk:title> <isbn:number>1568491379</isbn:number> </bk:book> /
Outro Exemplo p
<aaa > <bbb > <ccc /> </bbb> <BBB > <CCC /> </BBB> <x111 > <x222 /> </x111> </aaa>
Declararao na raiz
<lo e aaa xmlns <lower:aaa l :lower lo e = "http://etc.org/lowercase "http //etc o g/lo e case xmlns:upper = "http://etc.org/uppercase" xmlns:xnumber = "http://etc.org/xnumber" http://etc.org/xnumber > <lower:bbb > <lower:ccc /> </lower:bbb> <upper:BBB > <upper:CCC /> </upper:BBB> <xnumber:x111 > <xnumber:x222 /> </xnumber:x111> </lower:aaa>
Namespace p Default
Namespaces no tm que ser declarados explicitamente com prefixos O atributo ib xmlns l define d fi o namespace d default f l que usado d para o elemento onde ele ocorre e para seus filhos e descendentes <aaa > <bbb xmlns = "http://etc.org/lowercase" > / <ccc /> </bbb> <BBB xmlns = "http://etc.org/uppercase" > <CCC /> </BBB> <x111 xmlns = "http://etc.org/xnumber" > <x222 /> </x111> / 111 </aaa>
Exemplo p
Elementos podem at pertencer a diferentes namespaces embora b eles l tenham h os mesmos prefixos! fi ! <aaa > <lower:bbb xmlns:lower = "http://etc.org/lowercase" > <lower:ccc /> </lower:bbb> /l bbb <lower:BBB xmlns:lower = "http://etc.org/uppercase" > <lower:CCC /> </lower:BBB> <lower:x111 xmlns:lower = "http://etc.org/xnumber" > <lower:x222 /> </lower:x111> / </aaa> Mas evite isso, para no confundir!
Material de Maria Luiza Machado Campos