O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Aula2

267 visualizações

Publicada em

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Aula2

  1. 1. 2. Modelagem de Dadossemi-estruturadosIntrodução
  2. 2. Dados semi-estruturados ? Dados semi-estruturados: dadosheterogêneos e irregulares, por exemplo XML Banco de dados: originalmente, sistemasfechados, dedicados a gestão de dadosregulares, cuja estrutura pouco evolui notempo Novas aplicações requerem mais flexibilidadede representação e estão constantementeevoluindo o esquema Os modelos relacional e de objetos chegarama seus limitesIntrodução
  3. 3. Dados semi-estruturados ? Uma solução: usar um modelo de grafopara armazenar os dados comcaracterí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 WebIntrodução
  4. 4. Dados semi-estruturados ? Evolução:1995: Projeto TSIMMIS, Modelo OEMna Universidade de Stanford, EUA1996: Projeto LORE, primeiro SGBDsemi-estruturado, Stanford1999: aceitação de XML pela indústriapara representação de dados semi-estruturadosIntrodução
  5. 5. Uma sintaxe para dados semi-estruturados Dados semi-estruturados: dados sem esquema ouauto-descritivos Não há separação entre os dados e o esquema Os dados contêm o esquema Exemplo {nome:"Ana", tel:"3334567", email:ana@abc.com.br} {nome:"Ana", tel:"3334567", tel:"9715432"} Aqui os valores são os dados atômicos Representação sob forma de grafosnometelemail3334567ana@abc.com.brAnanometeltel33345679715432Ana
  6. 6. Uma sintaxe para dados semi-estruturados Os valores podem ser objetos complexos Exemplo{pessoa: {nome:"ana", tel:"3334567"}},{pessoa: {nome:{pré-nome:"Victor",sobrenome:"Bezerra"},tel:"3218765"}},{pessoa: {nome:"Sandra"}}
  7. 7. Representação de basesrelacionais 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.r1a b ca1 b1 c1a2 b2 c2r2c dc2 d2c3 d3{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}}
  8. 8. Representação de basesrelacionais Representação num grafoIntroduçãor1 r2row row row rowa b ca1 b1 c1a b ca2 b2 c2
  9. 9. Representação de bases deobjeto 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 seguinteforma:{ 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. 10. Representação de bases deobjeto Representação em grafoIntrodução&p1&p3&p2filhomãefilhomãenomeidadenomeidadenomeidadeMaria45 Joana22José23rootpessoapessoapessoa
  11. 11. 2.1. Modelagem de dadossemi-estruturadosO modelo OEM
  12. 12. O modelo OEM Desenvolvido no projeto TSIMMIS-Stanford sistema para integração de fontes de dadosheterogê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ômicoOEM
  13. 13. O modelo OEM O modelo OEM é um modelo de grafo.Os labels estão nos nodos e não nosarcos como visto anteriormente. Obs.: Várias extensões ao OEM forampropostas e consireram labels nos arcos!OEM
  14. 14. Exemplo de Semistructured Data Model&o1&o12 &o24 &o29&o43&96&243 &206&25“Serge”“Abiteboul”1997“Victor”“Vianu”122 133paperbookpaperreferencesreferencesreferencesauthortitleyearhttpauthorauthorauthortitle publisherauthorauthortitlepagefirstnamelastnamefirstname lastname firstlastBibObject Exchange Model (OEM)complex objectatomic object
  15. 15. Exercício: representação de uma base deobjetosusando o modelo OEM esquema ODL da base de objetosclass Estado(extent estados){ attribute string nome;attribute Cidade capital;relationship set<Cidade> cidades-eminverse Cidade::estado-de}class Cidade(extent cidades){ attribute string nome;relationship Estado estado-deinverse Estado:cidades-em;}
  16. 16. Exercício: representação de uma base deobjetos 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. 17. Introdução a XML
  18. 18. 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 WebIntrodução
  19. 19. A revolução da Web… 1989 - Primeiro Web Browser 1993 - Mosaic é difundido, há 50 web sites 1994 - Primeiras ferramentas de busca(WWWW, webcrawler) 1996 - US$ 1M gastos em compras na Web,presença em 150 países 1997 - 1 milhão de web sites 1998 - 300.000 web servers 2000 - mais de 1 bilhão de páginas web 2002 – quase 2,5 bilhões de páginas webindexadas (google)Introdução
  20. 20. A Web hoje… documentos HTML voltada para uso humano gerado automaticamente poraplicações Fácil de alcançar qualquer Web page,de qualquer server, em qualquerplataformaIntrodução
  21. 21. Limites da Web … aplicações não podem consumir HTML tecnologia de HTML wrapper é instável(modifica-se a página => modifica-se owrapper) tecnologia OO (Corba) requer ambientecontrolado companhias se fundem, formam parcerias;necessitam de interoperabilidade de formarápidaIntrodução
  22. 22. 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 naempresa entre empresasIntrodução
  23. 23.  As novas aplicações Comércio Eletrônico Protocolos "B2B" Bibliotecas digitais sistemas distribuídos …precisamos de um "super HTML"… estão surgindo ...Introdução
  24. 24. XMLUm padrão W3C para complementar HTMLorigens: textos estruturados em SGMLmotivação:HTML descreve apresentaçãoXML descreve conteúdohttp://www.w3.org/TR/REC-xml (2/98)
  25. 25. O Segredo do sucesso deHTMLSimplicidade: Todo mundo pode escrever HTML5G@9³wd‚ wx`q&³qdfµydqËtcdvd xv`Ìux`quxdÌdchwtÌ5G@9³wÌ`svËtÌw¬ydqdr ux`quxdÌËq`w`etÌr`vtaÌt vd̳``Ëqhb`±¢txshydÌv`qu5G@9 btsdbw`Ëdc`±tvcdhsetÌr`±¢t`wÌ`y³vcd gƒ ËdÌwd‚ wqhsp
  26. 26. De HTML para XMLHTML descreve a apresentação
  27. 27. HTMLh1 Bibliography /h1p i Foundations of Databases /iAbiteboul, Hull, Vianubr Addison Wesley, 1995p i Data on the Web /iAbiteoul, Buneman, Suciubr Morgan Kaufmann, 1999
  28. 28. XMLbibliographybook title Foundations… /titleauthor Abiteboul /authorauthor Hull /authorauthor Vianu /authorpublisher Addison Wesley /publisheryear 1995 /year/book…/bibliographyXML descreve o conteúdo
  29. 29. Exemplo Suponha que um site de e-commerceprecisa emitir uma nota fiscal Exemplo Problemas:Diversos departamentos da empresa usamestes dados de notas fiscais em diferentesplataformas, SO e linguagem de programação
  30. 30. Exemplo (cont) Melhor seria usar XML!?xml version=“1.0”NotaFiscalNomeCliente Ana Silva /NomeClienteEndCliente Rua das Margaridas, Maceió, AL /EndClienteEndEnvio Rua das Margaridas, Maceió, AL /EndEnvioItemcodigo 123 /codigodescricao Parafuso 8mm /decricaoquantidade 20 /quantidadepreco 3,00 /preco/ItemItem … /Item/NotaFiscal
  31. 31. Exemplofichanome trabln end emailcidade cepSantosNatal 52310vera@ibge.brIBGEtipogerenteVerafnfichanomefnVera/fnlnSantos/ln/nometrab tipo=“gerenteIBGEendcidadeNatal/cidadecep52310/cep/endemailvera@ibge.br/email/trab/fichaElementosAtributosDadosfntipo52310Syntaxe
  32. 32. 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 asindicações estruturais center,hr,b,i,big,small,… servem paradescrever a apresentação.Princípios fundamentais
  33. 33. Problemas com HTML Uma vez criado, um documento é ligado auma norma particular (ex. HTML 3.2 ) A visualização de um documento éfortemente dependente da interpretação queo navegador faz. É necessário dispor de várias versões dodocumento em função da mídia em que vaiser apresentado A indexação de documentos só pode ser feitasobre a parte textual.Princípios fundamentais
  34. 34. XML: uma resposta única anecessidades variadas HTML é usada como a lingagem universal deapresentação de documentos na Web, masnão é uma linguagem adaptada paradescrever a estrutura destes documentos As bases de dados atuais são muito rígidaspara manipular dados cuja estrutura éirregular e evolui com o tempo.Introdução
  35. 35. Os segredos de XML Como 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 deinformação extensível: pode-se representar informação dequalquer forma
  36. 36. Origem Trabalho cooperativo de um grande númerode empresas e de pesquisadores reunidos noWorld Wide Web Consortium (W3C) 400 colaboradores da indústria, entre os quaisOracle, 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 parafacilitar a troca de dados na WebOrigem da linguagem XML
  37. 37. Mandamentos iniciais: XML deverá ser diretamente utilizávelna Internet XML deverá suportar uma largavariedade de aplicações XML deverá ser compatível com SGML A criação de páginas XML deverá sertambém o mais simples possívelOrigem da linguagem
  38. 38. Mandamentos iniciais(2) Os documentos XML deverão ser degrande legibilidade A criação de documentos deverá serrápida A sintaxe deverá ser formal e concisa A concisão do código tem mínimaimportânciaOrigem da Linguagem
  39. 39. Histórico 1993: primeiros trabalhos sobre adaptaçãodas técnicas SGML à Web (Sperberg).HTML to the Max: A Manifesto for AddingSGML Intelligence to the World Wide Web Junho 1996: criação de um grupo de trabalhono W3C 10 fev. 1998: publicação da recomendaçãopara versão 1.0 da linguagem.Origem da lingagem
  40. 40. Razões da W3C para usarXML Permite a publicação eletrônicainternacional independente de mídia Permite que as empresas definamprotocolos de transferências de dados Facilita o desenvolvimento de SW paraWeb Disseminação dos dados sem usoformatos proprietários (caros!) Exibição de informação customizada Gestão de metadados facilitada
  41. 41. XML XML significa eXtensible MarkupLanguage sucessor de HTML herdeiro de SGMLXML é um linguagem dedescrição e de troca dedocumentos estruturadosPrincípios fundamentais
  42. 42. XML: herdeiro de SGML SGML Standard Generalized MarkupLanguage, norma ISO 8879:1986 Muito utilizada na indústria para as grandestécnicas de documentação. Muito complexa para utilização de «públicoem geral» SGML tem demonstrado as vantagens doformato estrutural para a Gestão Eletrônicade Documentos (GED) XML usa 10% de SGML para representar deforma eficaz 90% dos documentosPrincípios Fundamentais
  43. 43. Noção estrutural Princípio chave de SGML Idéia fundamental:Considere um documento, é desejávelseparar completamenteas informações de estruturadas informações de apresentação.Princípios fundamentais
  44. 44. Exemplo de um documentoCampina GRande,20 de maio de 2001Sr. Edilson Silva,Rua das Flores, 12581293 CaruaruBar do CarregoRua das Bodegas, s/n58106-920 C. GrandeTel: 012133564Fax: 879765426Objet: Dívida?Prezado Senhor,Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbgfdskjbvhv feje slc ifehfe fhckh c jeflccj n khefiheznf jùkvbc lkhdklvn vAproveito do ensejo para renovar meus protestos de elevada estima econsideração.assinaturaRodapéLogotipoDataDestinatárioCorpoRodapéCabeçalhoObjetoSaudaçãoFormaPolidaAssinatura
  45. 45. Representação XMLcarta. . ./cartacabeca. . ./cabecadestinatarionome Sr Edilson Silva /nomeenderecorua rua das Flores /ruacidade Caruaru /cidade/endereco/destinatarioobjeto bla bla /objetodata20 Maio 2001/datasaudacaoPrezado Senhor,/saudacaocorpo. . ./corpoparaAqui é o primeiroparágrafo/paraparaaqui é o segundo ...logotipo loc=logo-graph/endereco abrev-endereco;/endereco
  46. 46. Pontos importantes A representação desta carta em XML nãotem nenhuma indicação sobre aapresentação. As numerosas propriedades gráficas outipográficas estão ausentes da fonte XML. Estas propriedades serão definidas porintermédio de uma folha de estilo. Uma folha de estilo é um conjunto de regraspara especificar a realização concreta de umdocumento sobre uma mídia particular.Princípios fundamentais
  47. 47. Saint Pétaouchnoque,Le 30 nivose 2004Editions Duschmol,12 rue SchmurzYT123 RapisWindStar 2000Les rosières en bugetAB562 Saint PétaouchnoqueTel: 012133564Fax: 879765426Objeto: DívidaPrezado Senhot,Bla bla bli, bli blo bla, kkkk vhlgvckjdhklbg fdskjbvhv feje slc ifehfefhckh c jeflccj n khef iheznf jùkvbclkhdklvn v.sssinaturaRodapécartacabeca. . ./cabecacorpo. . ./corpo/cartaIf carta then ...If cabeca then …If corps then...If para thenPolice new roman,size 12,skip first lineIf … then …estilos
  48. 48. Descoberta de XMLVantagens de XML
  49. 49. Extensibilidade e estrutura Em XML, um autor ou uma comunidade de autores inventamlivremente as tags que lhes pareçam úteis para marcar oscomponentes de um documento. Exemplo: diversas formas de representar uma datadate 5 janeiro 2000 /datedateano 2000 /anomes 01 /mesdia 05 /dia/datedate format=ISO-8601 2000-01-05 /date Grande liberdade de escolha das estruturas de dados facilitaa troca de dadoscomércio eletrônicotransações financeiras e comerciaispesquisa e indústria de biotecnologiasmultimídiaVantagens de XML
  50. 50. Interoperabilidade Todos os dados podem ser vistos como documentosXML e não mais como arquivos no formato X ou Y. Consequências: Um servidor de documentos XML é suscetível deresponder a um conjunto de necessidades de umaorganização. Um simples editor de textos pode tratar o conjuntode dados de uma organização. A interoperabilidade dos utilitários estáassegurada.Vantagens de XML
  51. 51. Modularidade e reutilização Cada usuário é livre para definir suaspróprias estruturas de documento O documento pode também estar conformeas estruturas tipadas, chamadas DTD Cada comunidade pode propor as estruturasnormalizadas A validação a um DTD permite aautomatização no tratamento dos dados eassegura uma possibilidade de controle deintegridadeVantagens de XML
  52. 52. Accesso às fontes de informaçãoheterogêneas A consulta e troca de dados entre as base de dadosheterogêneas é complexaXML contribui pare minimizar este problema: formato de trocanormalizado, genérico, independente de plataforma A indexação e consulta de bases de documentos pode sebeneficiar de informações estruturais e textuais. pesquisa por palavras-chaves: Jorge+Amado retorna todos osdocumentos contendo as palavras Jorge e Amado, então aspáginas pessoais de Pedro Amado cujo filho se chama Jorge. pesquisa estrutural: pesquisa os documentos cujo autor é JorgeAmado (ie os documentos contendo um elemento autor, ouescrito-por contendo Jorge e Amado)Vantagens de XML
  53. 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. 54. Descoberta de XMLDefinição da linguagem XML 1.0
  55. 55. Exemplos de documentosXML?xml version=1.0 ?documentsaudacao Bom dia! /saudacao/documentdocumentsaudacao Bom dia! /saudacao/documentdocument /document document/document Bom dia! /documentXML 1.0
  56. 56. Estrutura de um documento Um documento XML se compõe de um prólogo cuja presença é facultativa, masfortemente aconselhada de uma árvore de elementos, obrigatória de comentários e de instruções de tratamento,facultativos?xml version=1.0 ?documentsaudacao Bom dia! /saudacao/documentXML 1.0
  57. 57. O prólogoContém: Uma declaração XML, facultativa da forma:?xml version=1.0 encoding=ISO-8859-1 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 deacordo um documentoXML 1.0
  58. 58. Estrutura de um DTD Um DTD pode compreender duaspartes uma parte externaa parte externa é definida fora do documento.É referenciada por uma referência DTD,frequentemente uma URL. Este mecanismopermite assegurar uma reutilização de DTDsfrequentemente utilizados. uma parte internautilizada para especializar um DTD externogenérico ou redefinir certos tipos de elementosXML 1.0
  59. 59. 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, aexceçã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 vaziode atributos, ou seja de pares (nome,valor). Os nomes dosatributos são únicos num elemento.XML 1.0uma mistura de texto e elementosinstruções de tratamentocomentáriosvaziotextooutros elementos
  60. 60. Estrutura de um elemento (2) Um nome de elemento é uma sequência não nula decaracteres que pode conter caracteres alphanuméricos undescore sinal de menos ponto caracter dois-pontos (:) é utilizado, mas com um sentidoparticular 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 cadeiacuja representação em letras minúsculas seja xml.XML 1.0
  61. 61. Estrutura de um elemento (2)Exemplos de nomes de elementos1998-catalogoxmlSpecificationnom sociedade_totoNome_sociedadexsl:ruleX.11incorretoscorretosXML 1.0
  62. 62. Exemplo: Banco FirstBank?xml version=1.0 bancoclientenomeCliente Helio /nomeClienteruaCliente Principal /ruaClientecidadeCliente Recife /cidadeClientecontanumero A-102 /numeroagencia Central /agenciasaldo 400 /saldo/contaconta…/conta/cliente../banco
  63. 63. Sintaxe dos atributos Um atributo é um par nome=valor que permite decaracterizar um elemento. Um elemento pode tervários atributos. Neste caso, os pares nome=valorserão separados por um espaço. Exemplos relatorio lingua= ’pt ult-modif=08/07/99 anuario generator=SQL2XML V2.0update=07.08.99 O nome de um atributo obedece as mesmas regrasque o nome de um elemento O valor de um atributo é uma string entre aspas() ouapóstrofos simples (). Um valor de atributo não deveconter os caracteres ^, % e .XML 1.0
  64. 64. Exemplo Atributos Bancoconta tipo=“poupanca” taxa-mensal=“5”numero A-102 /numeroagencia Central /agenciasaldo 400 /saldo/conta
  65. 65. Elementos X Atributos?No contexto de documentos, atributos sãoparte da marcação (markup), enquantoconteúdos dos subelementos são parte doconteúdo básico do documento.No contexto de representação de dados, adiferença não é clara e pode ser confusa: A mesma informação pode ser representada deduas formas:conta numero = “A-101” …. /contacontanumeroA-101/numero …/contaSugestão: use attibutos para identificadores deelementos, e use subelementos para conteúdo
  66. 66. Seção CDATAUma seção CDATA instrui o parser a ignorar os caracteres de markupExemplo:![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. 67. ComentáriosComentá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 dodocumento.
  68. 68. Árvore de elementosUm documento XML contém uma árvore de elementos,com as seguintes restrições: Existe num documento um único elemento pai quecontém todos os outros. É a raiz do documento. Todo elemento distinto da raiz é totalmenteincluído dentro de seu pai. Assim:p b bla bla /p bla /bnão é uma estrutura XML.XML 1.0
  69. 69. 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.0standalone=yes ?documentsaudacao Bom dia! /saudacao/documentEx. de uma documento não bemformado:documentsaudacao Bom dia!/document/saudacaoXML 1.0
  70. 70. Documentos válidos 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 peloDTD?xml version=1.0 encoding=ISO-8859-1standalone=yes ?!DOCTYPE document [!ELEMENT document (saudacao)!ELEMENT saudacao (#PCDATA)]documentsaudacao Bom dia! /saudacao/documentXML 1.0
  71. 71. Noção de DTD Um documento válido deve conter uma declaraçãode tipo de documento. Esta declaração pode fazerreferência, por intermédio de uma URL a um arquivoexterno. Este arquivo é chamado de DTD (Definiçãode Tipo de Documento). Exemplo?xml version=1.0 encoding=ISO-8859-1 standalone=yes ?!DOCTYPE document SYSTEM acolhida.dtddocumentsaudacao Bom dia! /saudacao/documentXML 1.0
  72. 72. Noção de DTDXML 1.0!–- 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-8859-1 standalone=yes ?!–- Definição do elemento raiz --!ELEMENT document (saudacao)!–- Um elemento saudacao contém texto --!ELEMENT saudacao (#PCDATA)
  73. 73. Conteúdo de um DTD 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áriosXML 1.0
  74. 74. Declaração de elemento Uma declaração de elemento é da forma!ELEMENT nome modelo ELEMENT é uma palavra-chave e se escreveimperativamente 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vazioXML 1.0: elementos
  75. 75. Modelo de conteúdo deelementos (1) Sequência de elementos filhos ( .., .., ..) Exemplo!ELEMENT capitulo (titulo,intro,secao)Um elemento capitulo cujo conteúdo, imperativamente e nestaordem, contém sub-elementos titulo, intro e secao. Alternativa ( ..| ..| ..) Exemplo!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 uminstânciap+ : p pode ocorrer uma ou várias vezesp? : p pode ocorrer zero ou uma vez
  76. 76. Modelo de conteúdo deelementos (2) Exemplos!ELEMENT capitulo (titulo,intro?,secao+ ) !ELEMENT secao (titulo-secao,texto-secao ) !ELEMENT texto-secao (p|a)*
  77. 77. Modelo de conteúdo de dados A presença de dados no conteúdo deum elemento é especifidada pelapalavra-chave #PCDATA Exemplo!ELEMENT p (#PCDATA)
  78. 78. Modelo de conteúdo misto Este modelo permite definir os modelos de conteúdopodendo 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 usop um parágrafo pode conter texto negrito emevidência /negrito ou em italico itálico/italico/p
  79. 79. Modelo de conteúdo livre (1) Um elemento pode ser definido como sendoum conteúdo qualquer, desde que esteconteúdo respeite as regras gerais dalinguagem XML. Exemplo!ELEMENT qualquer ANY Para que o conteúdo de um elemento demodelo de conteúdo livre seja válido, énecessário que, se ele contiver elementos,estes sejam declarados num DTD
  80. 80. Modelo de conteúdo livre (2) Utilidade: este modelo de conteúdo é particularmente útil quandoda 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. 81. Modelo de conteúdo vazio Um elemento pode ser declarado comoobrigatoriamente vazio, usando a palavra-chaveEMPTY. Exemplo de declarações!ELEMENT p (#PCDATA|bibref)* !ELEMENT bibref EMPTY!ATTLIST bibref ref IDREF #REQUIRED Exemplo de utilizaçãop para uma definição precisa, veja bibrefref=REC-xml-19980210/ /pXML 1.0: elements
  82. 82. Modelo de conteúdo vazio Observações: quando o modelo de conteúdo de umelemento é o modelo vazio, deveobrigatoriamente obedecer a sintaxenome/ não é possível misturar EMPTY a uma outraconstrução de modelo de conteúdo
  83. 83. ?xml version=1.0?!ELEMENT EMAIL (TO+, FROM, CC*, BCC*, SUBJECT?, BODY?)!ATTLIST EMAILLANGUAGE (Western|Greek|Latin|Universal) WesternENCRYPTED CDATA #IMPLIEDPRIORITY (NORMAL|LOW|HIGH) NORMAL!ELEMENT TO (#PCDATA)!ELEMENT FROM (#PCDATA)!ELEMENT CC (#PCDATA)!ELEMENT BCC (#PCDATA)!ATTLIST BCCHIDDEN CDATA #FIXED TRUE!ELEMENT SUBJECT (#PCDATA)!ELEMENT BODY (#PCDATA)!ENTITY SIGNATURE José SilvaXML 1.0Exemplo de DTD
  84. 84. Exercício 1 Com o DTD anterior gere umdocumento XML válido
  85. 85. Exemplo de um DTD deBanco!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. 86. Declaração de atributos Um atributo é um par nome-valorassociado a um elemento uma declaração de atributos num DTDpermite especificar os atributos quepoderão ou deverão estar associadosàs instâncias dos elementos. Forma da declaração!ATTLIST nome-elemento nome-atributotipo-atributo declaração-defaultXML 1.0: atributos
  87. 87. 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) 1equivalente a!ATTLIST ex1 xml:lang NMTOKEN #IMPLIED target ID #implied nb (1 | 2 | 3) 1XML 1.0: atributos
  88. 88. Tipo de atributo O tipo de atributo pode ser:CDATA: o valor do atributo é uma cadeia de caracteresID ou IDREF: permite definir um identificador para umdocumentoUma lista de escolhas num conjunto de tokens, ouidentificadores lógicosNMTOKEN ou NMTOKENS: abreviação de NameToken. Permite ao atributo de ter seu valor de umconjunto de nomes simbólicos.ENTITY ou ENTITIES: permite que um atributo tomecomo valor o nome de uma entidade externa não XMLNOTATION: define um atributo de notaçãoXML 1.0: atributos
  89. 89. Declaração default Possui quatro formas valor por default do atributo #REQUIRED: cada instância deverá ter um atributodeste nome. Não aceita valor default. #IMPLIED: presença facultativa. Não aceita valordefault. #FIXED: fixa o valor deste atributo para todainstância.XML 1.0: atributos
  90. 90. Exemplos (1) Atributo CDATA!ATTLIST f att1 CDATA #FIXED toto O atributo att1 dos elementos de tipo f tem um valorr constante: o stringtoto. Atributo enumerado Exemplo 1!ELEMENT data (#PCDATA) !ATTLIST data formato (ANSI | ISO | BR) #REQUIREDdata formato= ’BR 24 Maio 1998 /datadata formato=ISO 1998-05-24 /dataO 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) ordlist type=alphaitem Maria /itemitem Pedro /itemitem José /item/listXML 1.0: atributos
  91. 91. Exemplos (2) Atributos ID e IDREFEstes 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 #REQUIREDsecao target=X321 conteúdo de uma seção /secaosecao outra seção. Faz referência à seção X321 xrefref=X321/ /secaoObs.: nós não referenciamos de fato uma seção, mas um elemento dodocumento que possui um atributo do tipo ID e cujo valor é X321.XML 1.0: atributos
  92. 92. Exemplo DTD Banco comatributosTrecho de um DTD de Banco com ID e IDREF!DOCTYPE banco-2[… ...!ELEMENT conta (agencia, saldo)!ATTLIST conta numero ID # REQUIREDproprietarios IDREFS # REQUIRED!ELEMENT cliente(nomeCliente, rua, cidade)!ATTLIST clienteclienteID ID # REQUIREDcontas IDREFS # REQUIRED…]
  93. 93. Exemplo de XML para DTDBanco com ID e IDREFbanco-2conta numero=“A-401” proprietarios=“C100 C102”agencia Centro /agenciasaldo 500 /saldo/contacliente clienteID=“C100” contas=“A-401”nomeClienteJosé Silva /nomeClienterua Juçaras /ruacidade Maceió/cidade/clientecliente clienteID=“C102” contas=“A-401 A-402”nomeCliente Maria Lima /nomeClienterua Flores /ruacidade Salvador /cidade/cliente/banco-2
  94. 94. Entidades internas Entidades pré-definidas certos caracteres, como não podemser utilizados dentro do texto de um documento estes caracteres devem ser representados porseus códigos pré-definidos, chamadas entidadespré-definidas: lt;: gt;: amp;XML 1.0: entidades
  95. 95. Entidades internas Entidades definidas pelo usuário é possível declarar as entidades dentro do DTD esta declaração tem a forma!ENTITY nome-entidade valor-entidade Exemploa declaração seguinte!DOCTYPE toto [!ENTITY copyright #x00A9; Editionstiti]toto copyright; /totoproduzirá© Editions titiobservação: 00A9 é o código Unicode do caracter ©XML 1.0: entidades
  96. 96. Entidades externas endereçadas porURL Exemplo?xml version=1.0 ?!DOCTYPE livro [!ENTITY capitulo1 SYSTEM chap1.xml!ENTITY capitulo2 SYSTEM chap2.xml!ENTITY autor toto]livrotitulo XML para idiotas /tituloautor autor; /autorintro Era uma vez uma Web… /introcapitulo1;capitulo2;/livro Restrição: as entidades externas devem serdocumentos bem formados
  97. 97. Notações e entidades nãoXML Exemplo!DOCTYPE exemplo [!NOTATION jpeg SYSTEM /usr/local/bin/xview!ENTITY foto-ferias SYSTEM ./fotos/foto1.jpgNDATA jpeg!ELEMENT exemplo (foto)!ELEMENT foto EMPTY!ATTLIST foto img ENTITY #REQUIREDexemplofoto img=foto-ferias//exemplo]A declaração de notação associa ao formato jpeg a aplicaçãoxview que poderá ser utilizada em extensão da aplicação XML.A declaração da entidade foto-ferias indica que o conteúdodos dados está situado no arquivo foto1.jpgA palavra-chave NDATA indica que este arquivo é de um formatonão XML
  98. 98.  Exemplo?xml version=1.0 ?!DOCTYPE db [!ELEMENT db (pessoa*)!ELEMENT pessoa (nome, idade, email)!ELEMENT nome (#PCDATA)!ELEMENT idade (#PCDATA)!ELEMENT email (#PCDATA)]dbpessoa nome Pedro Maia /nomeidade 33 /idadeemail maia@yahoo.com /email/pessoapessoa nome Ana Maria /nomeidade 24 /idadeemail ana.maria@uol.com.br /email/pessoapessoa . . . /pessoa/dbXML 1.0: Exemplos
  99. 99. DTDs como esquemas ExemploSeja o esquema r1(a, b, c) e r2 (c, e)db r1 a a1 /a b b1 /b c c1 /c/r1r1 a a2 /a b b2 /b c c2 /c/r1r2 c c1 /c d d1 /d /r2r2 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)]XML 1.0: Exemplos
  100. 100.  Exercício 2: Dado o documento XML crie um DTD parao mesmo?xml version=1.0 ?!DOCTYPE livro SYSTEM livro.dtdlivrotitulo XML e Java /tituloautor João Silva /autorconteudocapitulo focus=XML Introdução/capitulocapitulo focus=XML DTD /capitulocapitulo focus=XML Elementos/capitulocapitulo focus=Java SAX /capitulocapitulo focus=Java DOM /capituloconteudobibliografia bla bla bla /bibliografiacopyright ufcgCopyright; /copyright/livroXML 1.0: Exemplos
  101. 101. Limitações de DTDs comoesquemas 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 dedomínio IDREF não é relacionado a um tipo. Tipos são associados com tags = elementos commesmo nome porém pertencendo a diferentes tipos(nome de pessoa e nome de um curso) não podemusar o mesmo elemento nome. Nesta caso ouredefinimos nomePessoa e nomeCurso ou usamonamespaces com os qualificadores, pessoa:nome ecurso:nome

×