Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas 1 Prof. Guilherme Cassolato Linguagem para Organização e Transferência de Dados para Web Prof. Guilherme Cassolato [email protected]
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
2 Prof. Guilherme Cassolato
DTDs
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
3 Prof. Guilherme Cassolato
O que são DTDs e para que servem
• Acrônimo para Document Type Definition (Definição de Tipo de Documento)
• Linguagem de marcação (diferente da XML) que permite especificar uma estrutura lógica válida para um documento XML
• Permitem definir/comunicar/validar a estrutura lógica de documentos XML
• Fu cio a co o u co trato e tre duas partes e volvidas a organização e/ou transferência de dados usando tecnologia XML, pelo qual estas partes se comprometem com a estrutura dos documentos intercambiados
• Documentos XML carregam suas DTDs ou fazem referência a um arquivo externo
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
4 Prof. Guilherme Cassolato
Exemplo 1
<!DOCTYPE note [
<!ELEMENT note (to,from,subject,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT subject (#PCDATA)> <!ELEMENT body (#PCDATA)>
]>
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
6 Prof. Guilherme Cassolato
Declaração interna (no próprio corpo do arquivo XML)
Sintaxe:
Localização: logo abaixo do prólogo (2ª linha do arquivo XML)
Exemplo:
<!DOCTYPE root-element [element-declarations]>
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 Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
7 Prof. Guilherme Cassolato
Declaração externa (em arquivo separado)
Sintaxe:
Exemplo:
<!DOCTYPE root-element [element-declarations]>
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 note (to,from,subject,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT subject (#PCDATA)> <!ELEMENT body (#PCDATA)>
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
8 Prof. Guilherme Cassolato
Estruturas lógicas XML representáveis com DTDs
• Elementos
• Atributos
• Entidades
• Seções
– PCDATA (Parsed Character Data)
– CDATA (Character Data)
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
9 Prof. Guilherme Cassolato
Especificando elementos
Sintaxe:
Onde:
<!ELEMENT nome-do-elemento predicado>
nome-do-elemento é o nome do elemento que está sendo especificado
predicado é um dos seguintes:
EMPTY se o elemento for vazio
(#PCDATA) se o elemento contiver um valor de texto cujos caracteres serão interpretados pelo parser e, portanto, símbolos de marcação da linguagem serão processados
(filho1, filho2, ..., filhoN) se o elemento possui elementos filhos, os quais deverão também ser especificados e aparecer dentro do elemento na mesma ordem que foram listados
ANY Se o valor pode ser qualquer coisa (irrestrito)
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
10 Prof. Guilherme Cassolato
Exemplos
Elemento vazio:
.dtd
<!ELEMENT br EMPTY>
.xml
<br />
PCDATA:
.dtd
<!ELEMENT elemX (#PCDATA)>
.xml
<elemX> Contém algum valor Maior que precisa ser representado como >
</elemX>
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
11 Prof. Guilherme Cassolato
Exemplos
Elemento com filhos:
.dtd
<!ELEMENT note (to,from,subject,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT subject (#PCDATA)> <!ELEMENT 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
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
12 Prof. Guilherme Cassolato
Modificadores de ocorrência
Ocorrência Símbolo Descrição Exemplo
Única Nenhum O elemento filho deve aparecer exatamente uma vez dentro do elemento pai
<!ELEMENT pai (filho)>
Mínima + O elemento filho pode aparecer uma ou mais vezes dentro do elemento pai
<!ELEMENT pai (filho+)>
Livre * O elemento filho pode ocorrer zero ou mais vezes dentro do elemento pai
<!ELEMENT pai (filho*)>
Binária ? O elemento filho pode ocorrer zero ou uma vez dentro do elemento pai
<!ELEMENT pai (filho?)>
Alternativa | Ao menos um dos elementos filhos alternativos deve aparecer dentro do elemento pai
<!ELEMENT pai (filho1|filho2)>
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
13 Prof. Guilherme Cassolato
Exemplo de modificadores de ocorrência (misturando vários tipos)
O elemento "note" pode conter zero ou mais ocorrências de dados/textos interpretados (PCDATA), e de elementos "to", "from", subject" ou "message".
O elemento "note" deve conter • pelo e os u a ocorrê cia do ele e to filho to ; • e seguida, u a ocorrê cia de from ; • pode ou ão co ter u a ocorrê cia de subject ; • deve co ter u a ocorrê cia de message ou u a ocorrê cia de body ; e • zero ou ais ocorrê cias de tag
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
14 Prof. Guilherme Cassolato
Especificando atributos
Sintaxe:
Onde:
nome-do-elemento é o nome do elemento que que contém 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)
valor-padrão é um valor padrão para o atributo ou identificador de restrição (#REQUIRED, #IMPLIED, #FIXED)
Exemplo:
<!ATTLIST nome-do-elemento nome-do-atributo tipo valor-padrão>
.dtd
<!ATTLIST payment type CDATA check >
.xml
<payment type= check />
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
15 Prof. Guilherme Cassolato
Especificando atributos – tipo do atributo
tipo é um dos seguintes: CDATA Character data
(en1,en2,...) Lista enumerada; deve conter um dos valores enumerados
ID Identificação única
IDREF ID de outro elemento
IDREFS Lista de Ids de outros elementos
NMTOKEN Nome XML válido
NMTOKENS Lista de nomes XML válidos
ENTITY Entidade
ENTITIES Lista de entidades
NOTATION Notação
xml: Valor XML predefinido
<!ATTLIST nome-do-elemento nome-do-atributo tipo valor-padrão>
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
16 Prof. Guilherme Cassolato
Especificando atributos – valor padrão
valor-padrão é um dos seguintes:
valor Valor padrão (default) do atributo; considerado caso nenhum outro seja preenchido
#REQUIRED Requerido
#IMPLIED Opcional
#FIXED valor Valor fixo; deve obrigatoriamente conter o valor especificado
<!ATTLIST nome-do-elemento nome-do-atributo tipo valor-padrão>
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
Use a palavra reservada #IMPLIED se você não quer forçar o autor a incluir um atributo, e se você não possui um valor padrão para ele.
documento_tambem_valido.xml
<contact />
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
20 Prof. Guilherme Cassolato
Exemplo – atributo #FIXED
.dtd
<!ELEMENT sender EMPTY> <!ATTLIST sender company CDATA #FIXED Microsoft >
documento_valido.xml
<sender company= Microsoft />
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 intéprete (parser) XML retornará um erro.
documento_invalido.xml
<sender company= Oracle />
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
21 Prof. Guilherme Cassolato
Exemplo – atributo com valores possíveis enumerados
.dtd
<!ELEMENT pagamento EMPTY> <!ATTLIST pagamento tipo (cheque|dinheiro) dinheiro >
documento_valido.xml
<pagamento tipo= cheque />
Use valores enumerados de atributos quando você quer que o valor do atributo seja um dentre uma série de valores aceitos.
documento_invalido.xml
<pagamento tipo= cartão />
outro_documento_valido.xml
<pagamento tipo= dinheiro />
Anhanguera Linguagem para Organização e Transf. de Dados para Web Tecnologia em Análise e Desenvolvimento de Sistemas
22 Prof. Guilherme Cassolato
Especificando entidades – declaração interna
Sintaxe:
Onde:
nome-da-entidade é o nome da entidade que está sendo especificada
valor é o valor de texto que o parser entenderá ao processar uma referência à entidade
Exemplo:
<!ENTITY nome-da-entidade valor >
.dtd
<!ENTITY escritor João da Silva > <!ENTITY copyright Editora Livro >