Aula2

209 views
139 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
209
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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
  • Une recommandation dans le jargon du W3C signifie un standard industriel de fait. Il n'a cependant pas de valeur normative.
  • 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.
  • 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.
  • 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

    ×