A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

2. Modelagem de Dados semi-estruturados

Apresentações semelhantes


Apresentação em tema: "2. Modelagem de Dados semi-estruturados"— Transcrição da apresentação:

1 2. Modelagem de Dados semi-estruturados
Introdução

2 Dados semi-estruturados ?
Introdução Dados semi-estruturados ? Dados semi-estruturados: dados heterogêneos e irregulares, por exemplo XML Banco de dados: originalmente, sistemas fechados, dedicados a gestão de dados regulares, cuja estrutura pouco evolui no tempo Novas aplicações requerem mais flexibilidade de representação e estão constantemente evoluindo o esquema Os modelos relacional e de objetos chegaram a seus limites

3 Dados semi-estruturados ?
Introdução Dados semi-estruturados ? Uma solução: usar um modelo de grafo para armazenar os dados com características semi-estruturadas Origens de dados semi-estruturados: integração de fontes heterogêneas fontes de dados sem estrutura rígida dados biológicos dados da Web

4 Dados semi-estruturados ?
Introdução Dados semi-estruturados ? Evolução: 1995: Projeto TSIMMIS, Modelo OEM na Universidade de Stanford, EUA 1996: Projeto LORE, primeiro SGBD semi-estruturado, Stanford 1999: aceitação de XML pela indústria para representação de dados semi-estruturados

5 Uma sintaxe para dados semi-estruturados
Dados semi-estruturados: dados sem esquema ou auto-descritivos Não há separação entre os dados e o esquema Os dados contêm o esquema Exemplo {nome:"Ana", tel:" ", {nome:"Ana", tel:" ", tel:" "} Aqui os valores são os dados atômicos Representação sob forma de grafos nome tel Ana

6 Uma sintaxe para dados semi-estruturados
Os valores podem ser objetos complexos Exemplo {pessoa: { nome:"ana", tel:" " } }, nome:{pré-nome:"Victor",sobrenome:"Bezerra"}, tel:" " nome:"Sandra" }}

7 Representação de bases relacionais
Um BD relacional é descrito por um esquema r1(a,b,c) r2(c,d) r1 e r2 são os nomes das relações a,b,c,d são os nomes dos atributos No esquema de uma relação, cada atributo é definido sobre um domínio de valores atômicos. {r1:{row:{a:a1,b:b1,c:c1}, row:{a:a2,b:b2,c:c2} }, r2:{row:{c:c2,d:d2}, row:{c:c3,d:d3} } r1 a b c a1 b1 c1 a2 b2 c2 r2 c d c2 d2 c3 d3

8 Representação de bases relacionais
Introdução Representação de bases relacionais Representação num grafo r1 r2 row row row row a b c a b c a1 b1 c1 a2 b2 c2

9 Representação de bases de objeto
Exemplo: considere uma coleção de três pessoas: Maria tem dois filhos: José e Joana. Usando o conceito de identidade de objetos, podemos representar esta coleção da seguinte forma: { pessoa:&p1{ nome:"Maria", idade:45, filho:&p2,filho:&p3 } pessoa:&p2{ nome:"José", idade:23, mãe:&p1 pessoa:&p3{ nome:"Joana", idade:22, mãe:&p1

10 Representação de bases de objeto
Introdução Representação de bases de objeto Representação em grafo root pessoa nome José pessoa &p2 filho pessoa idade 23 Maria nome &p1 mãe filho nome Joana 45 idade &p3 mãe idade 22

11 2.1. Modelagem de dados semi-estruturados
O modelo OEM

12 O modelo OEM OEM Desenvolvido no projeto TSIMMIS-Stanford
sistema para integração de fontes de dados heterogêneas Um objeto OEM é uma quádrupla (label,oid,type,value) label: cadeia de caracteres oid: identificador do objeto type: complexo ou atômico(int, string, gif, jpeg …) value: se o tipo é complexo, conjunto de oid ’s senão um valor atômico

13 OEM O modelo OEM O modelo OEM é um modelo de grafo. Os labels estão nos nodos e não nos arcos como visto anteriormente. Obs.: Várias extensões ao OEM foram propostas e consireram labels nos arcos!

14 Exemplo de Semistructured Data Model
Bib &o1 complex object paper paper book references &o12 &o24 &o29 references references author page author year author title http title author publisher title author author &o43 &25 &96 1997 last firstname atomic object firstname lastname first lastname &243 &206 “Serge” “Abiteboul” “Victor” 122 133 “Vianu” Object Exchange Model (OEM)

15 Exercício: representação de uma base de objetos usando o modelo OEM
esquema ODL da base de objetos class Estado (extent estados) { attribute string nome; attribute Cidade capital; relationship set<Cidade> cidades-em inverse Cidade::estado-de } class Cidade (extent cidades) { attribute string nome; relationship Estado estado-de inverse Estado:cidades-em;

16 Exercício: representação de uma base de objetos usando o modelo OEM
Representação de dados ODMG {estados: {estado: &e1{nome:  "Pernambuco", capital: &c1, cidades-em: {Cidade: &c1, Cidade: &c2, …} }, estado: &e2{nome:"Paraíba", capital:&c6, cidades-em: {Cidade: &c5, …} cidades: {cidade: &c1{nome: "Recife", estado-de: &e1}, cidade: &c2{nome: "Caruaru" , estado-de: &e1}, … } }

17 Introdução a XML

18 XML ? « Buzz word » eXtensible Markup Language
Introdução XML ? « Buzz word » eXtensible Markup Language Uma linguagem de descrição de documentos, definida por um organismo internacional W3C Um conjunto de tecnologias derivadas: Xlink, Xpointer, Xschema, DOM, SAX, XSL,… O esperanto da Web

19 A revolução da Web… 1989 - Primeiro Web Browser
Introdução A revolução da Web… Primeiro Web Browser Mosaic é difundido, há 50 web sites Primeiras ferramentas de busca (WWWW, webcrawler) US$ 1M gastos em compras na Web, presença em 150 países milhão de web sites web servers mais de 1 bilhão de páginas web 2002 – quase 2,5 bilhões de páginas web indexadas (google)

20 A Web hoje… documentos HTML voltada para uso humano
Introdução A Web hoje… documentos HTML voltada para uso humano gerado automaticamente por aplicações Fácil de alcançar qualquer Web page, de qualquer server, em qualquer plataforma

21 Limites da Web … aplicações não podem consumir HTML
Introdução Limites da Web … aplicações não podem consumir HTML tecnologia de HTML wrapper é instável (modifica-se a página => modifica-se o wrapper) tecnologia OO (Corba) requer ambiente controlado companhias se fundem, formam parcerias; necessitam de interoperabilidade de forma rápida

22 Web: Mudança de paradigma …
Introdução Web: Mudança de paradigma … Novo padrão Web XML: XML gerado por aplicações XML consumido por aplicações troca de dados entre plataformas: interoperabilidade na empresa entre empresas

23 precisamos de um "super HTML"
Introdução … estão surgindo ... As novas aplicações Comércio Eletrônico Protocolos "B2B" Bibliotecas digitais sistemas distribuídos precisamos de um "super HTML"

24 XML Um padrão W3C para complementar HTML
origens: textos estruturados em SGML motivação: HTML descreve apresentação XML descreve conteúdo (2/98)

25 O Segredo do sucesso de HTML
Simplicidade: Todo mundo pode escrever HTML HTML é textual: é legível, pode-se usar qualquer editor, ... HTML é transportável em qualquer plataforma (o browser é a aplicação universal) HTML conecta pedaços de informação através de hypertext links

26 HTML descreve a apresentação
De HTML para XML HTML descreve a apresentação

27 HTML <h1> Bibliography </h1> <p> <i> Foundations of Databases </i> Abiteboul, Hull, Vianu <br> Addison Wesley, 1995 <p> <i> Data on the Web </i> Abiteoul, Buneman, Suciu <br> Morgan Kaufmann, 1999

28 XML descreve o conteúdo
<bibliography> <book> <title> Foundations… </title> <author> Abiteboul </author> <author> Hull </author> <author> Vianu </author> <publisher> Addison Wesley </publisher> <year> 1995 </year> </book> </bibliography> XML descreve o conteúdo

29 Exemplo Suponha que um site de e-commerce precisa emitir uma nota fiscal Exemplo Problemas: Diversos departamentos da empresa usam estes dados de notas fiscais em diferentes plataformas, SO e linguagem de programação

30 Exemplo (cont) Melhor seria usar XML! <?xml version=“1.0”>
<NotaFiscal> <NomeCliente> Ana Silva </NomeCliente> <EndCliente> Rua das Margaridas, Maceió, AL </EndCliente <EndEnvio> Rua das Margaridas, Maceió, AL </EndEnvio> <Item> <codigo> 123 </codigo> <descricao> Parafuso 8mm </decricao> <quantidade> 20 </quantidade> <preco> 3,00 </preco> </Item> <Item> … </Item> </NotaFiscal>

31 Exemplo Syntaxe <ficha> <nome> <fn>Vera</fn>
<ln>Santos</ln> </nome> <trab tipo=“gerente"> IBGE <end> <cidade>Natal</cidade> <cep>52310</cep> </end> </trab> </ficha> Syntaxe nome trab tipo fn ln IBGE end gerente Vera Santos cidade cep Natal 52310 Elementos Atributos Dados fn tipo 52310

32 XML: sucessor de HTML HTML Hypertext Markup Language.
Princípios fundamentais XML: sucessor de HTML HTML Hypertext Markup Language. Um conjunto pré-definido e limitado de tags, definidas por uma norma (HTML 2.0, 3.2, 4.0). Estas tags possuem semânticas variadas: h1,..,h6, title, address, … dando as indicações estruturais center,hr,b,i,big,small,… servem para descrever a apresentação.

33 Princípios fundamentais
Problemas com HTML Uma vez criado, um documento é ligado a uma norma particular (ex. HTML 3.2 ) A visualização de um documento é fortemente dependente da interpretação que o navegador faz. É necessário dispor de várias versões do documento em função da mídia em que vai ser apresentado A indexação de documentos só pode ser feita sobre a parte textual. 1- la pérennité des documents n'est pas assurée. Pas d'importance pour la majorité des documents, mais vrai problème pour articles scientifiques, encyclopédies, documentations techniques etc.. 2- 3- problèmes de maintenance. Par ex, plusieurs versions d'un même site à entretenir. Dans l'avenir, versions vont tendre à se multiplier (sites accessibles à partir de téléphones portables, WML (wireless markup language) 4- vrai problème actuellement. Les moteurs de recherche ne sont plus pertinents du fait de la trop grande masse de documents en ligne

34 XML: uma resposta única a necessidades variadas
Introdução XML: uma resposta única a necessidades variadas HTML é usada como a lingagem universal de apresentação de documentos na Web, mas não é uma linguagem adaptada para descrever a estrutura destes documentos As bases de dados atuais são muito rígidas para manipular dados cuja estrutura é irregular e evolui com o tempo.

35 Os segredos de XML Como HTML: Mas, Além de HTML
simples, legível, fácil de aprender universal e transportável suportado pela W3C (indústria absorve!) Mas, Além de HTML flexível : podemos representar qualquer tipo de informação extensível: pode-se representar informação de qualquer forma

36 Origem da linguagem XML
Trabalho cooperativo de um grande número de empresas e de pesquisadores reunidos no World Wide Web Consortium (W3C) 400 colaboradores da indústria, entre os quais Oracle, IBM, Compaq, Xerox, Microsoft, etc.. Laboratórios de pesquisa: MIT - USA, INRIA - França, universidade de Keio - Japão Objetivo: definição de um formalismo para facilitar a troca de dados na Web

37 Mandamentos iniciais:
Origem da linguagem Mandamentos iniciais: XML deverá ser diretamente utilizável na Internet XML deverá suportar uma larga variedade de aplicações XML deverá ser compatível com SGML A criação de páginas XML deverá ser também o mais simples possível

38 Mandamentos iniciais(2)
Origem da Linguagem Mandamentos iniciais(2) Os documentos XML deverão ser de grande legibilidade A criação de documentos deverá ser rápida A sintaxe deverá ser formal e concisa A concisão do código tem mínima importância

39 Origem da lingagem Histórico 1993: primeiros trabalhos sobre adaptação das técnicas SGML à Web (Sperberg). "HTML to the Max: A Manifesto for Adding SGML Intelligence to the World Wide Web" Junho 1996: criação de um grupo de trabalho no W3C 10 fev. 1998: publicação da recomendação para versão 1.0 da linguagem. Une recommandation dans le jargon du W3C signifie un standard industriel de fait. Il n'a cependant pas de valeur normative.

40 Razões da W3C para usar XML
Permite a publicação eletrônica internacional independente de mídia Permite que as empresas definam protocolos de transferências de dados Facilita o desenvolvimento de SW para Web Disseminação dos dados sem uso formatos proprietários (caros!) Exibição de informação customizada Gestão de metadados facilitada

41 documentos estruturados
Princípios fundamentais XML XML significa eXtensible Markup Language sucessor de HTML herdeiro de SGML XML é um linguagem de descrição e de troca de documentos estruturados

42 Princípios Fundamentais
XML: herdeiro de SGML SGML Standard Generalized Markup Language, norma ISO 8879:1986 Muito utilizada na indústria para as grandes técnicas de documentação. Muito complexa para utilização de «público em geral» SGML tem demonstrado as vantagens do formato estrutural para a Gestão Eletrônica de Documentos (GED) XML usa 10% de SGML para representar de forma eficaz 90% dos documentos Exemple d'utilisation: industrie aéronautique. La doc technique imprimée d'un avion représente son poids total. De plus, nécessité de conserver une trace de chacune des interventions réalisées. Enfin chaque modèle est unique, du fait des améliorations successives apportées en cours de vie du modèle. Les 747 fabriqués actuellement n'ont pas grand chose à voir avec les premiers modèles sortis des chaînes. En cas de réparation, il faut pouvoir retrouver rapidement et précisément la démarche à effectuer.

43 Noção estrutural Princípio chave de SGML Idéia fundamental:
Princípios fundamentais Noção estrutural Princípio chave de SGML Idéia fundamental: Considere um documento, é desejável separar completamente as informações de estrutura das informações de apresentação.

44 Exemplo de um documento
Campina GRande, 20 de maio de 2001 Sr. Edilson Silva, Rua das Flores, 12 Caruaru Bar do Carrego Rua das Bodegas, s/n C. Grande Tel: Fax: Objet: Dívida? Prezado Senhor, Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v Aproveito do ensejo para renovar meus protestos de elevada estima e consideração. assinatura Rodapé Cabeçalho Logotipo Objeto Data Saudação Considérons une lettre commerciale. Grâce aux conventions de mise en page d'une lettre, nous pouvons repérer aisément ses éléments constitutifs, comme le logo etc. Certains peuvent se décomposer à nouveau en entités élémentaires. Ainsi l'entête se compose d'un nom d'entreprise, d'une adresse, d'un logo, le destinataire se compose d'un nom de personne et d'une adresse, le corps de la lettre est composé éventuellement de plusieurs paragraphes. XML va simplement offrir des conventions pour représenter cette lettre en repérant chacun de ses éléments constitutifs. Destinatário Forma Polida Corpo Assinatura Rodapé

45 Representação XML <cabeca> . . .
<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> Prezado Senhor, </saudacao> <corpo> </corpo> <logotipo loc="logo-graph"/> <endereco> &abrev-endereco; </endereco> <carta> . . . </carta> <para> Aqui é o primeiro parágrafo </para> aqui é o segundo ...

46 Princípios fundamentais
Pontos importantes A representação desta carta em XML não tem nenhuma indicação sobre a apresentação. As numerosas propriedades gráficas ou tipográficas estão ausentes da fonte XML. Estas propriedades serão definidas por intermédio de uma folha de estilo. Uma folha de estilo é um conjunto de regras para especificar a realização concreta de um documento sobre uma mídia particular.

47 Princípio de funcionamento das folhas de estilos
<carta> <cabeca> . . . </cabeca> <corpo> </corpo> </carta> If carta then ... If cabeca then … If corps then ... If para then Police new roman, size 12, skip first line If … then … Saint Pétaouchnoque, Le 30 nivose 2004 Editions Duschmol, 12 rue Schmurz YT123 Rapis WindStar 2000 Les rosières en buget AB562 Saint Pétaouchnoque Tel: Fax: Objeto: Dívida Prezado Senhot, Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v . sssinatura Rodapé

48 Descoberta de XML Vantagens de XML

49 Extensibilidade e estrutura
Vantagens de XML Extensibilidade e estrutura Em XML, um autor ou uma comunidade de autores inventam livremente as tags que lhes pareçam ú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> 05 </dia> </date> <date format='ISO-8601'> </date> Grande liberdade de escolha das estruturas de dados facilita a troca de dados comércio eletrônico transações financeiras e comerciais pesquisa e indústria de biotecnologias multimídia

50 Vantagens de XML Interoperabilidade Todos os dados podem ser vistos como documentos XML e não mais como arquivos no formato X ou Y. Consequências: Um servidor de documentos XML é suscetível de responder a um conjunto de necessidades de uma organização. Um simples editor de textos pode tratar o conjunto de dados de uma organização. A interoperabilidade dos utilitários está assegurada.

51 Modularidade e reutilização
Vantagens de XML Modularidade e reutilização Cada usuário é livre para definir suas próprias estruturas de documento O documento pode também estar conforme as estruturas tipadas, chamadas DTD Cada comunidade pode propor as estruturas normalizadas A validação a um DTD permite a automatização no tratamento dos dados e assegura uma possibilidade de controle de integridade

52 Accesso às fontes de informação heterogêneas
Vantagens de XML Accesso às fontes de informação heterogêneas A consulta e troca de dados entre as base de dados heterogêneas é complexa XML contribui pare minimizar este problema: formato de troca normalizado, genérico, independente de plataforma A indexação e consulta de bases de documentos pode se beneficiar de informações estruturais e textuais. pesquisa por palavras-chaves: Jorge+Amado retorna todos os documentos contendo as palavras Jorge e Amado, então as páginas pessoais de Pedro Amado cujo filho se chama Jorge. pesquisa estrutural: pesquisa os documentos cujo autor é Jorge Amado (ie os documentos contendo um elemento autor, ou escrito-por contendo Jorge e Amado)

53 XML na prática Comércio eletrônico: CXML, EBXML
Química, Matemática, Geografia: CML, MathML Multimídia: SMIL, MPEG-7, MusicML Desenhos gráficos: SVG Protocolos de comunicação: SOAP, UDDI, WSDL Transferência de dados: XMI, GML Configuração de software E muito mais!!!!

54 Definição da linguagem XML 1.0
Descoberta de XML Definição da linguagem XML 1.0

55 Exemplos de documentos XML
<document> </document> <document/> <document> Bom dia! </document> <document> <saudacao> Bom dia! </saudacao> </document> <?xml version="1.0" ?> <document> <saudacao> Bom dia! </saudacao> </document>

56 Estrutura de um documento
XML 1.0 Estrutura de um documento Um documento XML se compõe de um prólogo cuja presença é facultativa, mas fortemente aconselhada de uma árvore de elementos, obrigatória de comentários e de instruções de tratamento, facultativos <?xml version="1.0" ?> <document> <saudacao> Bom dia! </saudacao> </document>

57 <!DOCTYPE exemplo SYSTEM "exemplo.dtd" [ declarações ]>
XML 1.0 O prólogo Contém: Uma declaração XML, facultativa da forma: <?xml version="1.0" encoding="ISO " standalone="yes"> indica ao processador que vai tratar o documento: a versão da linguagem XML utilizada o código de caracteres utilizado a existência de declarações exteriores ao documento Uma declaração de tipo de documento, facultativa da forma <!DOCTYPE exemplo SYSTEM "exemplo.dtd" [ declarações ]> indica a estrutura particular a qual deve estar de acordo um documento

58 Estrutura de um DTD XML 1.0 Um DTD pode compreender duas partes
uma parte externa a parte externa é definida fora do documento. É referenciada por uma referência DTD, frequentemente uma URL. Este mecanismo permite assegurar uma reutilização de DTDs frequentemente utilizados. uma parte interna utilizada para especializar um DTD externo genérico ou redefinir certos tipos de elementos

59 Estrutura de um elemento (1)
XML 1.0 Estrutura de um elemento (1) Um elemento é da forma: <nome attr='valor'> conteúdo </nome> <nome> é a tag de abertura </nome> é a tag de fechamento. A presença é obrigatória, a exceção particular dos elementos nulos, denotado por <nom> </nom> ou <nom/> conteúdo é o conteúdo de um elemento . Pode ser: attr='valor' representa um conjunto eventualmente vazio de atributos, ou seja de pares (nome,valor). Os nomes dos atributos são únicos num elemento. uma mistura de texto e elementos instruções de tratamento comentários vazio texto outros elementos

60 Estrutura de um elemento (2)
XML 1.0 Estrutura de um elemento (2) Um nome de elemento é uma sequência não nula de caracteres que pode conter caracteres alphanuméricos undescore sinal de menos ponto caracter dois-pontos (:) é utilizado, mas com um sentido particular deve satisfazer as seguintes restrições o primeiro caracter deve ser alfabético ou um undescore os três primeiros caracteres não devem formar uma cadeia cuja representação em letras minúsculas seja "xml".

61 Estrutura de um elemento (2)
XML 1.0 Estrutura de um elemento (2) Exemplos de nomes de elementos 1998-catalogo xmlSpecification nom sociedade _toto Nome_sociedade xsl:rule X.11 incorretos corretos

62 Exemplo: Banco FirstBank
<?xml version="1.0" > <banco> <cliente> <nomeCliente> Helio </nomeCliente> <ruaCliente> Principal </ruaCliente> <cidadeCliente> Recife </cidadeCliente> <conta> <numero> A-102 </numero> <agencia> Central </agencia> <saldo> </saldo> </conta> </cliente> </banco>

63 Sintaxe dos atributos XML 1.0
Um atributo é um par nome='valor' que permite de caracterizar um elemento. Um elemento pode ter vários atributos. Neste caso, os pares nome='valor' serão separados por um espaço. Exemplos <relatorio lingua= ’pt' ult-modif='08/07/99'> <anuario generator='SQL2XML V2.0' update=' '> O nome de um atributo obedece as mesmas regras que o nome de um elemento O valor de um atributo é uma string entre aspas(") ou apóstrofos simples ('). Um valor de atributo não deve conter os caracteres ^, % e &.

64 Exemplo Atributos Banco
<conta tipo=“poupanca” taxa-mensal=“5”> <numero> A-102 </numero> <agencia> Central </agencia> <saldo> </saldo> </conta>

65 Elementos X Atributos? No contexto de documentos, atributos são parte da marcação (markup), enquanto conteúdos dos subelementos são parte do conteúdo básico do documento. No contexto de representação de dados, a diferença não é clara e pode ser confusa: A mesma informação pode ser representada de duas formas: <conta numero = “A-101”> …. </conta> <conta> <numero>A-101</numero> … </conta> Sugestão: use attibutos para identificadores de elementos, e use subelementos para conteúdo

66 Seção CDATA Uma seção CDATA instrui o parser a ignorar os caracteres de markup Exemplo: <![CDATA[ *p = &q; b = (i <= 3); ]]> Entre o início da seção, <![CDATA[ e o fim da seção, ]]>, todos os caracteres são passados diretamente para a aplicação, sem interpretação. A única string que não pode ocorrer numa seção CDATA é ]]>.

67 Comentários Comentários iniciam com ”<!--” e terminam com ”-->”. (só não podem conter o string ”--”). Ex.: <!-- Isto é um comentário --> Comentários podem ser colocados em qualquer linha do documento.

68 <p> <b> bla bla </p> bla </b>
XML 1.0 Árvore de elementos Um documento XML contém uma árvore de elementos, com as seguintes restrições: Existe num documento um único elemento pai que contém todos os outros. É a raiz do documento. Todo elemento distinto da raiz é totalmente incluído dentro de seu pai. Assim: <p> <b> bla bla </p> bla </b> não é uma estrutura XML.

69 Documentos bem formados
XML 1.0 Documentos bem formados Um documento é dito bem formado se: está de acordo com as regras sintáticas de XML (tags são aninhadas propriamente e atributos são únicos) <?xml version="1.0" standalone="yes" ?> <document> <saudacao> Bom dia! </saudacao> </document> Ex. de uma documento não bem formado: <saudacao> Bom dia! </saudacao>

70 Documentos válidos XML 1.0 Um documento é dito válido se:
seu prólogo contém uma declaração de tipo de documento sua árvore de elementos respeita a estrutura definida pelo DTD <?xml version="1.0" encoding="ISO " standalone="yes" ?> <!DOCTYPE document [ <!ELEMENT document (saudacao)> <!ELEMENT saudacao (#PCDATA)> ]> <document> <saudacao> Bom dia! </saudacao> </document>

71 XML 1.0 Noção de DTD Um documento válido deve conter uma declaração de tipo de documento. Esta declaração pode fazer referência, por intermédio de uma URL a um arquivo externo. Este arquivo é chamado de DTD (Definição de Tipo de Documento). Exemplo <?xml version="1.0" encoding="ISO " standalone="yes" ?> <!DOCTYPE document SYSTEM "acolhida.dtd"> <document> <saudacao> Bom dia! </saudacao> </document>

72 XML 1.0 Noção de DTD <!–- Arquivo acolhida.dtd. Exemplo de DTD simples --> <!–- Autor: --> <!–- Data: > <!–- a declaração XML não é obrigatória dentro de um DTD --> <!–- permite assegurar que os documentos que a referenciam --> <!–- utilizam a mesma versão de XML > <?xml version="1.0" encoding="ISO " standalone="yes" ?> <!–- Definição do elemento raiz --> <!ELEMENT document (saudacao)> <!–- Um elemento saudacao contém texto --> <!ELEMENT saudacao (#PCDATA)>

73 Conteúdo de um DTD XML 1.0 Um DTD pode conter as declarações
de elementos de listas de atributos de entidades gerais de entidades parametrizadas de notações como também comentários

74 Declaração de elemento
XML 1.0: elementos Declaração de elemento Uma declaração de elemento é da forma <!ELEMENT nome modelo> ELEMENT é uma palavra-chave e se escreve imperativamente em maiúsculas nome é um nome válido de um elemento modelo é o modelo de conteúdo deste elemento. Distinguimos cinco modelos de conteúdo elementos dados misto livre vazio

75 Modelo de conteúdo de elementos (1)
Sequência de elementos filhos ( .., .., ..) Exemplo <!ELEMENT capitulo (titulo,intro,secao)> Um elemento capitulo cujo conteúdo, imperativamente e nesta ordem, contém sub-elementos titulo, intro e secao. Alternativa ( ..| ..| ..) <!ELEMENT capitulo (titulo,intro,(secao|secoes))> Indicadores de ocorrência *,+,? Um nome de elemento pode ter um indicador de orrorrência: p* : p pode ocorrer zero, uma ou várias vezes dentro do conteúdo de um instância p+ : p pode ocorrer uma ou várias vezes p? : p pode ocorrer zero ou uma vez

76 Modelo de conteúdo de elementos (2)
Exemplos <!ELEMENT capitulo ( titulo, intro?, secao+ ) > <!ELEMENT secao ( titulo-secao, texto-secao ) > <!ELEMENT texto-secao (p|a)* >

77 Modelo de conteúdo de dados
A presença de dados no conteúdo de um elemento é especifidada pela palavra-chave #PCDATA Exemplo <!ELEMENT p (#PCDATA) >

78 Modelo de conteúdo misto
Este modelo permite definir os modelos de conteúdo podendo misturar dados e elementos Forma do modelo (#PCDATA | nome1 | …|nomen)* Exemplos de declarações <!ELEMENT p (#PCDATA | negrito | italico | sublinhado)* > <!ELEMENT negrito (#PCDATA|italico|sublinhado)* > <!ELEMENT italico (#PCDATA) > <!ELEMENT sublinhado (#PCDATA) > Exemplo de uso <p> um parágrafo pode conter texto <negrito> em evidência </negrito> ou em <italico> itálico </italico></p>

79 Modelo de conteúdo livre (1)
Um elemento pode ser definido como sendo um conteúdo qualquer, desde que este conteúdo respeite as regras gerais da linguagem XML. Exemplo <!ELEMENT qualquer ANY> Para que o conteúdo de um elemento de modelo de conteúdo livre seja válido, é necessário que, se ele contiver elementos, estes sejam declarados num DTD

80 Modelo de conteúdo livre (2)
Utilidade: este modelo de conteúdo é particularmente útil quando da criação de um DTD complexo Exemplo <!ELEMENT relatorio ANY> <!ELEMENT capitulo ANY> <!ELEMENT secao ANY> <!ELEMENT titulo-secao ANY> <!ELEMENT ilustracao ANY> <!ELEMENT bibliografia ANY> <!ELEMENT indice ANY> <!ELEMENT p ANY> <!ELEMENT negrito (#PCDATA)> <!ELEMENT titulo (#PCDATA)> <!ELEMENT autor (prenome+,nome)> <!ELEMENT nome (#PCDATA)> <!ELEMENT prenome (#PCDATA)>

81 Modelo de conteúdo vazio
XML 1.0: elements Modelo de conteúdo vazio Um elemento pode ser declarado como obrigatoriamente vazio, usando a palavra-chave EMPTY. Exemplo de declarações <!ELEMENT p (#PCDATA|bibref)* > <!ELEMENT bibref EMPTY> <!ATTLIST bibref ref IDREF #REQUIRED> Exemplo de utilização <p> para uma definição precisa, veja <bibref ref='REC-xml '/> </p>

82 Modelo de conteúdo vazio
Observações: quando o modelo de conteúdo de um elemento é o modelo vazio, deve obrigatoriamente obedecer a sintaxe <nome/> não é possível misturar EMPTY a uma outra construção de modelo de conteúdo

83 Exemplo de DTD XML 1.0 <?xml version="1.0"?>
<!ELEMENT (TO+, FROM, CC*, BCC*, SUBJECT?, BODY?)> <!ATTLIST LANGUAGE (Western|Greek|Latin|Universal) "Western" ENCRYPTED CDATA #IMPLIED PRIORITY (NORMAL|LOW|HIGH) "NORMAL"> <!ELEMENT TO (#PCDATA)> <!ELEMENT FROM (#PCDATA)> <!ELEMENT CC (#PCDATA)> <!ELEMENT BCC (#PCDATA)> <!ATTLIST BCC HIDDEN CDATA #FIXED "TRUE"> <!ELEMENT SUBJECT (#PCDATA)> <!ELEMENT BODY (#PCDATA)> <!ENTITY SIGNATURE "José Silva">

84 Exercício 1 Com o DTD anterior gere um documento XML válido

85 Exemplo de um DTD de Banco
<!DOCTYPE banco [ <!ELEMENT banco ( ( conta | cliente | deposito)+)> <!ELEMENT conta (numero agencia saldo)> <! ELEMENT cliente(nomeCliente rua cidade)> <! ELEMENT deposito (nomeCliente conta)> <! ELEMENT conta (#PCDATA)> <! ELEMENT agencia (#PCDATA)> <! ELEMENT saldo(#PCDATA)> <! ELEMENT nomeCliente (#PCDATA)> <! ELEMENT rua(#PCDATA)> <! ELEMENT cidade(#PCDATA)> ]>

86 Declaração de atributos
XML 1.0: atributos Declaração de atributos Um atributo é um par nome-valor associado a um elemento uma declaração de atributos num DTD permite especificar os atributos que poderão ou deverão estar associados às instâncias dos elementos. Forma da declaração <!ATTLIST nome-elemento nome-atributo tipo-atributo declaração-default>

87 Declaração de atributos
XML 1.0: atributos Declaração de atributos Exemplos <!ELEMENT ex1 (#PCDATA)> <!ATTLIST ex1 xml:lang NMTOKEN #IMPLIED > <!ATTLIST ex1 target ID #implied > <!ATTLIST ex1 nb (1 | 2 | 3) '1'> equivalente a target ID #implied > nb (1 | 2 | 3) '1'>

88 Tipo de atributo XML 1.0: atributos O tipo de atributo pode ser:
CDATA: o valor do atributo é uma cadeia de caracteres ID ou IDREF: permite definir um identificador para um documento Uma lista de escolhas num conjunto de tokens, ou identificadores lógicos NMTOKEN ou NMTOKENS: abreviação de Name Token. Permite ao atributo de ter seu valor de um conjunto de nomes simbólicos. ENTITY ou ENTITIES: permite que um atributo tome como valor o nome de uma entidade externa não XML NOTATION: define um atributo de notação

89 Declaração default XML 1.0: atributos Possui quatro formas
valor por default do atributo #REQUIRED: cada instância deverá ter um atributo deste nome. Não aceita valor default. #IMPLIED: presença facultativa. Não aceita valor default. #FIXED: fixa o valor deste atributo para toda instância.

90 Exemplos (1) XML 1.0: atributos Atributo CDATA Atributo enumerado
<!ATTLIST f att1 CDATA #FIXED '<toto>' > O atributo att1 dos elementos de tipo f tem um valorr constante: o string <toto>. Atributo enumerado Exemplo 1 <!ELEMENT data (#PCDATA) > <!ATTLIST data formato (ANSI | ISO | BR) #REQUIRED> <data formato= ’BR'> 24 Maio 1998 </data> <data formato='ISO'> </data> O atributo formato é obrigatório e deve ter valores do tipo ANSI, ISO ou BR Exemplo 2 <!ELEMENT list (item,item+)> <!ELEMENT item (list|#PCDATA)> <!ATTLIST list type (ord | num | alpha) 'ord'> <list type='alpha'> <item> Maria </item> <item> Pedro </item> <item> José </item> </list>

91 Exemplos (2) XML 1.0: atributos Atributos ID e IDREF
Estes tipos de atributos permitem de criar uma referência a um documento <!–- declaração do element secao --> <!–- o atributo de identificação de secao --> <!–- target é optional --> <!ELEMENT secao (#PCDATA|xref)* > <!ATTLIST secao target ID #IMPLIED > <!–- declaracao do elemento xref --> <!ELEMENT xref EMPTY > <!ATTLIST xref ref IDREF #REQUIRED> <secao target='X321'> conteúdo de uma seção </secao> <secao> outra seção. Faz referência à seção X321 <xref ref='X321'/> </secao> Obs.: nós não referenciamos de fato uma seção, mas um elemento do documento que possui um atributo do tipo ID e cujo valor é X321.

92 Exemplo DTD Banco com atributos
Trecho de um DTD de Banco com ID e IDREF <!DOCTYPE banco-2[ … ... <!ELEMENT conta (agencia, saldo)> <!ATTLIST conta numero ID # REQUIRED proprietarios IDREFS # REQUIRED> <!ELEMENT cliente(nomeCliente, rua, cidade)> <!ATTLIST cliente clienteID ID # REQUIRED contas IDREFS # REQUIRED> … ]>

93 Exemplo de XML para DTD Banco com ID e IDREF
<conta numero=“A-401” proprietarios=“C100 C102”> <agencia> Centro </agencia> <saldo> </saldo> </conta> <cliente clienteID=“C100” contas=“A-401”> <nomeCliente>José Silva </nomeCliente> <rua> Juçaras </rua> <cidade> Maceió</cidade> </cliente> <cliente clienteID=“C102” contas=“A-401 A-402”> <nomeCliente> Maria Lima </nomeCliente> <rua> Flores </rua> <cidade> Salvador </cidade> </banco-2>

94 Entidades internas XML 1.0: entidades Entidades pré-definidas
certos caracteres, como < > & ' " não podem ser utilizados dentro do texto de um documento estes caracteres devem ser representados por seus códigos pré-definidos, chamadas entidades pré-definidas <: < >: > &: &

95 Entidades internas XML 1.0: entidades Entidades definidas pelo usuário
é possível declarar as entidades dentro do DTD esta declaração tem a forma <!ENTITY nome-entidade "valor-entidade"> Exemplo a declaração seguinte <!DOCTYPE toto [ <!ENTITY copyright "© Editions titi"> ]> <toto> &copyright; </toto> produzirá © Editions titi observação: 00A9 é o código Unicode do caracter ©

96 Entidades externas endereçadas por URL
Exemplo <?xml version='1.0' ?> <!DOCTYPE livro [ <!ENTITY capitulo1 SYSTEM "chap1.xml"> <!ENTITY capitulo2 SYSTEM "chap2.xml"> <!ENTITY autor "toto"> ]> <livro> <titulo> XML para idiotas </titulo> <autor> &autor; </autor> <intro> Era uma vez uma Web… </intro> &capitulo1; &capitulo2; </livro> Restrição: as entidades externas devem ser documentos bem formados

97 Notações e entidades não XML
Exemplo <!DOCTYPE exemplo [ <!NOTATION jpeg SYSTEM "/usr/local/bin/xview"> <!ENTITY foto-ferias SYSTEM "./fotos/foto1.jpg" NDATA jpeg> <!ELEMENT exemplo (foto)> <!ELEMENT foto EMPTY> <!ATTLIST foto img ENTITY #REQUIRED> <exemplo> <foto img='foto-ferias'/> </exemplo> ]> A declaração de notação associa ao formato jpeg a aplicação xview que poderá ser utilizada em extensão da aplicação XML. A declaração da entidade foto-ferias indica que o conteúdo dos dados está situado no arquivo foto1.jpg A palavra-chave NDATA indica que este arquivo é de um formato não XML

98 XML 1.0: Exemplos Exemplo <?xml version='1.0' ?>
<!DOCTYPE db [ <!ELEMENT db (pessoa*)> <!ELEMENT pessoa (nome, idade, )> <!ELEMENT nome (#PCDATA)> <!ELEMENT idade (#PCDATA)> <!ELEMENT (#PCDATA)> ]> <db> <pessoa> <nome> Pedro Maia </nome> <idade> 33 </idade> < > </ > </pessoa> <pessoa> <nome> Ana Maria </nome> <idade> 24 </idade> < > </ > <pessoa> </pessoa> </db>

99 DTDs como esquemas XML 1.0: Exemplos Exemplo
Seja o esquema r1(a, b, c) e r2 (c, e) <db> <r1> <a> a1 </a> <b> b1 </b> <c> c1 </c> </r1> <r1> <a> a2 </a> <b> b2 </b> <c> c2 </c> </r1> <r2> <c> c1 </c> <d> d1 </d> </r2> <r2> <c> c2 </c> <d> d3 </d> </r2> </db> <!DOCTYPE db[ <!ELEMENT (r1*|r2*)> <!ELEMENT r1(a,b,c)> <!ELEMENT r2(c,d)> <!ELEMENT a (#PCDATA)> <!ELEMENT b (#PCDATA)> <!ELEMENT c (#PCDATA)> <!ELEMENT d (#PCDATA)> ]>

100 XML 1.0: Exemplos Exercício 2: Dado o documento XML crie um DTD para o mesmo <?xml version='1.0' ?> <!DOCTYPE livro SYSTEM "livro.dtd"> <livro> <titulo> XML e Java </titulo> <autor> João Silva </autor> <conteudo> <capitulo focus="XML"> Introdução </capitulo> <capitulo focus="XML"> DTD </capitulo> <capitulo focus="XML"> Elementos </capitulo> <capitulo focus="Java"> SAX </capitulo> <capitulo focus="Java"> DOM </capitulo> <bibliografia> bla bla bla </bibliografia> <copyright> &ufcgCopyright; </copyright> </livro>

101 Limitações de DTDs como esquemas
DTD impõe ordem Não existe a noção de tipos de dados atômicos (int, float, etc) Não podemos especificar uma faixa de valores de domínio IDREF não é relacionado a um tipo. Tipos são associados com tags => elementos com mesmo nome porém pertencendo a diferentes tipos (nome de pessoa e nome de um curso) não podem usar o mesmo elemento nome. Nesta caso ou redefinimos nomePessoa e nomeCurso ou usamo namespaces com os qualificadores, pessoa:nome e curso:nome


Carregar ppt "2. Modelagem de Dados semi-estruturados"

Apresentações semelhantes


Anúncios Google