SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
D O C U M E N T T Y P E D E F I N I T I O N
DTD
Objectivos
 O DTD define a estrutura do documento
 Com o DTD as aplicações podem verificar se os
documentos estão correctos.
Declarações
 Um DTD é constituído por um conjunto de
declarações:
 ELEMENT para anotações de elementos
 ATTLIST definição de atributos
 ENTITY definição de entidades
 NOTATION definição de dados e formatos
 PCDATA
 CDATA
Declarações
 Elementos
 Elementos são os principais blocos.
 Atributos
 Atributos fornecem informação adicional sobre elementos.
Atributos são sempre colocados entre aspas. Por exemplo <img
src="computer.gif" />
Declarações
 Entidades
 Alguns caracteres por terem significado especial e precisam de
uma forma especial de representação, como por exemplo o
carácter "&nbsp;" que representa "no-breaking-space" no
HTML.
 &lt; < less than(menor do que)
 &gt; > greater than(maior do que)
 &amp; & ampersand
 &apos; ' apostrophe(apóstrofe)
 &quot; " quotation mark(aspas)
Declarações
 PCDATA
 PCDATA significa Parsed Character DATA.
 Entenda “Character Data” como o texto compreendido entre as
“tags” de um elemento.
 No PCDATA o texto será analisado sintacticamente e se houver
entidades estas serão expandidas. As “tags” dentro do texto, se
houver, serão processadas
 CDATA
 CDATA significa Character DATA. No CDATA o texto não
será analisado sintacticamente.
Declarações
 ( ... ) Delimita o grupo
 A Deve ter A somente
 A+ Deve ter 1 ou mais A
 A? Deve ter ZERO ou UM A
 A* Pode ter ZERO ou mais A
 +(A) Pode ter A
 -(A) Não deve ter A
 A | B Pode ter um ou outro
 A , B Deve ter um e outro e a ordem é importante
 A & B Ambos devem existir, e a ordem não é
importante
Elementos
 A declaração ELEMENT serve para declarar
elementos, com a seguinte sintaxe:
<!ELEMENT element-name category>
or
<!ELEMENT element-name (element-content)>
 Elementos vazios
 Elementos vazios são declarados com a palavra reservada
EMPTY:
<!ELEMENT element-name EMPTY>
Ex: <!ELEMENT br EMPTY>
Elementos
 Elementos com PCDATA
 Elementos com apenas dados que serão analisados são
declarados com o parâmetro #PCDATA dentro do parenteses:
<!ELEMENT element-name (#PCDATA)>
 Elementos com conteúdo
 Elementos declarados com a palavra reservada ANY, poderá
conter qualquer combinação de dados.
<!ELEMENT element-name ANY>
Elementos
 Elementos com filhos (sequências)
 Elementos com um ou mais filhos são declarados com o nome
dos elementos filhos.
<!ELEMENT element-name (child1)>
ou
<!ELEMENT element-name (child1,child2,...)>
Elementos
 Declarando apenas uma ocorrência de um elemento
<!ELEMENT element-name (child-name)>
 Declarando pelo menos uma ocorrência do elemento.
<!ELEMENT element-name (child-name+)>
 Declarando zero ou mais ocorrências de um
Elemento
<!ELEMENT element-name (child-name*)>
 Declarando zero ou uma ocorrências de um
Elemento
<!ELEMENT element-name (child-name?)>
Declarando um ou outro conteúdo
<!ELEMENT element-name (child-name-1 | child-name-2)>
Elementos
 O elemento A tem zero ou mais elementos B seguidos de
um único elemento C:
<!ELEMENT A (B* , C)>
 O elemento A tem um ou mais elementos B seguidos de
um único elemento C:
<!ELEMENT A (B+ , C)>
 O elemento A tem o elemento A opcional:
<!ELEMENT A (A? , B)>
 O elemento A pode conter qualquer combinação de texto
e do elemento B
<!ELEMENT A (#PCDATA | B )*>
Elementos
 Outras formas de declarar os elementos que se
encontra em várias especificações:
<!ELEMENT element-name - - (element-child)+>
 O elemento-name deve ser uma tag de início <element.name>
e uma tag de fecho </element-name>
<!ELEMENT element-name – O EMPTY>
 O elemento-name deve ser uma tag de início <element.name>
e tag de fecho </element-name> é opcional.
 Com a palavra-chave EMPTY reforça a ideia que o bloco não
teve ter conteúdo!
Atributos
 Servem para atribuir pares nome-valor com elementos.
 Atributos só podem aparecer em etiquetas de início e em
etiquetas vazias.
 A declaração de atributos inicia com o nome ATTLIST,
seguido do nome do elemento e da lista de seus atributos.
<!ATTLIST element-name attribute-name attribute-type
default-value>
 DTD Exemplo:
<!ATTLIST A type CDATA "check">
 XML Exemplo:
<A type="check" />
Atributos
 O tipo do atributo pode ser:
 CDATA O valor é “character data”
 (en1|en2|..) O valor deve ser de uma lista enumerada
 ID O valor é um único “id”
 IDREF O valor é o id de um outro elemento
 IDREFS O valor é uma lista de outros “ids”
 NMTOKEN O valor é um nome válido
 NMTOKENS O valor é uma lista de nomes válidos
 ENTITY O valor é uma entidade
 Entidades O valor é uma lista de Entidades
 NOTATION O valor é o nome de uma “notation”
Atributos
 O default-value pode ser um dos seguintes:
 value O valor default do atributo
 #REQUIRED O atributo é obrigatório
 #IMPLIED O atributo é não obrigatório
 #FIXED value O valor do atributo é fixo
 EX:
<!ELEMENT A EMPTY>
<!ATTLIST A width CDATA "0">
<A width="100" />
No exemplo acima, o elemento “A" é definido para ser um
elemento vazio com um atributo "width”. Se nenhum
“width” for definido o seu valor default será “0”.
Atributos
<!ELEMENT A(#PCDATA)>
<!ATTLIST attributes
aaa CDATA #REQUIRED
bbb CDATA #IMPLIED>
 A ordem dos atributos não importa
 Atributos CDATA: permite qualquer caracter de acordo
com as regras de boa formação
 #REQUIRED: obrigatório
 #IMPLIED: Opcional
Atributos
 #REQUIRED
 O #REQUIRED é usado se não há um valor default a ser
definido e deseja-se forçar a presença do atributo.
<!ATTLIST element-name attribute-name attribute-
type #REQUIRED>
 Exemplo:
<!ATTLIST person number CDATA #REQUIRED>
 Valido: <person number="5677" />
 Invalido: <person />
Atributos
 #FIXED
 Usar #FIXED quando o atributo deve ter valores fixado que
não pode ser mudados pelo autor
<!ATTLIST element-name attribute-name attribute-
type #FIXED "value">
 Exemplo
<!ATTLIST sender company CDATA #FIXED
"Microsoft">
 Válido : <sender company="Microsoft" />
 Inválido: <sender company="IBM" />
Atributos
 #IMPLIED
 Usar #IMPLIED quando não se deseja forçar a existência do
atributo e não tem um valor default definido.
<!ATTLIST element-name attribute-name attribute-
type #IMPLIED>
 Exemplo
<!ATTLIST contact fax CDATA #IMPLIED>
 Valido: <contact fax="555-667788" />
 Valido: <contact />
Atributos
 Enumerated Attribute Values
 Usar “enumerated attribute” quando é desejado que o atributo
seja um entre vários valores definidos.
<!ATTLIST element-name attribute-name (en1|en2|..)
default-value>
 Exemplo:
<!ATTLIST payment type (check|cash) "cash">
<payment type="check" />
<payment type="cash" />
Atributos
 NMTOKEN: letras, dígitos, ponto [ . ] , hífen [ - ], underline [ _ ] dois
pontos [ : ] .
 NMTOKENS: NMTOKEN mais o espaço em branco: um ou mais
espaços em branco, return, fim de linha e tabulações.
<!ELEMENT attributes (#PCDATA)>
<!ATTLIST attributes
aaa CDATA #IMPLIED
bbb NMTOKEN #REQUIRED
ccc NMTOKENS #REQUIRED>
Atributos
 Tipo ID
 Um atributo do tipo ID pode conter apenas caracteres permitidos pelo tipo NMTOKEN e devem
iniciar por uma letra.
 Nenhum tipo de elemento deve conter mais de um atributo do tipo ID
 O valor de um atributo do tipo ID deve ser único dentre todos atributos ID das instâncias do
elemento.
<!ELEMENT X(A+ , B+ , C+)>
<!ELEMENT A (#PCDATA)>
<!ELEMENT B (#PCDATA)>
<!ELEMENT C (#PCDATA)>
<!ATTLIST A
id ID #REQUIRED>
<!ATTLIST B
code ID #IMPLIED
list NMTOKEN #IMPLIED>
<!ATTLIST C
X ID #REQUIRED
Y NMTOKEN #IMPLIED>
Atributos
 IDREF
 Um atributo IDREF deve referencia algum ID existente no documento. IDREFS referencia um
sequência de Ids
<!ELEMENT X (A+ , B+, C+, D+)>
<!ELEMENT A (#PCDATA)>
<!ELEMENT B (#PCDATA)>
<!ELEMENT C (#PCDATA)>
<!ELEMENT D (#PCDATA)>
<!ATTLIST A
mark ID #REQUIRED>
<!ATTLIST B
id ID #REQUIRED>
<!ATTLIST C
ref IDREF #REQUIRED>
<!ATTLIST D
ref IDREFS #REQUIRED>
Atributos
<X>
<A mark="a1"/>
<A mark="a2"/>
<A mark="a3"/>
<B id="b001" />
<C ref="a3" />
<D ref="a1 b001 a2" />
</X>
Atributos
 Especificando valores de atributo permitidos
<!ELEMENT X(A+, B+)>
<!ELEMENT A (#PCDATA)>
<!ELEMENT B (#PCDATA)>
<!ATTLIST A
true ( yes | no ) #REQUIRED>
<!ATTLIST B
month (1|2|3|4|5|6|7|8|9|10|11|12) #IMPLIED>
Atributos
 Valores permitidos
<X>
<A true="yes"/>
<A true="no"/>
<A true="yes"/>
<B month="8" />
<B month="2" />
<B month="12" />
</X>
 Valores default
<!ATTLIST A
true ( yes | no ) "yes">
Atributos
 Elemento só com atributos, sem texto (Vazio)
<!ELEMENT A EMPTY>
Exemplo:
<X>
<A true="yes"/>
<A true="no"></A>
</X>
Entidades
 Entidades são variáveis usadas para definir atalhos
para textos padrão ou caracteres especiais.
 “Entity references” são referências a Entidades.
 Entidades podem ser declaradas internamente ou
externamente ou parametrizadas.
 Nota: Uma entidade possui três partes: o
ampersand (&), o nome e um ponto
vírgula(;).
Entidades
 Entidades Declaradas Internamente
<!ENTITY entity-name "entity-value">
<!ENTITY writer "Donald Duck.">
<!ENTITY copyright "Copyright W3Schools.">
<author>&writer;&copyright;</author>
 Entidades Declaradas Externamente
<!ENTITY entity-name SYSTEM "URI/URL">
<!ENTITY writer SYSTEM "http://www.w3schools.com/Entidades.dtd">
<!ENTITY copyright SYSTEM "http://www.w3schools.com/Entidades.dtd">
<author>&writer;&copyright;</author>
Entidades
 Entidades parametrizadas
 As entidades de parâmetro ou parametrizadas são válidas
somente em DTDs, funcionam como abreviaturas de
declarações e são declaradas na DTD por meio do símbolo %
precedido ao nome da entidade.
 Por exemplo:
<!ENTITY % livro “(titulo, autor, editora, preco)”>
<!ELEMENT exemplo %livro;>
 Esse exemplo determina que um elemento livro pode ter somente
filhos do tipo titulo, autor, editora e preço.
Notações
 Descrevem o formato dos objectos de dados
 São normalmente usadas para descrever o formato dos objectos
binários, como arquivos gráficos
 Mecanismo para associar entidades unparsed ou não analisáveis
com a ferramenta apropriada
 Em caso de uma imagem, pode ser um visualizador
<!NOTATION GIF89a PUBLIC
“-/CompuServe//NOTATION Graphics Interchange Format 89a//EN”
“c:windowskodakprv.exe”>
 Pode-se usar associações de arquivos
<!NOTATION GIF89a SYSTEM “GIF”>
<!NOTATION GIF89a SYSTEM “image/gif”>

Mais conteúdo relacionado

Destaque

Destaque (20)

Colegio nacional pomasqui 4
Colegio nacional pomasqui  4Colegio nacional pomasqui  4
Colegio nacional pomasqui 4
 
áLbum de kelly otero.
áLbum de kelly otero.áLbum de kelly otero.
áLbum de kelly otero.
 
Carnaval
CarnavalCarnaval
Carnaval
 
Mercedes W 108 280 SE
Mercedes W 108 280 SEMercedes W 108 280 SE
Mercedes W 108 280 SE
 
Dica mat
Dica matDica mat
Dica mat
 
Ley fundamental de educacion
Ley fundamental de educacionLey fundamental de educacion
Ley fundamental de educacion
 
ေဒၚေအာင္ဆန္းစုၾကည္ ျမန္မာျပည္ကလာတဲ့စာ
ေဒၚေအာင္ဆန္းစုၾကည္   ျမန္မာျပည္ကလာတဲ့စာ ေဒၚေအာင္ဆန္းစုၾကည္   ျမန္မာျပည္ကလာတဲ့စာ
ေဒၚေအာင္ဆန္းစုၾကည္ ျမန္မာျပည္ကလာတဲ့စာ
 
Summit1 sb-130214222951-phpapp02
Summit1 sb-130214222951-phpapp02Summit1 sb-130214222951-phpapp02
Summit1 sb-130214222951-phpapp02
 
Cristina paola 95
Cristina paola 95Cristina paola 95
Cristina paola 95
 
Bürostühle
BürostühleBürostühle
Bürostühle
 
Fabi3
Fabi3Fabi3
Fabi3
 
Pautas de crinazasorrrrrrrrrrrrr
Pautas de crinazasorrrrrrrrrrrrrPautas de crinazasorrrrrrrrrrrrr
Pautas de crinazasorrrrrrrrrrrrr
 
CTN
CTNCTN
CTN
 
Anees kaymarsiyay
Anees kaymarsiyayAnees kaymarsiyay
Anees kaymarsiyay
 
Presentación2
Presentación2Presentación2
Presentación2
 
Etapa 2. comprensi+ôn literal de la lectura
Etapa 2. comprensi+ôn literal de la lecturaEtapa 2. comprensi+ôn literal de la lectura
Etapa 2. comprensi+ôn literal de la lectura
 
MARKETING NUEVAS
MARKETING NUEVAS MARKETING NUEVAS
MARKETING NUEVAS
 
O renascimento cultural
O renascimento culturalO renascimento cultural
O renascimento cultural
 
Quince faty
Quince fatyQuince faty
Quince faty
 
FRAMES VILA DA MÍDIA - Recreio dos Bandeirantes
FRAMES VILA DA MÍDIA - Recreio dos BandeirantesFRAMES VILA DA MÍDIA - Recreio dos Bandeirantes
FRAMES VILA DA MÍDIA - Recreio dos Bandeirantes
 

Semelhante a Document Type Definition

Unidade4.1 Oracle Or
Unidade4.1 Oracle OrUnidade4.1 Oracle Or
Unidade4.1 Oracle Or
UFU
 
EXTREME LDAP - GABRIEL STEIN
EXTREME LDAP - GABRIEL STEINEXTREME LDAP - GABRIEL STEIN
EXTREME LDAP - GABRIEL STEIN
Tchelinux
 

Semelhante a Document Type Definition (15)

Aula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de DocumentoAula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de Documento
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
 
Introdução HTML_CSS.pptx
Introdução  HTML_CSS.pptxIntrodução  HTML_CSS.pptx
Introdução HTML_CSS.pptx
 
Aprenda jQuery 1.3
Aprenda jQuery 1.3Aprenda jQuery 1.3
Aprenda jQuery 1.3
 
Unidade4.1 Oracle Or
Unidade4.1 Oracle OrUnidade4.1 Oracle Or
Unidade4.1 Oracle Or
 
Banco de Dados XML
Banco de Dados XMLBanco de Dados XML
Banco de Dados XML
 
Aula II - Criação de sites I
Aula II - Criação de sites IAula II - Criação de sites I
Aula II - Criação de sites I
 
Aula 7 pc - estrutura
Aula 7   pc - estruturaAula 7   pc - estrutura
Aula 7 pc - estrutura
 
O que é html
O que é htmlO que é html
O que é html
 
Beagajs
BeagajsBeagajs
Beagajs
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
 
EXTREME LDAP - GABRIEL STEIN
EXTREME LDAP - GABRIEL STEINEXTREME LDAP - GABRIEL STEIN
EXTREME LDAP - GABRIEL STEIN
 
Aula de XHTML
Aula de XHTMLAula de XHTML
Aula de XHTML
 
XML e Banco de Dados XML Nativo
XML e Banco de Dados XML NativoXML e Banco de Dados XML Nativo
XML e Banco de Dados XML Nativo
 
XHTML Básico
XHTML BásicoXHTML Básico
XHTML Básico
 

Último

Slide Licao 4 - 2T - 2024 - CPAD ADULTOS - Retangular.pptx
Slide Licao 4 - 2T - 2024 - CPAD ADULTOS - Retangular.pptxSlide Licao 4 - 2T - 2024 - CPAD ADULTOS - Retangular.pptx
Slide Licao 4 - 2T - 2024 - CPAD ADULTOS - Retangular.pptx
sfwsoficial
 
4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdf4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdf
LindinhaSilva1
 
O Reizinho Autista.pdf - livro maravilhoso
O Reizinho Autista.pdf - livro maravilhosoO Reizinho Autista.pdf - livro maravilhoso
O Reizinho Autista.pdf - livro maravilhoso
VALMIRARIBEIRO1
 

Último (20)

Insegurança nunca mais tem afeta pessoas
Insegurança nunca mais tem afeta pessoasInsegurança nunca mais tem afeta pessoas
Insegurança nunca mais tem afeta pessoas
 
Produção de poemas - Reciclar é preciso
Produção  de  poemas  -  Reciclar é precisoProdução  de  poemas  -  Reciclar é preciso
Produção de poemas - Reciclar é preciso
 
Nós Propomos! Sertã 2024 - Geografia C - 12º ano
Nós Propomos! Sertã 2024 - Geografia C - 12º anoNós Propomos! Sertã 2024 - Geografia C - 12º ano
Nós Propomos! Sertã 2024 - Geografia C - 12º ano
 
Aparatologia na estética - Cavitação, radiofrequência e lipolaser.pdf
Aparatologia na estética - Cavitação, radiofrequência e lipolaser.pdfAparatologia na estética - Cavitação, radiofrequência e lipolaser.pdf
Aparatologia na estética - Cavitação, radiofrequência e lipolaser.pdf
 
EB1 Cumeada Co(n)Vida à Leitura - Livros à Solta_Serta.pptx
EB1 Cumeada Co(n)Vida à Leitura - Livros à Solta_Serta.pptxEB1 Cumeada Co(n)Vida à Leitura - Livros à Solta_Serta.pptx
EB1 Cumeada Co(n)Vida à Leitura - Livros à Solta_Serta.pptx
 
Formação T.2 do Modulo I da Formação HTML & CSS
Formação T.2 do Modulo I da Formação HTML & CSSFormação T.2 do Modulo I da Formação HTML & CSS
Formação T.2 do Modulo I da Formação HTML & CSS
 
Slide Licao 4 - 2T - 2024 - CPAD ADULTOS - Retangular.pptx
Slide Licao 4 - 2T - 2024 - CPAD ADULTOS - Retangular.pptxSlide Licao 4 - 2T - 2024 - CPAD ADULTOS - Retangular.pptx
Slide Licao 4 - 2T - 2024 - CPAD ADULTOS - Retangular.pptx
 
4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdf4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdf
 
"Nós Propomos! Escola Secundária em Pedrógão Grande"
"Nós Propomos! Escola Secundária em Pedrógão Grande""Nós Propomos! Escola Secundária em Pedrógão Grande"
"Nós Propomos! Escola Secundária em Pedrógão Grande"
 
EBPAL_Serta_Caminhos do Lixo final 9ºD (1).pptx
EBPAL_Serta_Caminhos do Lixo final 9ºD (1).pptxEBPAL_Serta_Caminhos do Lixo final 9ºD (1).pptx
EBPAL_Serta_Caminhos do Lixo final 9ºD (1).pptx
 
Testes de avaliação português 6º ano .pdf
Testes de avaliação português 6º ano .pdfTestes de avaliação português 6º ano .pdf
Testes de avaliação português 6º ano .pdf
 
APH- Avaliação de cena , analise geral do ambiente e paciente.
APH- Avaliação de cena , analise geral do ambiente e paciente.APH- Avaliação de cena , analise geral do ambiente e paciente.
APH- Avaliação de cena , analise geral do ambiente e paciente.
 
Power Point sobre as etapas do Desenvolvimento infantil
Power Point sobre as etapas do Desenvolvimento infantilPower Point sobre as etapas do Desenvolvimento infantil
Power Point sobre as etapas do Desenvolvimento infantil
 
O Reizinho Autista.pdf - livro maravilhoso
O Reizinho Autista.pdf - livro maravilhosoO Reizinho Autista.pdf - livro maravilhoso
O Reizinho Autista.pdf - livro maravilhoso
 
Poema - Maio Laranja
Poema - Maio Laranja Poema - Maio Laranja
Poema - Maio Laranja
 
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
 
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PE
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PEEdital do processo seletivo para contratação de agentes de saúde em Floresta, PE
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PE
 
Livro infantil: A onda da raiva. pdf-crianças
Livro infantil: A onda da raiva. pdf-criançasLivro infantil: A onda da raiva. pdf-crianças
Livro infantil: A onda da raiva. pdf-crianças
 
Slides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptx
Slides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptxSlides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptx
Slides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptx
 
livro para educação infantil conceitos sensorial
livro para educação infantil conceitos sensoriallivro para educação infantil conceitos sensorial
livro para educação infantil conceitos sensorial
 

Document Type Definition

  • 1. D O C U M E N T T Y P E D E F I N I T I O N DTD
  • 2. Objectivos  O DTD define a estrutura do documento  Com o DTD as aplicações podem verificar se os documentos estão correctos.
  • 3. Declarações  Um DTD é constituído por um conjunto de declarações:  ELEMENT para anotações de elementos  ATTLIST definição de atributos  ENTITY definição de entidades  NOTATION definição de dados e formatos  PCDATA  CDATA
  • 4. Declarações  Elementos  Elementos são os principais blocos.  Atributos  Atributos fornecem informação adicional sobre elementos. Atributos são sempre colocados entre aspas. Por exemplo <img src="computer.gif" />
  • 5. Declarações  Entidades  Alguns caracteres por terem significado especial e precisam de uma forma especial de representação, como por exemplo o carácter "&nbsp;" que representa "no-breaking-space" no HTML.  &lt; < less than(menor do que)  &gt; > greater than(maior do que)  &amp; & ampersand  &apos; ' apostrophe(apóstrofe)  &quot; " quotation mark(aspas)
  • 6. Declarações  PCDATA  PCDATA significa Parsed Character DATA.  Entenda “Character Data” como o texto compreendido entre as “tags” de um elemento.  No PCDATA o texto será analisado sintacticamente e se houver entidades estas serão expandidas. As “tags” dentro do texto, se houver, serão processadas  CDATA  CDATA significa Character DATA. No CDATA o texto não será analisado sintacticamente.
  • 7. Declarações  ( ... ) Delimita o grupo  A Deve ter A somente  A+ Deve ter 1 ou mais A  A? Deve ter ZERO ou UM A  A* Pode ter ZERO ou mais A  +(A) Pode ter A  -(A) Não deve ter A  A | B Pode ter um ou outro  A , B Deve ter um e outro e a ordem é importante  A & B Ambos devem existir, e a ordem não é importante
  • 8. Elementos  A declaração ELEMENT serve para declarar elementos, com a seguinte sintaxe: <!ELEMENT element-name category> or <!ELEMENT element-name (element-content)>  Elementos vazios  Elementos vazios são declarados com a palavra reservada EMPTY: <!ELEMENT element-name EMPTY> Ex: <!ELEMENT br EMPTY>
  • 9. Elementos  Elementos com PCDATA  Elementos com apenas dados que serão analisados são declarados com o parâmetro #PCDATA dentro do parenteses: <!ELEMENT element-name (#PCDATA)>  Elementos com conteúdo  Elementos declarados com a palavra reservada ANY, poderá conter qualquer combinação de dados. <!ELEMENT element-name ANY>
  • 10. Elementos  Elementos com filhos (sequências)  Elementos com um ou mais filhos são declarados com o nome dos elementos filhos. <!ELEMENT element-name (child1)> ou <!ELEMENT element-name (child1,child2,...)>
  • 11. Elementos  Declarando apenas uma ocorrência de um elemento <!ELEMENT element-name (child-name)>  Declarando pelo menos uma ocorrência do elemento. <!ELEMENT element-name (child-name+)>  Declarando zero ou mais ocorrências de um Elemento <!ELEMENT element-name (child-name*)>  Declarando zero ou uma ocorrências de um Elemento <!ELEMENT element-name (child-name?)> Declarando um ou outro conteúdo <!ELEMENT element-name (child-name-1 | child-name-2)>
  • 12. Elementos  O elemento A tem zero ou mais elementos B seguidos de um único elemento C: <!ELEMENT A (B* , C)>  O elemento A tem um ou mais elementos B seguidos de um único elemento C: <!ELEMENT A (B+ , C)>  O elemento A tem o elemento A opcional: <!ELEMENT A (A? , B)>  O elemento A pode conter qualquer combinação de texto e do elemento B <!ELEMENT A (#PCDATA | B )*>
  • 13. Elementos  Outras formas de declarar os elementos que se encontra em várias especificações: <!ELEMENT element-name - - (element-child)+>  O elemento-name deve ser uma tag de início <element.name> e uma tag de fecho </element-name> <!ELEMENT element-name – O EMPTY>  O elemento-name deve ser uma tag de início <element.name> e tag de fecho </element-name> é opcional.  Com a palavra-chave EMPTY reforça a ideia que o bloco não teve ter conteúdo!
  • 14. Atributos  Servem para atribuir pares nome-valor com elementos.  Atributos só podem aparecer em etiquetas de início e em etiquetas vazias.  A declaração de atributos inicia com o nome ATTLIST, seguido do nome do elemento e da lista de seus atributos. <!ATTLIST element-name attribute-name attribute-type default-value>  DTD Exemplo: <!ATTLIST A type CDATA "check">  XML Exemplo: <A type="check" />
  • 15. Atributos  O tipo do atributo pode ser:  CDATA O valor é “character data”  (en1|en2|..) O valor deve ser de uma lista enumerada  ID O valor é um único “id”  IDREF O valor é o id de um outro elemento  IDREFS O valor é uma lista de outros “ids”  NMTOKEN O valor é um nome válido  NMTOKENS O valor é uma lista de nomes válidos  ENTITY O valor é uma entidade  Entidades O valor é uma lista de Entidades  NOTATION O valor é o nome de uma “notation”
  • 16. Atributos  O default-value pode ser um dos seguintes:  value O valor default do atributo  #REQUIRED O atributo é obrigatório  #IMPLIED O atributo é não obrigatório  #FIXED value O valor do atributo é fixo  EX: <!ELEMENT A EMPTY> <!ATTLIST A width CDATA "0"> <A width="100" /> No exemplo acima, o elemento “A" é definido para ser um elemento vazio com um atributo "width”. Se nenhum “width” for definido o seu valor default será “0”.
  • 17. Atributos <!ELEMENT A(#PCDATA)> <!ATTLIST attributes aaa CDATA #REQUIRED bbb CDATA #IMPLIED>  A ordem dos atributos não importa  Atributos CDATA: permite qualquer caracter de acordo com as regras de boa formação  #REQUIRED: obrigatório  #IMPLIED: Opcional
  • 18. Atributos  #REQUIRED  O #REQUIRED é usado se não há um valor default a ser definido e deseja-se forçar a presença do atributo. <!ATTLIST element-name attribute-name attribute- type #REQUIRED>  Exemplo: <!ATTLIST person number CDATA #REQUIRED>  Valido: <person number="5677" />  Invalido: <person />
  • 19. Atributos  #FIXED  Usar #FIXED quando o atributo deve ter valores fixado que não pode ser mudados pelo autor <!ATTLIST element-name attribute-name attribute- type #FIXED "value">  Exemplo <!ATTLIST sender company CDATA #FIXED "Microsoft">  Válido : <sender company="Microsoft" />  Inválido: <sender company="IBM" />
  • 20. Atributos  #IMPLIED  Usar #IMPLIED quando não se deseja forçar a existência do atributo e não tem um valor default definido. <!ATTLIST element-name attribute-name attribute- type #IMPLIED>  Exemplo <!ATTLIST contact fax CDATA #IMPLIED>  Valido: <contact fax="555-667788" />  Valido: <contact />
  • 21. Atributos  Enumerated Attribute Values  Usar “enumerated attribute” quando é desejado que o atributo seja um entre vários valores definidos. <!ATTLIST element-name attribute-name (en1|en2|..) default-value>  Exemplo: <!ATTLIST payment type (check|cash) "cash"> <payment type="check" /> <payment type="cash" />
  • 22. Atributos  NMTOKEN: letras, dígitos, ponto [ . ] , hífen [ - ], underline [ _ ] dois pontos [ : ] .  NMTOKENS: NMTOKEN mais o espaço em branco: um ou mais espaços em branco, return, fim de linha e tabulações. <!ELEMENT attributes (#PCDATA)> <!ATTLIST attributes aaa CDATA #IMPLIED bbb NMTOKEN #REQUIRED ccc NMTOKENS #REQUIRED>
  • 23. Atributos  Tipo ID  Um atributo do tipo ID pode conter apenas caracteres permitidos pelo tipo NMTOKEN e devem iniciar por uma letra.  Nenhum tipo de elemento deve conter mais de um atributo do tipo ID  O valor de um atributo do tipo ID deve ser único dentre todos atributos ID das instâncias do elemento. <!ELEMENT X(A+ , B+ , C+)> <!ELEMENT A (#PCDATA)> <!ELEMENT B (#PCDATA)> <!ELEMENT C (#PCDATA)> <!ATTLIST A id ID #REQUIRED> <!ATTLIST B code ID #IMPLIED list NMTOKEN #IMPLIED> <!ATTLIST C X ID #REQUIRED Y NMTOKEN #IMPLIED>
  • 24. Atributos  IDREF  Um atributo IDREF deve referencia algum ID existente no documento. IDREFS referencia um sequência de Ids <!ELEMENT X (A+ , B+, C+, D+)> <!ELEMENT A (#PCDATA)> <!ELEMENT B (#PCDATA)> <!ELEMENT C (#PCDATA)> <!ELEMENT D (#PCDATA)> <!ATTLIST A mark ID #REQUIRED> <!ATTLIST B id ID #REQUIRED> <!ATTLIST C ref IDREF #REQUIRED> <!ATTLIST D ref IDREFS #REQUIRED>
  • 25. Atributos <X> <A mark="a1"/> <A mark="a2"/> <A mark="a3"/> <B id="b001" /> <C ref="a3" /> <D ref="a1 b001 a2" /> </X>
  • 26. Atributos  Especificando valores de atributo permitidos <!ELEMENT X(A+, B+)> <!ELEMENT A (#PCDATA)> <!ELEMENT B (#PCDATA)> <!ATTLIST A true ( yes | no ) #REQUIRED> <!ATTLIST B month (1|2|3|4|5|6|7|8|9|10|11|12) #IMPLIED>
  • 27. Atributos  Valores permitidos <X> <A true="yes"/> <A true="no"/> <A true="yes"/> <B month="8" /> <B month="2" /> <B month="12" /> </X>  Valores default <!ATTLIST A true ( yes | no ) "yes">
  • 28. Atributos  Elemento só com atributos, sem texto (Vazio) <!ELEMENT A EMPTY> Exemplo: <X> <A true="yes"/> <A true="no"></A> </X>
  • 29. Entidades  Entidades são variáveis usadas para definir atalhos para textos padrão ou caracteres especiais.  “Entity references” são referências a Entidades.  Entidades podem ser declaradas internamente ou externamente ou parametrizadas.  Nota: Uma entidade possui três partes: o ampersand (&), o nome e um ponto vírgula(;).
  • 30. Entidades  Entidades Declaradas Internamente <!ENTITY entity-name "entity-value"> <!ENTITY writer "Donald Duck."> <!ENTITY copyright "Copyright W3Schools."> <author>&writer;&copyright;</author>  Entidades Declaradas Externamente <!ENTITY entity-name SYSTEM "URI/URL"> <!ENTITY writer SYSTEM "http://www.w3schools.com/Entidades.dtd"> <!ENTITY copyright SYSTEM "http://www.w3schools.com/Entidades.dtd"> <author>&writer;&copyright;</author>
  • 31. Entidades  Entidades parametrizadas  As entidades de parâmetro ou parametrizadas são válidas somente em DTDs, funcionam como abreviaturas de declarações e são declaradas na DTD por meio do símbolo % precedido ao nome da entidade.  Por exemplo: <!ENTITY % livro “(titulo, autor, editora, preco)”> <!ELEMENT exemplo %livro;>  Esse exemplo determina que um elemento livro pode ter somente filhos do tipo titulo, autor, editora e preço.
  • 32. Notações  Descrevem o formato dos objectos de dados  São normalmente usadas para descrever o formato dos objectos binários, como arquivos gráficos  Mecanismo para associar entidades unparsed ou não analisáveis com a ferramenta apropriada  Em caso de uma imagem, pode ser um visualizador <!NOTATION GIF89a PUBLIC “-/CompuServe//NOTATION Graphics Interchange Format 89a//EN” “c:windowskodakprv.exe”>  Pode-se usar associações de arquivos <!NOTATION GIF89a SYSTEM “GIF”> <!NOTATION GIF89a SYSTEM “image/gif”>