Aula de DTD Definição do Tipo de Documento

778 visualizações

Publicada em

Aula de DTD, Doctype, Definição do Tipo de Document, XML

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
778
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
35
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula de DTD Definição do Tipo de Documento

  1. 1. Linguagem para Organização e Transferência de dados para Web. Prof. Rudson Kiyoshi S. Carvalho Anhanguera - 2015 Parte - 2 DTD
  2. 2. DTD Document Type Definition Definição de Tipo de Documento
  3. 3. Introdução • Um DTD (Document Type Definition) especifica um conjunto de regras que define a estrutura de um documento XML. • O DTD pode aparecer no topo do XML (no prólogo) ou em um documento separado. <?xml version=“1.0” ?> <!DOCTYPE noRaiz [ … ]> <?xml version=“1.0” ?> <!DOCTYPE noRaiz SYSTEM "meuDTD.dtd">
  4. 4. Declarações de um DTD note.dtd
  5. 5. • Os DTDs são uma ótima maneira para garantir a consistência dos dados XML compartilhados entre diferentes pessoas e empresas. Podemos utilizar um DTD para validar se o documento XML enviado por um terceiro está formado adequadamente antes de tentarmos utiliza-lo.
  6. 6. DTD - Utilização • Declaração de um conjunto de elementos. Você não pode utilizar outros elementos que não estejam definidos neste documento. • Defini quais os elementos ou dados que aquele determinado elemento XML pode conter, em qual ordem, quantidade e se é opcional ou obrigatório. • Declara um conjunto de atributos para cada elemento. Cada declaração de atributo define o nome, tipo (datatype), valores padrões (se aplicável), e comportamento (obrigatório ou opcional).
  7. 7. Exemplo Prático
  8. 8. Construindo um DTD
  9. 9. Construindo um DTD • Para criarmos um elemento no DTD devemos utilizar a TAG <!ELEMENT> e ela deve ser declarada sempre com todas as letras em maiúsculas. <!ELEMENT nóDocumento especElemento>
  10. 10. Declaração de um Elemento • No exemplo acima declaramos que nosso XML deverá conter o elemento (nó) “destinatario” e a especificação entre parênteses (#PCDATA) Parsed Character Data especifica que este elemento terá um valor do tipo texto e um processador XML deverá analisar ou apenas verificar a existência deste valor. <!ELEMENT destinatario (#PCDATA) > Definição de um elemento que contenha texto.
  11. 11. Elemento • No exemplo acima declaramos que nosso XML deverá conter o elemento (nó) “tamanho” e o mesmo sera um elemento vazio, podendo apenas trabalhar com conjuntos de atributos. • Nota: EMPTY não utiliza parênteses como o (#PCDATA). • Exemplo XML: <!ELEMENT tamanho EMPTY > Definição de um elemento vazio.
  12. 12. Elemento • No exemplo acima declaramos que nosso XML deverá conter o elemento (nó) “pedido” e o mesmo terá um único elemento numero. • Exemplo XML: <!ELEMENT pedido (numero) > Definição de um elemento que contenha um filho.
  13. 13. Elemento • No exemplo acima declaramos que nosso XML deverá conter o elemento (nó) “endereco” e o mesmo terá os filhos cep, rua, numero, bairro, complemento, cidade e uf. • Exemplo XML: <!ELEMENT endereco (cep, rua, numero, bairro complemento, cidade, uf) > Definição de um elemento que contenha filhos diferentes.
  14. 14. Elemento - Qualificadores • O * indica que o nó filho pedido pode se repetir zero ou muitas vezes. • Exemplo XML: <!ELEMENT pedidos (pedido*) > Definição de um elemento várias ocorrências de um filho.
  15. 15. Elemento - Qualificadores • O + indica que o nó filho pedido pode se repetir uma ou muitas vezes, porém, é necessário existir uma ocorrência no mínimo.. • Exemplo XML: <!ELEMENT pedidos (pedido+) > Definição de um elemento várias ocorrências de um filho.
  16. 16. Elemento - Qualificadores • O ? indica que o nó filho pedido pode aparecer no máximo uma ou nenhuma vez. • Exemplo XML: <!ELEMENT pedidos (pedido?) > Definição de um elemento única ocorrência de um filho.
  17. 17. Reforçando Qualificador • * Significa zero ou mais vezes • + Significa uma ou mais vezes • ? Significa zero ou uma vez apenas • Nota: Um elemento sem qualificador deverá aparecer uma única vez.
  18. 18. Elementos Opcionais • O | indica que o nó "transacao" pode conter um nó filho transferencia ou um nó filho estorno. • Exemplo XML: <!ELEMENT transacao (transferencia | estorno) > Em alguns casos podemos precisar de um elemento XML ou de outro. ou
  19. 19. Elementos Opcionais • O | indica que o nó "transacao" pode conter um nó filho transferencia ou um nó filho estorno. • Exemplo XML: <!ELEMENT estoria ((titulo, conteudo) | (titulo, resumo, conteudo)) > Em alguns casos podemos precisar de um elemento XML ou de outro. ou
  20. 20. Elemento Indefinido • O ANY define que o nó "estrutura" poderá receber qualquer coisa, como novos elementos, textos, sem um suporte a uma estrutura fechada. <!ELEMENT estrutura ANY > Definição de um elemento que pode aceitar qualquer coisa.
  21. 21. Resumo de Qualificadores • , -> Descreve uma sentença obrigatória de elementos. Também funciona como operador E (AND). Exemplo: A,B significa que B deve vir depois de A. B seguido de A não é permitido. • | -> Descreve uma alternativa, funciona como o operador OU (OR). Exemplo: A|B|C significa que qualquer elemento é aceitável. Apenas uma opção é permitida, você deve escolher entre um dos três elementos. • ( ) -> Agrupa o conteúdo. Você pode usar a quantidade e parênteses que for preciso. Exemplo: ( A | B ), C significa que você deve escolher entre A ou B, e este deve ser seguido por um C. Portanto, tanto A C e B C são permitidos. • ? -> Descreve uma sentença opcional. Exemplo: A ? significa que você pode escolher se vai usar ou não o elemento A. • + -> Requere que pelo menos uma vez o elemento seja declarado, e não limite de quantas vezes este se repete. Exemplo: (A|B)+ significa que deve haver um número positivo e diferente de zero de As ou Bs. A sequência ABBBAAA é válida. • * -> Significa que o elemento pode aparecer várias vezes, não tendo limite, e também é opcional. Exemplo: (A|B)* significa que a sequência pode ter tamanho zero e pode ter inúmeros elementos A ou B.
  22. 22. Atributos
  23. 23. Atributos • Atributos podem ser úteis para fornecer dados adicionais sobre um elemento. As informações contidas em atributo tendem a ser sobre o conteúdo do documento XML, e não são o conteúdo em si. • Um atributo só pode aparecer num documento XML válido se ele for declarado.
  24. 24. Definição de um Atributo • Esta definição diz que o elemento “peso” pode conter um atributo unidade que é opcional por causa do #IMPLIED, e que contem texto devido ao uso do CDATA. <!ELEMENT peso (#PCDATA) > <!ATTLIST peso unidade CDATA #IMPLIED>
  25. 25. Definição de um Atributo • Esta definição diz que o elemento “peso” pode conter um atributo unidade que é obrigatório por causa do #REQUIRED, e que contem texto devido ao uso do CDATA. <!ELEMENT peso (#PCDATA) > <!ATTLIST peso unidade CDATA #REQUIRED>
  26. 26. Quais dos XMLs abaixo são validos para o DTD? A. <peso>40</peso> B. <peso unidade=“Kg">40</peso> C. <peso unidade="40">Kg</peso> <!ELEMENT peso (#PCDATA) > <!ATTLIST peso unidade CDATA #REQUIRED>
  27. 27. Atributo com Valor Padrão • Esta definição diz que o elemento “peso” pode conter um atributo unidade e que seu valor padrão é Kg. <!ELEMENT peso (#PCDATA) > <!ATTLIST peso unidade CDATA "Kg">
  28. 28. Atributo com Valor Padrão • Esta definição diz que o elemento “peso” contém um atributo unidade e que seu valor padrão é Kg. <!ELEMENT peso (#PCDATA) > <!ATTLIST peso unidade CDATA "Kg" #REQUIRED>
  29. 29. Atributo com Valor Padrão • Esta definição especificamos que o nó cliente sempre terá um atributo codigo. <!ELEMENT cliente (nome, documento, endereco) > <!ATTLIST cliente codigo CDATA #REQUIRED>
  30. 30. Entidades
  31. 31. Entidades no DTD • Entidades são como entradas ou atalhos. Com uma entidade você define seu nome e o texto pelo qual ela será substituída.
  32. 32. Entidade • A entidade copyright define um texto padrão que será apresentado, toda vez que a entidade seja referenciada num documento XML • Exemplo: <conteudo> Este texto é de conteúdo… &copyright; </conteudo> <!ENTITY copyright "copyright 1995, Companhia das Letras, [2008]" >
  33. 33. Limitações • Não obedecem a sintaxe XML e requer que os analisadores de sintaxe suportem uma linguagem adicional. • Não suportam Namespaces. • Não possuem definição de tipos de dados (inteiro, string, data, etc…), o que reduz a capacidade de validação. • Possuem capacidade limitada para definir a quantidade de elementos filhos que um elemento pai pode ter.

×