Escolar Documentos
Profissional Documentos
Cultura Documentos
Anhanguera
Anhanguera
DTDs
Anhanguera
Anhanguera
Exemplo 1
<!DOCTYPE note
[
<!ELEMENT note (to,from,subject,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
Anhanguera
Exemplo 2
<!DOCTYPE NEWSPAPER [
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
NEWSPAPER (ARTICLE+)>
ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
HEADLINE (#PCDATA)>
BYLINE (#PCDATA)>
LEAD (#PCDATA)>
BODY (#PCDATA)>
NOTES (#PCDATA)>
<!ATTLIST
<!ATTLIST
<!ATTLIST
<!ATTLIST
ARTICLE
ARTICLE
ARTICLE
ARTICLE
]>
Prof. Guilherme Cassolato
Anhanguera
Exemplo:
note.xml
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,subject,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<subject>Reminder</subject>
<body>Don't forget me this weekend</body>
</note>
Anhanguera
Exemplo:
note.xml
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<subject>Reminder</subject>
<body>Don't forget me this
weekend!</body>
</note>
note.dtd
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
note (to,from,subject,body)>
to (#PCDATA)>
from (#PCDATA)>
subject (#PCDATA)>
body (#PCDATA)>
Anhanguera
Sees
Atributos
Entidades
Anhanguera
Especificando elementos
Sintaxe:
Onde:
nome-do-elemento o nome do elemento que est sendo especificado
predicado um dos seguintes:
EMPTY
(#PCDATA)
ANY
Anhanguera
Exemplos
Elemento vazio:
PCDATA:
.dtd
<!ELEMENT br EMPTY>
.dtd
<!ELEMENT elemX (#PCDATA)>
.xml
<br />
.xml
<elemX>
Contm algum valor
Maior que precisa ser
representado como >
</elemX>
10
Anhanguera
Exemplos
Elemento com filhos:
.dtd
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
note (to,from,subject,body)>
to (#PCDATA)>
from (#PCDATA)>
subject (#PCDATA)>
body (#PCDATA)>
.xml
<note>
<to>Tove</to>
<from>Jani</from>
<subject>Reminder</subject>
<body>Don't forget me this
weekend!</body>
</note>
Aparecem no
XML na mesma
ordem em que
foram declarados
11
Anhanguera
Modificadores de ocorrncia
Ocorrncia
Smbolo
Descrio
Exemplo
nica
Nenhum
Mnima
Livre
Binria
Alternativa
<!ELEMENT pai
(filho1|filho2)>
12
Anhanguera
Exemplo 2:
<!ELEMENT note (#PCDATA|to|from|subject|message)*>
O elemento "note" pode conter zero ou mais ocorrncias de dados/textos interpretados (PCDATA), e de
elementos "to", "from", subject" ou "message".
Prof. Guilherme Cassolato
13
Anhanguera
Especificando atributos
Sintaxe:
Onde:
nome-do-elemento o nome do elemento que que contm o(s) atributo(s) especificado(s)
nome-do-atributo o nome do atributo
tipo o tipo do atributo (CDATA, lista enumerada, ID(s), MNTOKEN(s), ENTITY(ies),
NOTATION)
Exemplo:
.dtd
<!ATTLIST payment type CDATA
check >
.xml
<payment type= check
/>
14
Anhanguera
CDATA
Character data
(en1,en2,...)
ID
Identificao nica
IDREF
ID de outro elemento
IDREFS
NMTOKEN
NMTOKENS
ENTITY
Entidade
ENTITIES
Lista de entidades
NOTATION
Notao
xml:
Anhanguera
#REQUIRED
Requerido
#IMPLIED
Opcional
#FIXED valor
16
Anhanguera
0 >
.xml
<square width=
00
/>
Se nenhum valor for especificado para o atributo "width", o valor padro ser 0.
17
Anhanguera
documento_valido.xml
<person number=
/>
documento_invalido.xml
<person />
18
Anhanguera
documento_valido.xml
<contact fax=
/>
documento_tambem_valido.xml
<contact />
19
Anhanguera
documento_valido.xml
<sender company= Microsoft
/>
Microsoft >
documento_invalido.xml
<sender company= Oracle
/>
Use a palavra reservada #FIXED quando voc quer que um atributo tenha um
valor fixo, sem permitir ao autor que o modifique. Se o autor do documento
incluir outro valor, o intprete (parser) XML retornar um erro.
20
Anhanguera
documento_valido.xml
<pagamento tipo= cheque
/>
dinheiro
>
outro_documento_valido.xml
<pagamento tipo= dinheiro
/>
documento_invalido.xml
<pagamento tipo= carto
/>
Use valores enumerados de atributos quando voc quer que o valor do atributo
seja um dentre uma srie de valores aceitos.
Prof. Guilherme Cassolato
21
Anhanguera
<!ENTITY nome-da-entidade
valor >
Onde:
nome-da-entidade o nome da entidade que est sendo especificada
valor o valor de texto que o parser entender ao processar uma referncia entidade
Exemplo:
.dtd
<!ENTITY escritor Joo da Silva >
<!ENTITY copyright Editora Livro >
.xml
<autoria>&escritor; ©right</autoria>
22
Anhanguera
URI >
Onde:
nome-da-entidade o nome da entidade que est sendo especificada
URI o caminho para outra DTD que especifica efetivamente a entidade
Exemplo:
.dtd
<!ENTITY escritor SYSTEM http://www.site.com/entitites.dtd >
<!ENTITY copyright SYSTEM http://www.site.com/entitites.dtd >
.xml
<autoria>&escritor; ©right</autoria>
23
Anhanguera
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
TVSCHEDULE (CHANNEL+)>
CHANNEL (BANNER,DAY+)>
BANNER (#PCDATA)>
DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)>
HOLIDAY (#PCDATA)>
DATE (#PCDATA)>
PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)>
TIME (#PCDATA)>
TITLE (#PCDATA)>
DESCRIPTION (#PCDATA)>
<!ATTLIST
<!ATTLIST
<!ATTLIST
<!ATTLIST
<!ATTLIST
]>
24
Anhanguera
NEWSPAPER (ARTICLE+)>
ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
HEADLINE (#PCDATA)>
BYLINE (#PCDATA)>
LEAD (#PCDATA)>
BODY (#PCDATA)>
NOTES (#PCDATA)>
<!ATTLIST
<!ATTLIST
<!ATTLIST
<!ATTLIST
ARTICLE
ARTICLE
ARTICLE
ARTICLE
]>
Prof. Guilherme Cassolato
25
Anhanguera
(...)
Prof. Guilherme Cassolato
26
Anhanguera
27