Tecnologia Web
Tecnologia Web
DTD
DTD
Anna Izabel João Tostes Ribeiro
Pontifícia Universidade Católica de Minas Gerais
Sumário
● Introdução
● Criando Elementos
● Criando Atributos
Introdução
● O que é o DTD?
o Document Type Definition;
o Especifica a estrutura correta do documento XML.
● Permite definir: o Elementos o Atributos o Entidades o PCDATA o CDATA
Introdução
<?xml version="1.0"?> <!DOCTYPE professor[
<!ELEMENT professor (nome,disciplinas)> <!ELEMENT nome (prim_nome,sobrenome)> <!ELEMENT prim_nome (#PCDATA)>
<!ELEMENT sobrenome (#PCDATA)>
<!ELEMENT disciplinas (disciplina)+> <!ELEMENT disciplina (#PCDATA)>
<!ATTLIST disciplina cargaHoraria CDATA #REQUIRED> ]> <professor> <nome> <prim_nome>Kleber</prim_nome> <sobrenome>Jacques</sobrenome> </nome> <disciplinas> <disciplina cargaHoraria=“64”> Tecnologias Web </disciplina> </disciplinas> </professor>
Introdução
<?xml version="1.0"?>
<!DOCTYPE professor SYSTEM “professor.dtd“> <professor> <nome> <prim_nome>Kleber </prim_nome> <sobrenome>Jacques</sobrenome> </nome> <disciplinas> <disciplina cargaHoraria=“64”> Tecnologias Web </disciplina> </disciplinas> </professor>
Introdução
● Relembrando:
o Elementos compõem as informações principais do documento; Nome do professor.
o Atributos são informações adicionais; Carga horária da disciplina.
o Entidades: Informações que não podem ser processadas pelo leitor do XML
o PCDATA: Parsed Character Data
o CDATA: Unparsed Character Data
< < > > & & ' ‘ " “
Blocos de Construção de XML
● Visto de um ponto de DTD de vista, todos os documentos
XML (e HTML) são compostos pelos seguintes blocos:
o PCDATA
o CDATA
o Elementos
o Atributos
PCDATA
● Significa dados de caracteres analisados.
● Pense em dados de caracteres como o texto encontrado
entre a tag de início e o fim da tag de um elemento XML.
● É o texto que será analisado por um analisador. O texto
será examinado pelo analisador para entidades e marcação.
● Palavras-chave dentro do texto será tratado como
marcação e entidades será expandido.
● No entanto, dados de caracteres analisados não deve
conter &, <,> ou caracteres, estes devem ser
CDATA
● Significa que os dados de caracteres.
● É um texto que não será analisado por um analisador.
Criando Elementos
● Declaração: <!ELEMENT nome_elemento categoria> ou <! ELEMENT nome_elemento (conteudo)>
● Elemento vazio:
o <!ELEMENT br EMPTY> <br />
● Elemento com texto:
o <!ELEMENT disciplina (#PCDATA)>
● Elementos com seqüência elementos filhos:
o <!ELEMENT nome_elemento(filho1,filho2,...,filhon)>
o <!ELEMENT nome (prim_nome,sobrenome)>
● Elementos com qualquer conteúdo:
o <!ELEMENT disciplina ANY>
Criando Elementos
● Elementos são os principais blocos de construção de
documentos XML e HTML
● Exemplos de elementos HTML são body e table
● Exemplos de elementos XML poderia ser note e message
● Os elementos podem conter texto, outros elementos, ou
estar vazio
o Exemplo: br, img
o Uma vez que o próprio elemento é vazio, ele é fechado pelo caractere "/".
Criando Elementos
● Ocorrência única de elementos filhos:
o <!ELEMENT professor (nome,disciplinas)>
o Ocorrência de zero ou um elemento filho:
o <!ELEMENT professor (nome,disciplinas?)>
● Ocorrência de pelo menos um elemento filho:
o <!ELEMENT disciplinas (disciplina)+>
● Ocorrência de zero ou mais elementos filhos:
o <!ELEMENT disciplinas (disciplina)*>
● Ocorrência de exclusiva de elementos:
o <!ELEMENT nome (nome_completo|(prim_nome,sobrenome))>
● Ocorrência de elementos em qualquer ordem e em
qualquer quantidade:
Criando Atributos
● Atributos fornecem informações adicionais sobre os
elementos
● Os atributos são sempre colocados dentro da tag de
abertura de um elemento
● Atributos sempre vêm em pares nome/valor
● O seguinte elemento img tem informações adicionais sobre um arquivo de origem:
Criando Atributos
● Declaração:
o <!ATTLIST nome_elemento nome_atributo tipo_atributo valor_default>
o <!ATTLIST disciplina cargaHoraria CDATA #REQUIRED>
● Atributos podem ser definidos como: o CDATA
o Enumeração: (valor1|valor2|...|valorn)
o ID: Especifica o atributo como identificador único
o IDREF: Especifica o atributo para receber o identificador de um elemento específico.
o IDREFS: Lista de referência para outros elementos.
o ENTITY: O atributo só recebe como valor uma entidade.
Criando Atributos
● O valor_padrao do atributo pode ser:
o Um valor específico:
cargaHoraria=“64”
o #REQUIRED: Indica que é um atributo obrigatório;
o #IMPLIED: Indica que é um atributo não obrigatório;
o #FIXED: Indica que o atributo é uma constante. Neste caso o atributo tem de ser declarado com um valor padrão:
<!ATTLIST disciplina org CDATA #FIXED
“PUCMINAS">
● Existem ainda os atributos enumerados:
Criando Atributos
● Alguns dos problemas com atributos são:
o Atributos não podem conter múltiplos valores (elementos filhos podem)
o Atributos não são facilmente expansível (para futuras mudanças)
o Atributos não podem descrever estruturas (elementos filhos podem)
o Atributos são mais difíceis de manipular por código de programa
o Valores de atributos não são fáceis de testar contra um DTD
o Se você usar atributos como recipientes de dados, você acaba com os documentos que são difíceis de ler e manter.
• Recomendações:
o Tente usar elementos para descrever dados.
o Use atributos apenas para fornecer informações que não são relevantes para os dados.
Deve-se evitar o uso de atributos?
Deve-se evitar o uso de atributos?
• Mas toda regra possui exceção:
• Às vezes pode-se atribuir referências de identificação aos elementos.
• Essas referências de identificação pode ser usado para acessar os elementos XML da mesma maneira como o nome ou atributos de identificação em HTML.
Deve-se evitar o uso de atributos?
Criando Entidades
● Entidades em XML são variáveis que fornecem recurso
para abreviar valores ou substituir caracteres especiais da linguagem;
● Declaração:
o Interna
<!ENTITY entity-name "entity-value">
<!ENTITY tecweb “Tecnologias Web">
o Externa:
<!ENTITY entity-name SYSTEM "uri">
<!ENTITY entity-name SYSTEM "entidades.dtd"> ● Utilização:
<disciplina cargaHoraria=“60”> &tecweb;
Criando Entidades
Criando Entidades
Criando Entidades
● Com o Internet Explorer você pode validar seu XML em
relação a um DTD.
● Se você tentar abrir um documento XML, o parser XML
pode gerar um erro.
o Ao acessar o objeto parseError, você pode recuperar o código de erro, o texto do erro, ou até mesmo a linha que causou o erro.
● Ou então você pode acessar:
Criando Entidades
● Nota: O método load () é usado para arquivos, enquanto
Referências
● Recommended list of DTDs
o http://www.w3.org/QA/2002/04/valid-dtd-list.htmlTutorial de XML
● DTD Tutorial