• Nenhum resultado encontrado

Aula 3 - DTD

N/A
N/A
Protected

Academic year: 2021

Share "Aula 3 - DTD"

Copied!
31
0
0

Texto

(1)

Linguagens para Organização e

Transferência de Dados na Web

DTD.

https://sites.google.com/site/thiagoaalves/

(2)

DTD

Um DTD (Document Type Definition)

especifica um conjunto de regras que

define a estrutura de um documento

XML.

(3)

DTD

O DTD pode aparecer no topo do XML ou

em um documento separado.

<?xml version="1.0"?>

<!DOCTYPE note [

<!ELEMENT note

(to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

(4)

DTD

Se você optar por inserir o DTD dentro

do documento XML um problema que

pode acontecer:

se vários documentos XML utilizarem o

mesmo DTD, você vai precisar atualizar cada

XML sempre que o DTD sofrer alterações.

Uma solução é criar um arquivo externo

ao XML que contém o DTD, e em cada

XML fazer uma referência ao DTD.

(5)

DTD

 Exemplo de um Documento XML com DTD:

 <?xml version="1.0"?>  <!DOCTYPE note [

 <!ELEMENT note (to,from,heading,body)>  <!ELEMENT to (#PCDATA)>

 <!ELEMENT from (#PCDATA)>  <!ELEMENT heading (#PCDATA)>  <!ELEMENT body (#PCDATA)>  ]>

 <note>

 <to>Tove</to>

 <from>Jani</from>

 <heading>Reminder</heading>

 <body>Don't forget me this weekend!</body>  </note>

(6)

DTD

Arquivo note.dtd

<!ELEMENT note

(to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

(7)

DTD

Como no XML o arquivo tem que ser

salvo com a extensão que do formato.

Todo arquivo que for um DTD tem que

ser acompanhado da extensão .dtd.

(8)

DTD

Exemplo de um documento que apresenta XML e

DTD separados:

Exemplo.xml

<?xml version="1.0"?>

<!DOCTYPE note SYSTEM "note.dtd">

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>

(9)

DTD

Arquivo note.dtd

<!ELEMENT note

(to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

(10)

DTD

Sintaxe de um DTD

Um DTD defini um documento XML da seguinte

maneira:

◦ Declaração de um conjunto de elementos. Você não pode utilizar outros elementos que não estejam definidos neste conjunto. Imagine como se fosse o vocabulário do XML.

◦ Definição do conteúdo para cada elemento. A definição de conteúdo é um padrão que nos diz quais os elementos ou dados que aquele determinado elemento XML pode

conter, em qual ordem, quantidade e se é opcional ou obrigatório. Imagine como se fosse a gramática do XML.

◦ Declaração de um conjunto de atributos para cada

elemento. Cada declaração de atributo define o nome, tipo (datatype), valores padrões (se aplicável), e

(11)

DTD

Estrutura de um DTD

O DTD é um conjunto de regras, também

chamadas de declarações. Cada

declaração especifica um elemento, seus

atributos, entidades e conteúdo.

(12)

DTD

Declaração dos elementos do XML

Cada elemento que você for usar no

documento XML deve ser declarado no

DTD. Uma declaração de elemento faz duas

coisas: adiciona um novo nome de

elemento ao vocabulário da linguagem e

documenta qual é o conteúdo desse

elemento. Juntos (novo elemento +

conteúdo), criam uma gramática para

a linguagem, um padrão para determinar

(13)

DTD - Exemplo

 <?xml version="1.0"?>  <!DOCTYPE note [

 <!ELEMENT note (to,from,heading,body)>  <!ELEMENT to (#PCDATA)>

 <!ELEMENT from (#PCDATA)>  <!ELEMENT heading (#PCDATA)>  <!ELEMENT body (#PCDATA)>  ]>

 <note>

 <to>Tove</to>

 <from>Jani</from>

 <heading>Reminder</heading>

 <body>Don't forget me this weekend!</body>  </note>

(14)

DTD

O nome do elemento é case-sensitive.

O elemento Casa é diferente do

elemento CASA ou casa. Por

convenção, nome de elementos são

sempre lowercase (letras minúsculas).

(15)

DTD

Um elemento XML pode conter cinco

tipos diferentes de conteúdo:

Elementos vazios: a maneira mais simples de

declarar um elemento vazio é através da

palavra-chave EMPTY. Exemplo: <!ELEMENT

grafico EMPTY>;

(16)

DTD

Elementos que não contém restrições de

conteúdo: neste tipo de declaração, o

elemento XML pode conter qualquer outro

elemento. Neste caso, é utilizada a

palavra-chave ALL.

Exemplo: <!ELEMENT

contem_qualquer_coisa ALL> (Obs. Pode ser

que com ALL não funcione tente ANY);

(17)

DTD

Elementos que podem conter apenas dados

do tipo texto (informação): Para elementos

que apenas podem conter informação, mas

não outros elementos, utiliza-se

(#PCDATA), que significa “parsed-character

data”. Isso significa que os caracteres serão

verificados por um parser XML à procura de

referências de entidades, e caso houver

alguma, então esta entidade será substituída

por seu valor correspondente. Forma mais

comum para a criação de Elementos XML.

(18)

DTD

Elementos que podem contem apenas outros

elementos: para declarar elementos dentro de

um outro elemento, utiliza-se uma notação

especial, descrita na lista abaixo:

, -> Descreve uma sentença obrigatória de elementos.

Também funciona como operador E (AND). Exemplo: A,B significa que B deve vir depois de A. B seguido de A não é permitido.

| -> Descreve uma alternativa, funciona como o

operador OU (OR). Exemplo: A|B|C significa que qualquer elemento é aceitável. Apenas uma opção é permitida, você deve escolher entre um dos três elementos.

(19)

DTD

(…) -> Agrupa o conteúdo. Você pode usar a

quantidade e parênteses que for preciso. Exemplo:

(A|B), C significa que você deve escolher entre A ou

B, e este deve ser seguido por um C. Portanto,

tanto A C e B C são permitidos.

? -> Descreve uma sentença opcional. Exemplo: A ?

significa que você pode escolher se vai usar ou não

o elemento A.

+ -> Requere que pelo menos uma vez o elemento

seja declarado, e não limite de quantas vezes este se

repete. Exemplo: (A|B)+ significa que deve haver um

número positivo e diferente de zero de As ou Bs. A

sequência ABBBAAA é válida.

(20)

DTD

* -> Significa que o elemento pode aparecer várias

vezes, não tendo limite, e também é opcional.

Exemplo: (A|B)* significa que a sequência pode ter

tamanho zero e pode ter inúmeros elementos A ou

B.

(21)

DTD

Elementos com conteúdo misto: conteúdo

misto é quando um elemento pode conter

tanto elementos quanto informação. Um

elemento desse tipo deve ser declarado como

no exemplo abaixo:

A palavra chave ELEMENT deve vir primeiro,

seguido do nome do elemento, e após este, a lista

dos elementos permitidos e #PCDATA, separados

por uma barra vertical ( | ), limitados por

(22)

DTD

Mas como criar um XML com vários

arquivos, nos exemplos anteriores a

criação só permitia ou só demonstrava a

utilização de somente um registro.

Para isso vamos analisar o seguinte

(23)

DatabaseInventory.dtd

 <?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT DatabaseInventory (DatabaseName+)><!ELEMENT DatabaseName ( GlobalDatabaseName

, OracleSID, DatabaseDomain, Administrator+, DatabaseAttributes, Comments)>

<!ELEMENT GlobalDatabaseName (#PCDATA)><!ELEMENT OracleSID (#PCDATA)>

<!ELEMENT DatabaseDomain (#PCDATA)><!ELEMENT Administrator (#PCDATA)><!ELEMENT DatabaseAttributes EMPTY><!ELEMENT Comments (#PCDATA)>

(24)

DTD

Ok essa foi a criação do DTD agora

(25)

DatabaseInventory.xml

 <?xml version="1.0"?>

<!DOCTYPE DatabaseInventory SYSTEM "DatabaseInventory.dtd"><DatabaseInventory>

<DatabaseName>

 <GlobalDatabaseName>production.iDevelopment.info</GlobalDatabaseName>  <OracleSID>production</OracleSID>

 <DatabaseDomain>iDevelopment.info</DatabaseDomain>

 <Administrator EmailAlias="jhunter" Extension="6007">Jeffrey Hunter</Administrator>  <DatabaseAttributesType="Production" Version="9i"/>

 <Comments>

 The following database should be considered the most stable for  up-to-date data. The backup strategy includes running the database  in Archive Log Mode and performing nightly backups. All new accounts  need to be approved by the DBA Group before being created.

 </Comments>  </DatabaseName>

(26)

DTD

 <DatabaseName>  <GlobalDatabaseName>development.iDevelopment.info</GlobalDatabase Name>  <OracleSID>development</OracleSID>  <DatabaseDomain>iDevelopment.info</DatabaseDomain>  <Administrator EmailAlias="jhunter" Extension="6007">Jeffrey

Hunter</Administrator>

 <Administrator EmailAlias="mhunter" Extension="6008">Melody

Hunter</Administrator>

 <DatabaseAttributes Type="Development" Version="9i"/>  <Comments>

 The following database should contain all hosted applications.

Production

 data will be exported on a weekly basis to ensure all development

environments

 have stable and current data.  </Comments>

(27)

DTD

 <DatabaseName>  <GlobalDatabaseName>testing.iDevelopment.info</GlobalDatabaseName >  <OracleSID>testing</OracleSID>  <DatabaseDomain>iDevelopment.info</DatabaseDomain>  <Administrator EmailAlias="jhunter" Extension="6007">Jeffrey

Hunter</Administrator>

 <Administrator EmailAlias="mhunter" Extension="6008">Melody

Hunter</Administrator>

 <Administrator EmailAlias="ahunter">Alex Hunter</Administrator>  <DatabaseAttributes Type="Testing" Version="9i"/>

 <Comments>

 The following database will host more than half of the testing  for our hosting environment.

 </Comments>  </DatabaseName>

(28)

Exercício

Elabore o Documento DTD para o

(29)

Trabalho 0,5 Ponto

Grupos 4-5 Pessoas.

Definir uma situação para aplicação da

XML e seus conceitos. Devera ser

entregue:

Problema;

Justificativa;

(30)

Referencias

http://www.idevelopment.info/data/Progra

mming/java/xml/ExampleXMLandDTDFile.

html

http://www.w3schools.com/dtd/note_in_

dtd.xml

http://www.loiane.com/2009/04/construin

do-um-dtd-%E2%80%93-introducao-ao-xml-parte-vi/

http://www.loiane.com/2009/04/validacao-

de-documentos-xml-com-dtd-%E2%80%93-introducao-ao-xml-parte-vii/

(31)

Referências

Documentos relacionados

Assim pretendemos neste estudo investigar se indivíduos infectados por subtipos do vírus HIV-1 subtipo C vs Não-C na ausência de trtamento antiretroviral, apresentam diferenças

Foram realizados dois experimentos: um controle e um de interação, onde colônias das duas espécies foram colocadas em contato, e a atividade de ambas foi analisada

Os ensaios em animais foram realizados com o sobrenadante de cultura de EC118 e com a hemolisina semi-purificada padronizada com NaCl 0,15 M, de tal forma que se obtivesse um

Na apresentação dos dados estatísticos, ficou demonstrada à todos os participantes a dimensão da pesquisa, abrangendo o setor produtivo como um todo, enfocando a produção

Diante de resultados antagônicos, o presente estudo investigou a relação entre lesões musculares e assimetrias bilaterais de força de jogadores de futebol medidas por meio

Coletamos, ent˜ao, quatro tempos: tempo de carga (load), necess´ario para carregar a imagem do VIM nos n´os; tempo de inicializac¸˜ao (boot), necess´ario para iniciar o sistema

decomposição Dado não disponível Inflamabilidade Dado não disponível Viscosidade Dado não disponível Limites de inflamabilidade superior / inferior. ou explosividade Dado

Não obstante a semelhança existente entre alguns comportamentos de sujeitos jogadores patológicos e sujeitos que apresentam outras adições (e.g., álcool, abuso