document type definition

32
DOCUMENT TYPE DEFINITION DTD

Upload: arlindo-santos

Post on 15-Aug-2015

58 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Document Type Definition

D O C U M E N T T Y P E D E F I N I T I O N

DTD

Page 2: Document Type Definition

Objectivos

O DTD define a estrutura do documento Com o DTD as aplicações podem verificar se os

documentos estão correctos.

Page 3: Document Type Definition

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

Page 4: Document Type Definition

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" />

Page 5: Document Type Definition

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)

Page 6: Document Type Definition

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.

Page 7: Document Type Definition

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

Page 8: Document Type Definition

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>

Page 9: Document Type Definition

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>

Page 10: Document Type Definition

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,...)>

Page 11: Document Type Definition

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)>

Page 12: Document Type Definition

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 )*>

Page 13: Document Type Definition

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!

Page 14: Document Type Definition

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" />

Page 15: Document Type Definition

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”

Page 16: Document Type Definition

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”.

Page 17: Document Type Definition

Atributos

<!ELEMENT A(#PCDATA)><!ATTLIST attributes

aaa CDATA #REQUIREDbbb 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

Page 18: Document Type Definition

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 />

Page 19: Document Type Definition

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" />

Page 20: Document Type Definition

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 />

Page 21: Document Type Definition

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" />

Page 22: Document Type Definition

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 #IMPLIEDbbb NMTOKEN #REQUIREDccc NMTOKENS #REQUIRED>

Page 23: Document Type Definition

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 #IMPLIEDlist NMTOKEN #IMPLIED>

<!ATTLIST C X ID #REQUIREDY NMTOKEN #IMPLIED>

Page 24: Document Type Definition

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>

Page 25: Document Type Definition

Atributos

<X><A mark="a1"/><A mark="a2"/><A mark="a3"/><B id="b001" /><C ref="a3" /><D ref="a1 b001 a2" />

</X>

Page 26: Document Type Definition

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>

Page 27: Document Type Definition

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">

Page 28: Document Type Definition

Atributos

Elemento só com atributos, sem texto (Vazio)

<!ELEMENT A EMPTY>Exemplo:<X>

<A true="yes"/><A true="no"></A>

</X>

Page 29: Document Type Definition

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(;).

Page 30: Document Type Definition

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>

Page 31: Document Type Definition

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.

Page 32: Document Type Definition

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:\windows\kodakprv.exe”>

Pode-se usar associações de arquivos

<!NOTATION GIF89a SYSTEM “GIF”><!NOTATION GIF89a SYSTEM “image/gif”>