1. XML – DTD
(Document Type Definitions)
Prof. Aldo de Queiroz Jr
aldo.queiroz@uniderp.edu.br
2. XML - DTD
DTD (Document Type Definition) é um arquivo
de texto opcional contendo as regras de
formação da estrutura de um documento XML.
Serve para modelar ou estabelecer o esquema
de um documento XML.
Consiste na declaração de ELEMENTOS,
ATRIBUTOS e ENTIDADES que serão usadas
para criar documentos XML válidos.
Permite a validação de arquivos XML recebidos.
3. XML - DTD
Existem várias formas para declarar
DTD's:
DTD interno
DTD interno e externo
DTD externo
7. Estrutura do DTD
Composta por declarações, as quais
utilizam a sintaxe:
<! ...... >
Definição de elemento
<!ELEMENT ...>
Definição de atributos
<!ATTLIST ...>
Definição de entidades
<!ENTITY ...>
8. DTD - Elementos
<!ELEMENT nome (lista) palavra-chave>
Declara um elemento ou tag
O elemento criado é especificado por nome
Lista enumera todas as tags que podem ser
usadas internamente à tag nome ou, então,
indica o conteúdo de texto (#PCDATA)
Palavra-chave indicam a opcionalidade ou
obrigatoriedade das tags e conteúdos
internas. Pode ser EMPTY ou ANY
9. DTD - Elementos
Elementos com conteúdo de caracteres
<!ELEMENT NOME (#PCDATA)>
Em um documento XML tem-se:
<NOME>Anderson Pereira</NOME>
10. DTD - Elementos
Conector de Sequência (,) - Elementos com filhos
(elementos internos) obrigatórios.
<!ELEMENT CLIENTE (NOME, TELEFONE, CPF)>
Em um documento XML tem-se:
<CLIENTE>
<NOME> ... </NOME>
<TELEFONE> ... </TELEFONE>
<CPF> ... </CPF>
</CLIENTE>
O arquivo DTD também deve conter a especificação
dos elementos NOME, TELEFONE e CPF
11. DTD - Elementos
Conector de Escolha (|) - Elementos com
filhos (elementos internos) opcionais.
<!ELEMENT TIPOCLIENTE (
PESSOAFISICA | PESSOAJURIDICA)>
Em um documento XML tem-se:
<TIPOCLIENTE>
<PESSOAJURIDICA> Consultoria S.A. </PESSOAJURIDICA>
</TIPOCLIENTE>
12. DTD - Elementos
Alguns modificadores especiais podem ser usados
na lista de elementos
+: indica uma ou mais ocorências
*: indica zero ou mais ocorrências
?: indica zero ou uma ocorrência
<!ELEMENT EMPRESA (CLIENTE*)>
<!ELEMENT CLIENTE (NOME, TELEFONE+, CPF?)>
Uma empresa tem zero ou mais clientes.
Cada cliente possui um nome, um ou mais
telefones e zero ou um CPF.
13. DTD - Elementos
Elementos que aceitam textos e outros elementos
internos
<!ELEMENT EMPRESA ANY>
Uso de elementos mistos no documento XML
<EMPRESA>Universidade Católica Dom Bosco
<AREA>Educação</AREA>
</EMPRESA>
14. DTD - Elementos
Criação de elementos vazios
<!ELEMENT AUTOR EMPTY>
Uso de elementos vazios no documento XML
<br/>
ou
<br></br>
15. DTD - Atributos
<!ATTLIST tag lista-atributo tipo-atributo valor-padrão>
Declara atributos para os elementos
Tag é o nome do elemento associado
Lista-atributo é um ou mais atributos para a tag
Tipo-atributo é o valor que o atributo pode assumir
Valor-padrão é o valor que o processador XML
assume se nenhum valor for fornecido pelo usuário
no documento XML
16. DTD - Atributos
Os tipos de atributos podem ser
CDATA
texto qualquer, exceto <, > e &
ID
identificador único no arquivo XML
IDREF
referência ao identificador de outro elemento
ENTITY
nome de uma entidade externa
17. DTD - Atributos
O valor-padrão pode ser:
#REQUIRED: uso obrigatório do atributo
#IMPLIED: o atributo é opcional na tag
“valor”: o valor dado é o padrão para
cada ocorrência
#FIXED: o atributo tem valor fixo
18. DTD - Atributos
Declara um atributo obrigatório nome para o
elemento EMPRESA
<!ATTLIST EMPRESA nome CDATA #REQUIRED>
Em XML podemos ter
<EMPRESA nome=“WW3”>...</EMPRESA>
Mas não podemos ter
<EMPRESA>...</EMPRESA>
19. DTD - Atributos
Declara um atributo obrigatório tamanho para
a tag EMPRESA que deve conter um dos
seguintes valores: pequena, média ou grande.
O valor padrão é pequena.
<!ATTLIST EMPRESA tamanho (peq|med|grd) "peq" #REQUIRED>
Em XML podemos ter
<EMPRESA tamanho=“med”>...</EMPRESA>
20. DTD - Atributos
Declara um atributo opcional tamanho para a tag
EMPRESA com valor padrão "pequena".
<!ATTLIST EMPRESA tamanho CDATA "peq“ #IMPLIED >
Em XML podemos ter
<EMPRESA>...</EMPRESA>
<EMPRESA tamanho=“grd”>...</EMPRESA>
21. DTD - Atributos
Declara o atributo opcional tipo para o elemento
EMPRESA que só pode assumir um dos valores
especificados – micro, pequena, grande. Não há
um valor padrão, portanto o processador escolhe
aleatoriamente um valor para o atributo tipo.
<!ATTLIST EMPRESA tipo (micro|pequena|grande) #IMPLIED>
No documento XML tem-se
<EMPRESA>
...
</EMPRESA>
<EMPRESA tipo=“grande”>
...
</EMPRESA>
<EMPRESA tipo=“A”>
...
</EMPRESA>
22. DTD - Atributos
Declara três atributos para o elemento
EMPRESA com valores padrão (default)
<!ATTLIST EMPRESA tipo CDATA "micro"
faturamento CDATA "baixo"
funcionarios CDATA "menos de 100">
Caso os valores dos atributos tipo,
faturamento e funcionarios não seja
fornecido no documento XML, o processador
assume, respectivamente, os valores micro,
baixo e menos de 100.
23. DTD - Atributos
Em um documento XML podemos ter
<EMPRESA tipo=“multinacional”>
.
.
.
</EMPRESA>
<EMPRESA faturamento=“medio” funcionarios=“2300”>
.
.
.
</EMPRESA>
É uma empresa
multinacional com
faturamento baixo
e menos de 100
funcionários
É uma micro
empresa com
faturamento
médio e 2300
funcionários
24. DTD - Atributos
Declara o atributo com valor fixo rodas
para o elemento CARRO com o valor 4
<!ATTLIST AUTOMOVEL rodas CDATA #FIXED "4">
No documento XML tem-se
<AUTOMOVEL rodas=“4">Fusca</AUTOMOVEL>
<AUTOMOVEL rodas=“4">Ferrari</AUTOMOVEL>
<AUTOMOVEL rodas=“4">Fusca</ AUTOMOVEL>
<AUTOMOVEL rodas=“2">Honda CG-125</ AUTOMOVEL>
25. DTD - Atributos
Declara o atributo obrigatório RA para o
elemento ALUNO, cujo valor deve ser único
no documento XML
<!ATTLIST ALUNO RA ID #REQUIRED>
No documento XML tem-se
<ALUNO RA="89021-1">Fulano de Tal</ALUNO>
<ALUNO RA="84317-9">Beltrano Disso</ALUNO>
<ALUNO RA="89021-1">Fulano de Tal</ALUNO>
<ALUNO RA=" 89021-1 ">Beltrano Disso</ALUNO>
26. DTD - Atributos
Declara o atributo obrigatório RA para o elemento
NOTA que é uma referência a um identificador que
existe no documento XML
No documento XML Aluno
<!ATTLIST ALUNO RA ID #REQUIRED>
<ALUNO RA="89021-1">Fulano de Tal</ALUNO>
<ALUNO RA="84317-9">Beltrano Disso</ALUNO>
No documento XML Nota
<!ATTLIST NOTA cod IDREF #REQUIRED>
<NOTA cod="89021-1">9,0</NOTA>
<NOTA cod="84317-9">4,5</NOTA>
27. DTD - Atributos
Exemplos de atributos:
<!ATTLIST pessoa genero CDATA “masculino">
<!ATTLIST pessoa genero CDATA #FIXED "masculino">
<!ATTLIST pessoa genero CDATA #REQUIRED>
<!ATTLIST pessoa genero CDATA #IMPLIED>
<!ATTLIST pessoa genero (masculino|feminino) "masculino">
28. DTD - Entidades
Entidades servem para
Substituição automática de conteúdo
Referência a documentos externos
Controlar parâmetros em documentos DTD
Processamento condicional
29. DTD - Entidades
<!ENTITY nome frase>
Declara entidades
Globais
De parâmetro
nome é a identificação única da entidade
frase é o conteúdo
30. DTD - Entidades
<!ENTITY personagem “Mickey Mouse">
Quando a entidade &personagem; aparecer
em um documento XML, ela será substituída
por "Mickey Mouse".
<NOME>&personagem</NOME>
<NOME>Mickey Mouse</NOME>
31. DTD - Entidades
<!ENTITY resumo SYSTEM
"http://www.unaes.br/resumo.xml">
A declaração acima substitui a referência &resumo;
pelo conteúdo de http://www.unaes.br/resumo.xml
32. DTD - Entidades
Entidades de parâmetro atuam apenas dentro
de DTDs e não podem ser processadas em
documentos XML
Esse tipo de entidade é declarada da seguinte
forma:
<!ENTITY % nome "tipo">
nome identifica a entidade
tipo pode ser o tipo de atibutos ou uma lista de
elementos